wq
-2.
待ち行列
1
金子邦彦
(待ち行列の数理)
URL:
https://www
.kkaneko.jp/cc/wq/index.html
ア
ウ
トライン
2-
1
待ち行列
2-
2
ケンドール記法
2-3 M/M/1/1
待ち行列
2-4 M/M/1/1
待ち行列の解析
2-5 M/M/1
待ち行列の解析
2
2-
1
待ち行列
3
•
スタ
ック
•
データの挿入と取り出しの両方を列の一方の端か
ら行
う
•
キュ
ー
•
一方の端から挿入を,も
う
一方の端から取り出し
を行
う
•
取り出されるのは最も古いデータ
•
最初に入れたデータが最初に取り出される
•
FIFO
(first-
in
-first
-
out
,先入れ先出し
)
と呼ぶ
データ
データ
データ
データ
値の追加
値の取り出し
4
スタックとキュー
到着
サーバ
待ち行列
5
待ち行列
待ち行列
•
処理を受けるために順番待ちをする人がな
す列
•
銀行の窓口や入場券売り場など
6
待ち行列の長さ,システム内の
ジョブ総数
到着
サーバ
待ち行列
待ち行列の
長さ
システム内の
ジョブ総数
7
待ち時間
ジョブ到着から
サービス開始まで
到着
サーバ
待ち行列
遅延時間
ジョブ到着から
サービス終了まで
8
遅延時間,待ち時間
λD
=
N
D:
「
遅延時間
」の平均
N:
「システム内の
ジョ
ブ総
数
」の平均
λD
W
= N
W
D
W
:
「
待ち時間
」の平均
N
W
:
「
待ち行列の長さ
」の平均
以下,シス
テム内の
ジョブ総数
,
待ち行列の長さ
を
考える
9
遅延時間,待ち時間
2-
2
ケンドー
ル記法
10
到着
サーバ
待ち行列
サーバ数:
Z
時間
(
t,
t
+
⊿
t
)
に到
着
するジョブ数:
X
t
ジョブの処理を行
う
処理時間:
Y
11
ケンドール記法
X/Y/Z
到着
サーバ
待ち行列
サーバ数:
Z
時間
(
t,
t
+
⊿
t
)
に到
着
するジョブ数:
X
t
ジョブの処理を行
う
処理時間:
Y
待ち行列の
長さ
を
K
-1に
制限
12
ケンドール記法
X/Y/Z/K
•
待ち行列の
長さ
に限
りがある
•
待ち行列の長さ
が「
最大で
K-1
」に
制限
されるとき,
システム内の
ジョブ総数
は
K
に制限される
•
K=0
の場合は
•
すでにサーバが他のジョブを処理中のとき
•
到着したジョブは棄却
される(待ち行列
に入らない)
•
サーバがジョブを処理していないとき
•
到着したジョブは直ち
に処理される
13
待ち行列の長さの制限
X/Y/Z/K
X:
到着過程
Y
:
処理時間分布
Z:
サーバ数
K
:
待ち行列の長さ
制限
(
待ち行列の長さ
の最大長:
K
-1
)
X/Y/Z
待ち行列の長さ
に制限
無し
14
ケンドール記法
2-3 M/M/1
/1
待ち行列
15
X:
到着過程
→
ポアソン分布
のとき「
M
」と書く
Y
:
処理時間分布
→
指数分布
のとき「
M
」と書く
Z:
サーバ数
K
:
待ち行列の長さ
の制限
16
ケンドール記法
到着
サーバ
待ち行列
•
到着過程:
ポアソン分布
•
処理時間分
布:
指数分
布
•
サーバの個
数:
1個
•
待ち行列の長さ
の制限:
K
=
1
17
M/M/1/1
待ち行列
「分布」の種類
M
:
ポア
ソン分
布
/
指
数分布
Ek
:
k
相の
アーラン分布
D:
一定分布
G:
一般分布
GI:
独立性を有
する一般分布
18
平均到着率
•
単位時間に到着する
ジョブの平均値
•
待ち行列に加わろ
う
とするジョ
ブのやって
くる頻度
19
•
ジョブの到着がランダム
•
「
時間
(
t,
t
+
⊿
t
)
に到
着するジョブ数
」に注目
•
⊿
t
に比例して増加
•
平均値:
λ
⊿
t
•
λ
は単位
時間あたりの平均ジョブ数
20
到着率
λ
のポアソン分布
ポアソン分布の特徴
•
同じ幅をもった時間
区間あたりの到着の仕方
は,時刻に依存しな
い
•
共通部分のない時間区間たちのそれぞれの到
着の仕方は独立であ
る
•
同時刻に
2
人のジョブが
やってくることはない
•
ごく短い時間
⊿
t
の間にジョブが
1
人来る確率
は
λ
⊿
t
21
平均処理率
•
単位時間に処理を受
けるジョブの平均値
•
処理がどの程度で行
われているかの尺度
22
•
ジョブの完了時刻が
ランダム
•
「
あるジョブの処理の完了か
ら次のジョブの完
了までの時間
」に着目
•
平均値:
1/
μ
•
μ
は単位時間あたりの
平均ジョブ完
了数
•
サーバがジョブを処理中の間,
⊿
t
内に完了する
処理数:
μ
⊿
t
23
処理率
μ
の指数分布
指数分布の特徴
•
進行中の処理が終了
する確率は,それまでに処理
に要した時間に依存しない
•
ある時刻に開始され
る処理は,それ以前に行われ
た処理や到着に依存
しない
•
ごく短い時間
⊿
t
の間に処理が
1
つ終了する
確率は
μ
⊿
t
24
•
微小時間
⊿
t
の間に到着するジョ
ブ:
•
たかだか
1
人
•
時間
⊿
t
の間に終了
する処理:
•
たかだか
1
つ
•
時間
⊿
t
の間に「
ジョブの到着」「処
理の終了」
が同時になされるこ
とはない
25
微小時間の意味
2-
4
待ち行列
の解析
26
•
待ち行列の長さ
•
システム内
の
ジョブ総数
•
ジョブの
遅
延時間
•
ジョブの
待
ち時間
27
待ち行列の解析での解析の
対象
•
確率
的に解
析
•
待ち行列の
システム
の状態
と
状態遷移
による
解析
システムの状態:
P
0
,
P
1
,
P
2
,
・・・
(添字は,システム内のジョブ総数)
•
定常
状態
での
待ち行列の長さ
,
ジョブ総数
を
算出する
•
t
→∞
では,
システムの状態
は
定常確率
に
漸近
す
る(初期状態を無視できる)
28
解析手順
システム処理能力
ρ
ρ= λ/μ
•
λ
⊿
t
:
「時間
(
t,
t
+
⊿
t
)
に到
着するジョ
ブ数」の平均
•
μ
⊿
t
:
「サー
バがジョブを処理中の間
,
⊿
t
内に完了す
る処理数」の平均
※
待ち行列の長さ
に限りがないとする
と:
λ
<
μ
(
つまり
ρ
<1)である必要があ
る
(さもないと待
ち行列が
あふれる
)
29
ジョブを処理
していない
ジョブを処理中
ジョブが到着した
全てのジョブが処理
終了した
ジョブが到
着
しない
ジョブが処理
終了しない
状態名
P0
とする
状態名
P1
とする
30
個々のサーバの状態と状態
遷移
・
K=1
なので,
待ち行列の長
さ
は0か1
・状態遷移の
確率は,下図
の通り
待ち行列の
長さが0
(ジョブを処理していない)
待ち行列の
長さが1
(ジョブを処理中)
λ
⊿
t
μ
⊿
t
1-
λ
⊿
t
1-
μ
⊿
t
31
M/M/1/1
待ち行列でのサー
バの状態遷移
状態名
P0
状態名
P1
P
0
(
t
+
⊿
t
) = (1
-
λ
⊿
t
)P
0
(t)
+
μ
⊿
t
P
1
(
t
)
P
1
(
t
+
⊿
t
) =
λ
⊿
t
P
0
(
t
)
+ (1
-
μ
⊿
t
)P
1
(
t
)
32
M/M/1/1
待ち行列でのサー
バの状態遷移
lim P
0
(
t
), lim P
1
(
t
)
を求めよ
う
t
→∞
t
→∞
t
→∞
のとき
P
0
(
t
) →
P
0
, P
1
(
t
)→
P
1
(収束する)と仮定す
る
d
P
0
(
t
)
dt
=
-
λ
P
0
(
t
) +
μ
P
1
(
t
)
だが(理由は後述)
仮定より,
t
→∞
のとき
d
P
0
(
t
)
dt
= 0
なので
-
λ
P
0
+
μ
P
1
=
0
これと
P
0
+P
1
=
1
から,
P
0
=
,
P
1
=
λ
+
μ
μ
λ
+
μ
λ
33
M/M/1/1
待ち行列での定常
確率
P
0
(
t
+
⊿
t
) = (1
-
λ
⊿
t
)P
0
(
t
) +
μ
⊿
t
P
1
(
t
)
P
0
(
t
+
⊿
t
)
-
P
0
(
t
) =
-
λ
⊿
t
P
0
(
t
) +
μ
⊿
t
P
1
(
t
)
=
-
λ
P
0
(
t
) +
μ
P
1
(
t
)
=
-
(
λ
+
μ
)P
0
(
t
)+
μ
⊿
t
P
0
(
t
+
⊿
t
)
-
P
0
(
t
)
⊿
t
P
0
(
t
+
⊿
t
)
-
P
0
(
t
)
(
P
0
(
t
) + P
1
(
t
)
= 1
から)
P
0
(
t
)
の方程式が求まった
34
M/M/1/1
待ち行列での定常
確率
lim
=
-
(
λ
+
μ
)
P
0
(
t
)+
μ
=
-
(
λ
+
μ
)
P
0
(
t
)+
μ
⊿
t
P
0
(
t
+
⊿
t
)
-
P
0
(
t
)
⊿
t
→0
d
P
0
(
t
)
dt
これは
P
0
( t )
の微分方程式
P
0
(
t
) =
λ
+
μ
μ
+ ( P
0
( 0 )
-
)
e
λ
+
μ
μ
-(
λ
+
μ
)
t
lim
P
0
(
t
) =
⊿
t
→0
λ
+
μ
μ
35
M/M/1/1
待ち行列での定常
確率
定常状態における性質
-
λ
P
0
+
μ
P
1
=
0
つまり
λ
⊿
t
lim
P
0
(t) =
μ
⊿
t
lim
P
1
(t)
t
→∞
t
→∞
新たなジョブが
⊿
t
以内に到着する確率
処理中のジョブが
⊿
t
以内に完了する確率
36
•
定常状態
•
lim
P
0
(t) =
•
lim
P
1
(t) =
•
定常状態でのサーバ
内のジョブ総数
•
0
である確率:
lim
P
0
(t), 1
である確率:
lim
P
1
(t)
t
→∞
t
→∞
ρ
1
1+
ρ
1+
ρ
t
→∞
t
→∞
(但し
ρ= λ/μ
)
37
まとめ
M/M/1
待ち行列
38
到着
サーバ
待ち行列
39
M/M/1
待ち行列
•
到着過程:
ポアソン分布
•
処理時間分
布:
指数分
布
•
サーバの個
数:
1個
•
待ち行列の長さ
の制限:
制限
なし
M/M/1
待ち行列
•
処理の窓口は
1
つ
•
処理を受けるための
列は
1
つ
•
いったん行列に加わったら,処理を受けるま
で待ち続ける
•
ジョブの到着の仕方
は
ポアソ
ン分布
に従
う
•
処理時間の分布は
指数分
布
に従
う
40
•
時刻
t
にジョブが
n
個ある確率:
P
n
(t)
とおく
(n=0,1,2,
・・・
)
•
時刻
t+
⊿
t
にジ
ョブが
1
個もい
ないのは,次のいず
れかの
場合
1.
ジョブが
1
個もいなくて
,
⊿
t
に新たなジョブが来なか
った
P(A)=P
0
(t)*(1-
λ
⊿
t)
2.
1個のジ
ョブが処理を受けて
いて,
⊿
t
の間に処理が終了した
P(B)=P
1
(t)*μ
⊿
t
•
これらは独立な事
象なので,
P
0
(t+
⊿
t) = P
0
(t)*(1-
λ
⊿
t) +
P
1
(t)*
μ
⊿
t
41
時刻
t+
⊿
t
の時点で,ジョブが
1
個もない確率
続き
•
P
n
(t)
は,時
刻に依存しない(定常状
態)と考
えて
P
n
(t +
⊿
t) = P
n
(t)
•
前ページの
式に代入すると
P
0
(t) λ
⊿
t=P
1
(t)μ
⊿
t
•
つまり
P
0
(t) λ=P
1
(t)μ
42
P
n
(t)
•
時刻が
t
から
t +
⊿
t
になった
時点で,ジョブ
の総数
が
n
である場合は以下
の
3
通り
•
時刻
t
に
n
個で,新たなジョブが到着せず,処理も終了し
なかった
P(A) = P
n
(t)*(1-
λ
⊿
t)*(1-
μ
⊿
t)
=
P
n
(t)*(
1-
λ
⊿
t
–
μ
⊿
t)
•
時刻
t
に
n-1
個で,新たなジョブが
1
つ到
着した
P(B) = P
n-1
(t)*
λ
⊿
t
•
時刻
t
に
n+1
個で,ジョブの処理が
1
つ終了した
P(C) = P
n+1
(t)*
μ
⊿
t
43
•
P
n
(t+
⊿
t)=P(A)+P(B)+P(C)
から
P
n
(t)(λ + μ) = P
n-1
(t)λ
+ P
n+1
(t)μ
44
続き
λ
P
0
=
μ
P
1
(
λ+μ
)
P
1
=
λ
P
0
+
μ
P
2
(
λ+μ
)
P
i
=
λ
P
i-
1
+
μ
P
i+
1
45
まとめ
以上から,定常状態における状態遷移
については,次が成
り立つ
P
1
=
ρ
P
0
P
2
= (1+
ρ
)P
1
-
ρ
P
0
=
(1+
ρ
)
ρ
P
0
-
ρ
P
0
=
ρ
P
0
Pi =
ρ
P
0
一方,
ΣPi=1
なので
Pi
=
(
1
-
ρ
)
ρ
2
i
i
46
すべての状態の確率を
P0
の式で書く
ΣPi
= 1
つまり,
P
0
(t)*(
1+ρ
+ρ +
・・・
)
= 1
•
ρ
≧
1
•
処理できるジョブ数より,やってくる方が多い
•
1+ρ
+ρ +
・・・は発散する
•
ρ<1
•
1+ρ
+ρ +
・・・
=1/
(
1-
ρ
)
(発散しない)
•
P
0
(t)=1-
ρ
47
1
2
1
2
1
2
続き
N
= ΣnP
n
= Σn
(
1
-
ρ
)
ρ
=
Nw
= Σ
(
n
-
1)P
n
= ΣnP
n
-
(1-
P
0
)
= N
-
(1-
P
0
)
=
n
ρ
1-
ρ
ρ
1-
ρ
2
48
平均ジョブ数,平均待ちジ
ョブ数
平均ジョブ数
•
平均ジョブ数を
L
とおくと
•
L
を計算すると
L =
ΣnP
n
n=0
∞
L=
1-
ρ
ρ
49
•
処理を受けているジ
ョブを含まない
待ち行列
内の平均ジョブ数
:
L
q
L
q
=Σ(n
-
1)
P
n
=Σ(n
-1)(1-
ρ)
ρ
n
=
ρΣ
(n
-1)(1-
ρ)
ρ
n-1
=
ρΣn
(1
-
ρ)
ρ
n
=
ρΣnP
n
=
ρL
L
q
=
n=
1
∞
n=
1
∞
n=
1
∞
n=
1
∞
n=
1
∞
1-
ρ
ρ
2
50
平均待ち時間
•
ジョブが並びはじめて処理を受け始めるま
での時間の平均:
W
q
L
q
=
λW
q
•
このことから
W
q
= = =
λ
λ(1
-
ρ) μ(1
-
ρ)
L
q
ρ
ρ
2
51
おわりに
•
待ち行列の数理
•
システム内のジョブ総数
•
待ち行列の長さ
•
待ち行列の定常状態
•
状態遷移
•
定常確率
「確率」を使って,待ち行列の
振る舞いをとらえる
52
•
ある銀行には
4つの窓口がある
.この銀行に,
1
分に
1
人の割合で客が
ポアソン到着
するとしよ
う
.
また,
1人の客のサービス時間
は平均
3
分の
指数
分布
に従
う
ものとする.
単純のために,
1
度銀行
に入った客は,サー
ビスを受けるまで必ず待つと
い
う
ことを仮定しよ
う
(1)この場合のケンドール表記を書け
M/M/4
練習1
53
(2)「定
常状態」において
,1分あたりに平
均で,客は何人帰る
か
サーバ4つ
到着
待ち行列
1分あたり平均
1人到着する
1分にあたり
平均3分の処理時間
1分あたり平均
1人帰る
54
(3)
システム処
理能力(
ρ
)を答えよ
.
サーバ4つ
到着
待ち行列
1分にあたり
平均3分の処理時間
1分あたり平均
1人帰る
1分あたり平均
1人到着する
λ=1,
S
=4, μ=1/3
より,
ρ= λ
/S
μ
=
3/4
55
•
1つの窓口しかない
銀行を考える
•
客は,銀行にやってきたとき窓口が空いているか
ど
う
か確認する
•
空いていれば窓口で用事を済ませる
•
空いていなければあきらめて家に帰り,銀行の用
事を忘れるものとする
到着
待ち行列なし
1分あたり平均
1人帰る
練習2
56
•
客は,平均20分あ
たり1人のポアソン分布
で銀行に到着し,すべての客は窓口に10分
間(等しい時間)滞
在するとしよ
う
.
•
客があきらめて帰る確率はいくらか
•
客の到着は
λ = 1/20
のポアソン分布
•
t = 10
を
に代入
•
客が来てから次の客が来るまでの時間は,
λ =
1/20
の指数分布
•
t = 10
を
1-
e
に代入
(
λt
)
e
k!
k
-
λt
k=0
-
λt
57
•
Aさんの電話の話し時間は
,
平
均
5
分
)
の指
数分布に従
う
ものと仮定する.
•
Aさんに電話をかけたらた
またま話し中であった
.
では
,3分後に電
話をかけたら再び話し中である
確率はいくらか
•
話し時間は,
λ
=
1/5
の指数分布
•
t = 3
を
1-
e
に代入
話し時間がランダム
-
λt
練習3
58