【応用情報】MM1モデルを解説【わかりやすく】

待ち行列 MM1モデル

記事の対象読者

welcome

なんで平均応答時間1つ求めるのに、何段階もの公式を経由しなきゃダメなの?そんないちいち覚えられないよ。このような気持ちは待ち行列に出会った人ならすべての人が感じることだと思います。

しかし、それはとても損です。確かに数式は多いですが分解すると1つ1つは簡単な公式です。どれほど簡単かというと、分数ができればだれでも理解できるレベルです。

これを読み終わったら、MM1モデルがチャンス問題に感じる!そう思ってもらうところをゴールとしてこのページは書かれています。

前置き

この記事では、参考書などでよく目にする「一定時間あたり」という言葉を「1秒」に置き換えて考えています。なぜなら、具体的な数字を当てはめた方がイメージしやすく、簡単に感じられるからです。また、待ち行列の対象にはパケットを当てはめて考えています。
まずは、基本から固めていきましょう!

平均到着率(λ)

平均到着率

平均到着率(λラムダ)とは1秒間で何個のパケットが到着するかを表します。要するにパケット数を表します。

平均到着率の公式

$$平均到着率(λ)=\frac{到着するパケット数}{到着にかかった秒数}$$

到着したパケット数を秒数で割ることで、1秒間に何パケット到着しているかが分かります。

平均到着率の例題

Q. 2秒で240パケット到着する場合の平均到着率は?

A. 240パケット÷2秒=120パケット

解説. 平均到着率が120ということは1秒間に120パケットが到着するということです。また、2秒で割ることで、240を2等分できます。つまり、1秒間の到着パケット数を求められるということです。

平均到着時間間隔(Tλ)

平均到着時間間隔

平均到着時間間隔(Tλ)は前のパケットから次のパケットが来るまでの間の時間を表します。要するに時間を表します。

平均到着時間間隔の公式

$$平均到着時間間隔(Tλ)=\frac{到着にかかった秒数}{到着するパケット数}$$

$$平均到着時間間隔(Tλ)=\frac{1}{λ}$$

到着にかかった秒数をパケット数で割ることで、1件到着するのにかかった時間が分かります。また、この1つ目の式は平均到着率の分母・分子を入れ替えたものです。つまり、平均到着時間間隔は平均到着率の逆数であると言えます。これが2つ目の式の意味です。

平均到着時間間隔の例題

Q. 1分間で3パケット到着する場合の平均到着時間間隔は何秒ですか?

A. 60秒÷3パケット=20秒

解説. まず、秒で聞かれているので分を秒になおします。1分は60秒です。で、あとは公式に当てはめて60÷3=20となります。

平均到着時間間隔が20秒ということは平均20秒おきにパケットが到着するということです。また、60秒を3パケットで割ることで、60秒を3等分できます。つまり、1パケットおきの時間間隔を求められるということです。

平均サービス率(μ)

平均サービス率

平均サービス率(μミュー)とは1秒間にサービス(処理)を提供できる数を表します。

平均サービス率の公式

$$平均サービス率(μ)=\frac{パケットの処理数}{処理にかかった秒数}$$

処理したパケット数をかかった秒数で割ることで1秒間に処理できるパケット数を表せます。

平均サービス率の例題

Q. 3秒で450パケット処理する場合の平均サービス率は?

A. 450パケット÷3秒=150パケット

解説. 平均サービス率が150ということは、1秒間に150パケットを処理できるということです。また、3秒で割ることで、450を3等分できます。つまり、1秒間の処理パケット数を求められるということです。

平均サービス時間(Ts: Time for Service)

平均サービス時間

平均サービス時間(Ts)とは1パケットを処理する時間を表します。

平均サービス時間の公式

$$平均サービス時間(Ts)=\frac{処理にかかった秒数}{パケットの処理数}$$

$$平均サービス時間(Ts)=\frac{1}{μ}$$

処理にかかった秒数をパケット数で割ることで、1件処理するのに何秒かかったかが分かります。また、この公式は平均サービス時間の分母・分子を入れ替えた公式です。つまり、平均サービス率の逆数が平均サービス時間になります。

平均サービス時間の例題

Q. 1秒で150パケット処理できる場合の平均サービス時間は?

A.1秒÷150パケット=1/150秒

解説. 平均サービス時間が1/150ということは1件のパケット処理時間が1/150秒ということです。また、1秒を150で割ることで、1秒を150等分できます。つまり、1パケットにかかる秒数を求められるということです。

利用率(ρ)

利用率

利用率(ρロー)とはサービス設備やリソースが使用されている割合を表します。

利用率の公式

$$利用率(ρ)=\frac{到着するパケット数}{提供できるパケット数}$$

この式は要するに、

$$利用率(ρ)=\frac{平均到着率(λ)}{平均サービス率(μ)}となります。$$

要するに、1秒間に到着する実際のパケット数(λ:平均到着率)を1秒間で提供できる最大パケット数(μ:平均サービス率)で割ることで、どれだけ効率的にサービスを利用できているか(ρ:利用率)が求められます。

例えば、1日12時間のサービスの利用率は1日は24時間なので、12/24=1/2、つまり0.5です。これは、1日の50%の時間が利用されているということです。逆に50%近くは利用されていないことを表しています。

利用率の例題

Q. 3秒で450パケット処理する装置があります。この装置には2秒おきに240パケット到着します。この場合の利用率は?

A. ________

  1. λ=240パケット÷2秒=120パケット
  2. μ=450÷3=150パケット
  3. ρ=120÷150=0.8

解説. まずは1秒間で何件到着するか(λ)を求めます。次に1秒間に何件処理できるかを求めます。そして最後は利用率の公式に当てはめて求めます。

利用率が0.8ということは80%を使えているということになります。つまり、なかなか効率の良いシステムであると言えるでしょう。

滞留数(Ew: Expected Wait)

滞留数

滞留数(Ew)とは、処理中のパケット処理を待っているパケットの合計個数を表します。処理中のパケットも含めるということを忘れないようにしましょう!

また、分子・分母の性質上、分母が小さいほどその値は大きくなります。つまりこれは、単純に利用率が高くなると滞留数も大きくなることを表しているのです。

ここでお詫びなのですが滞留数の公式は少し理論的に難しい部分があるため、この記事では完全な説明を省略させていただきます。

滞留数の公式

$$滞留数(Ew)=\frac{利用率(ρ)}{1-利用率(ρ)}$$

滞留数は、「利用率(ρ)が待ち行列に影響を与える」という性質から、利用率を用いて滞留数を求めます。また、滞留数は直線的に単純な増加をするのではなく、指数関数的に増加していきます。そのため、このような複雑な公式になるのです。

例えば、ρが0.5の場合の0.5/1-0.5=1です。しかし、ρが0.9になると、0.9/1-0.9=9となります。つまり、ρが0.4増えただけで、滞留数は9倍にも膨れ上がるのです。

要するに、利用率が高ければ滞留数も高くなり、低ければ滞留数も低くなるということです。更に簡単に言うと、分子・分母の性質上、分母が小さいほどその値は大きくなり、分母が大きいとその値は小さくなりますよね。これを複雑にしたのが滞留数の公式です。

滞留数の例題

Q. 利用率が0.2のシステムがあります。この時の滞留数は?

A. 0.2/1-0.2=0.2/0.8=0.25

解説. 滞留数の公式に当てはめると、回答が導けます。また、応用情報技術者試験(AP)などでは滞留数だけを問う問題はあまりないので、参考までに暗記しておいてください。

平均待ち時間(Tw: Time Queue)

平均待ち時間

平均待ち時間(Tq)とは待ち行列において、到着してからサービスを受け始めるまでの時間の平均を表します。

平均待ち時間の公式

$$平均待ち時間(Tq)=Ew\times Ts$$

平均待ち時間(Tq)は既に滞留しているパケット数(Ew:滞留数)1件における処理時間(Ts:平均サービス時間)を掛けることで求まります。

平均待ち時間の例題

Q. 利用率が0.2で、平均サービス時間が8秒のシステムがあります。このシステムの平均待ち時間は?

A. Tq=0.2/1-0.2×8=2

解説. 平均待ち時間の公式よりTq=2と求められます。ただし、これはあくまでも平均です。タスクはランダムに発生するものなので、まったく待たない場合もあれば、十秒以上待つ場合もあります。しかし、その平均が2秒ということです。

平均応答時間(Tw: Time Wait)

平均応答時間

平均応答時間とは行列に並んでから、処理が終了するまでの一連の時間を表します。

平均応答時間の公式

$$平均応答時間(Tw)=Tq+Ts$$

自分に回ってくるまでの時間(Tq:平均待ち時間)に自分の処理時間(Ts:平均サービス時間)を加えることで並んでから処理完了までの時間(Tw)を求めることができます。

平均応答時間の例題

Q. 平均待ち時間が2秒、平均サービス時間が3秒のシステムがあります。この平均応答時間は何秒ですか?

A. Tw=2+3=5

解説. 平均応答時間が5ということは並んでから処理終了までの一連のプロセスには、平均して5秒かかるということです。

まとめ公式集

まとめ

$$1. 平均到着率(λ)=\frac{到着するパケット数}{到着にかかった秒数}$$

$$2. 平均到着時間間隔(Tλ)=\frac{到着にかかった秒数}{到着するパケット数}$$

$$3. 平均到着時間間隔(Tλ)=\frac{1}{λ}$$

$$4. 平均サービス率(μ)=\frac{パケットの処理数}{処理にかかった秒数}$$

$$5. 平均サービス時間(Ts)=\frac{処理にかかった秒数}{パケットの処理数}$$

$$6. 平均サービス時間(Ts)=\frac{1}{μ}$$

$$7. 利用率(ρ)=\frac{到着するパケット数}{提供できるパケット数}$$

$$8. 利用率(ρ)=\frac{λ}{μ}$$

$$9. 滞留数(Ew)=\frac{利用率(ρ)}{1-利用率(ρ)}$$

$$10. 平均待ち時間(Tq)=Ew\times Ts$$

$$11. 平均応答時間(Tw)=Tq+ Ts$$

おわりに

最後までお疲れさまでした!少しでも理解が深まったら幸いです。

他にも応用情報で疑問がありましたら、こちらも↓ご自由に使ってみてください。

タイトルとURLをコピーしました