日常の待ち行列理論
わく☆すた,美月です。
今日,夢を見ました。
なぜか自分がネットショップのWeb担当になっていました。
そして,3台のWebサーバがあって,そのサーバを,
・3台とも同じにして,負荷分散装置で振り分ける
・3台を,書籍用,DVD用,おもちゃ用と,用途ごとに3台に分ける。
で,私が,会議で「3台とも同じにした方がいい!」と,力説している夢でした。
「待ち行列理論的には,3つのM/M/1よりもM/M/3の方が速い」と,一生懸命説明していました。
そして,会議が終わる前に,目が覚めてしまいました。^^;
応用情報技術者試験以上の情報処理技術者試験の試験問題では,待ち行列の問題は結構よく出てきます。
待ち行列は,午前問題では「M/M/1待ち行列モデルで,平均応答時間を計算せよ」など,計算問題が中心に出てきます。なので,公式さえ覚えておけば解けそうな気が一瞬するのですが,そうでない問題も多いです。
また,午後試験に出てくる時には,実際の実例に合わせて,様々なパターンで出てきます。
先ほどの夢のような,「3台のWebサーバの負荷分散」的な話もよく出てきますし,ネットワークの多重化の仕方,システムの拡張方法など,いろんな実務を例に聞かれます。
ですので,待ち行列は,公式だけでなく,仕組みも勉強して,できれば「なぜそうなるのか」といった部分まで理解しておくことをおすすめします。
といっても,待ち行列理論は数学理論ですし,統計学の複雑なところまで知っておく必要はないように感じてます。日常生活と合わせて,実際に体験しながら理解を深めていくと,楽しいと思います。
たとえば,日常生活で,行列に並ぶことって結構あると思います。
そのときに,「この列は,M/M/1かな?M/M/nかな?」とか,考えてみる,という感じで考えてみる。「で,大体さっきの人は○秒で終わったから,自分まで△分ぐらいかな」と予想してみて,それと実際を比較してみる,としてみると,かなりギャップがあることに気づくかもしれません。
レジや銀行のATMに並ぶときには,窓口ごとに列を作って並ぶとM/M/1待ち行列モデルになって遅くなります。なので,列をまとめて1つにすると,M/M/nの待ち行列になって,平均の待ち時間は短くなります。これは,体感でもある程度わかると思いますし,数式でも示されています。
せっかく勉強するのですから,できれば日常と結びつけて,「この待ち行列は~」などと考えてみてください。そんな感じで,勉強を実生活に活かしてみると,いろいろ使えることもあると思います。