待ち行列理論 - utokyo opencourseware...• マルコフ過程(morkov process) –...
TRANSCRIPT
待ち行列理論Queuing Theory
参考: 大石信一「待ち行列理論」コロナ社
内容と応用• 内容
– 確率的に発生する処理事象を数学的に解析評価するための数学的手法
– 以下の3つの事象の確率過程を定義して解析• 生成(Generation/Arrival)」• 収容(Waiting/Queuing)• 処理(Processing/Departure)
• 応用例– コンピュータシステム: プロセス処理
– ネットワークシステム: パケット通信
(*) 例: 1日に1,000人の客が来店する銀行に、最低いくつの窓口を用意すれば、平均待ち時間を10分にすることができるか?
確率空間 (Ω,S,P)
( )
( ) ( )( )( )
)A B ( P(B) A BP
B A P(B) P(A) BAP (*)
P(A) / BAP A BP
)P(A AP
0 AA 1,2...),S(kA1)P(
S)A( 0, P(A)
: ,...AA,AS : )A(A
:
1kk
1kk
jkk
k21
に影響されない事象は事象=
は独立事象で、と事象なら=
=
条件付き確率・
かつ・
・
・
事象の集合・
事象・
標本空間・
Q
I
I
I
U ∑∞
=
∞
==
==∈=Ω
∈∀≥
=
Ω∈∀
Ω
確率分布
dxxdFxp
pxFxXPp
xXPxFxF
xxjjj
jj
)()( )(
)()( )(
)( )()(
x X :)(•
=
=
==
≤=
∑ ≤
連続系では、注
確率密度関数
離散的な事象の集合確率分布関数・離散的
以下となる確率が確率変数
確率分布関数
確率分布(続)
• 期待値
• 合成積: 2つの独立事象(X と Y)で、z=x+yとなる事象Z を考える
∑= jjjpxXE )(
∑∑=
==+
−==ks
syx
kstyxz spskpsptpkF
0)()()()()(
幾何分布
• 独立な事象が、離散的に 確率 p で発生するような確率過程で、 n 回目で初めて事象が発生する確率P(X=n)
• 期待値 E(X) pnpnXP 1)1()( −−==
∑∞
=
=−−=1
11)1()(n p
pnpnXE
pnpxE
nppxpE
pnpXEpXE
n
n
n
11)1()(
1)1()(
1)1()()1()(
1
1
1
=−−=
−−=
−−=−−
∑
∑
∑
∞
=
∞
=
∞
=
Q
ポアソン過程(Poisson Process)
• 事象は独立に発生し、時間依存がない。
• 微小時間Δt の間に 事象は発生する確率は λΔt で与えられる。
• この時、時間間隔 (0,t] で 事象が k 回発生する確率 pk(t)
tek
kttPkλλ −=
!)()(
ポアソン過程を離散系で考えると
• 事象が発生する確率を p とする過程。
• n 時間内に k 回事象が発生する。
• np = λt とすれば。
npk
nk
n
knk
n
knkkn
n
ek
np
ppk
pkpnppnpnp
ppk
knnnppC
−
−
∞→
−
∞→
−
∞→
=
−−+−−
=
−+−−
=−
!)(
)1()1(!
)()(lim
)1(!
)1()1(lim)1(lim
・・・
・・・
ポアソン過程の合流と分流
• 単に、λ の 加算 と 減算 になる。
!
)(])[(
)!()(
!)(
)()()(
2121
22
0
11
0
21
n
tent
kn
tekntk
tekt
tttQn
n
k
kn
n
kk PP
λλλλ
λλλλ
λλ
+−+=
−
−−−=
=
∑
∑
=
−=
処理システム(e.g., プロセッサ)
λ1
λ2
λ3
λ4
指数分布
• ポアソン過程において、時間T内で、事象が一度も発生しない確率 p(T) を考える。 つまり、事象が発生する時間間隔が T 以上となる確率に同値。
(*) 時間 T 以内に事象が発生する確率 q(T)
)0( 0)0( 1
)(
)()()(
0
<>
=
== −
tt
Tu
TuTPTp e T
ただし、
λ
)(1)( TueTQ Tλ−−=
マルコフ連鎖 を用いた待ち行列計算手法
マルコフ連鎖
• マルコフ過程(Morkov Process)– システムの状態(State) が 定義されている。
– 状態(State) の間は、有向グラフ(リンク)で 連結されている。
– ある状態(State)は、ある確率で、自分自身を含むその他の状態(State)に遷移する。
– 将来の状態(次のState)は、過去の履歴に依存せず、現在の状態のみで決定される。
• マルコフ連鎖– マルコフ過程において 取りうる状態の数が、有限個もしくは、可算無限個の場合。
S1 S2 S3 S4 S5S0
p(0,0)
p(1,1) p(2,2) p(3,3) p(4,4)
p(5,5)p(4,5)p(3,4)p(2,3)p(1,2)p(0,1)
p(4,4)p(4,3)p(3,2)p(2,1)p(1,0)
⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
++++++
)()()()()()(
)5,5()5,4(0000)4,5()4,4()4,3(000
0)3,4()3,3()3,2(0000)2,3()2,2()2,1(0000)1,2()1,1()1,0(0000)0,1()0,0(
)1()1()1()1()1()1(
5
4
3
2
1
0
5
4
3
2
1
0
tStStStStStS
pPppP
ppPppP
ppPpp
tStStStStStS
例: 5つのサーバがプロセスを独立に処理。 5つ目以上のプロセスは廃棄される。 単位時間あたりには、プロセスは高々1つしか増減しない。
解法/計算手法
1. 状態遷移方程式
2. 状態確率の総和 は、1.0。
)()1( )-( )()1(
tttt
SS0QISQS
=+=⇒=+
Q
・
∑ ∑ ==+i i
ii tStS 0.1)()1(
S1S0
0.5 0.5 0.5
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
+++
)()()(
5.05.005.005.0
05.05.0
)1()1()1(
2
1
0
2
1
0
tStStS
tStStS
0.1
5.05.005.00.15.0
05.05.0
210
2
1
0
=++
=⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−
−
SSS
SSS
ただし、
0
0020
21
210
10
=+−=−+−=−
SSSSSSS
簡単な計算例(1)
S2
0.5
0.5 0.5
)( 33.033.033.0
SSS
33.0 33.0 0.13
0.1 ,
2
1
0
210
1
1
111
210
回答・・・・・⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
===⇒=⇒=⇒
=++⇒==
SSSSS
SSSSSS
S1S0
0.7 0.4 0.3
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
+++
)()()(
4.05.006.003.0
05.07.0
)1()1()1(
2
1
0
2
1
0
tStStS
tStStS
0.1
6.05.006.00.13.0
05.03.0
210
2
1
0
=++
=⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−
−
SSS
SSS
ただし、
0
06506103053
21
210
10
=+−=−+−=−
SSSSSSS
簡単な計算例(2)
S2
0.5
0.5 0.6
)( 2152162110
SSS
2110
0.11021
105610
0.121
53
,653
2
1
0
0
00
000
210
回答・・・・・⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
=⇒
==++
⇒
=++⇒
==
S
SS
SSS
SSS
少し、難しい モデルの計算
表記方法
• システム要素
– 到着時間間隔、処理時間間隔
– サービス窓口の数、システムの容量
• 確率過程
– M : 指数分布(Morkov)– D : 一定分布 (Deterministic)– G : 一般分布
– Ek : アーランK分布
M/M/S/S, e.g.,電話システム
• 到着: 生起確率 λ の指数分布
• 処理: 消滅確率 nμの指数分布 (nは客数) • 窓口数=N (口)• システム内数(=窓口数)=N(個)
(*) N個以上のサービスは拒絶される。
S(1)S(0)
1-λ λ λ
μ 2μ
1-μ-λ
S(n+1)S(n)
λ λ
(n+1)μ (n+2)μ
1-(n+1)μ-λ
λ
nμ
S(n-1)
λ
(n-1)μ1-nμ-λ1-(n-1)μ-λ
S(N-1) S(N)1-Nμ
λ λ
(N-1)μ Nμ1-(N-1)μ-λ
・・・・・・・・・
・・・・・・ ・・・・・・
・・・・・・
1)( 10 境界条件・・ PP μλ =
2)( 1
境界条件
・・ NN PNP μλ =−
S(n+1)S(n)
λ λ
(n+1)μ (n+2)μ
1-(n+1)μ-λ
λ
nμ
S(n-1)
λ
(n-1)μ1-nμ-λ1-(n-1)μ-λ
・・・・・・ ・・・・・・
0)1()( 11 =+++− +− nnn PnPnP μμλλ
0
1 12
10
00
2
01
!)(
2
2
2
)(
1 ,
Pn
nP
Pn
PPP
PPPP
P
PN
PPP
n
nn
NN
μλ
μλ
μλ
μλ
μ
λμ
λμλμλ
μλ
μλ
=⇒
=⎯⎯⎯⎯⎯ →⎯=⇒
==−+
=
−==
−再帰的に計算すると
∑
∑
∑∑
=
=
==
=⇒
=⇒
=⎟⎟
⎠
⎞
⎜⎜
⎝
⎛+=
N
n
n
N
n
N
n
N
nn
n
nn
n
P
n
nP
Pn
nP
0
0
0
010
!)(
!)(
!)(
1
1.0 !)(1
μλ
μλ
μλ
μλ
(*) 打ち切られたポアソン分布
ちょっとした計算
• 輻輳(Congestion)時間の確率 = PN
• 呼損率(サービスを受けらなかった生成事象)=B
• 単位時間にサービスを受けることができた事象の数=Y
NN
ii
NN
ii
N PP
P
P
PB ===
∑∑== 00
λ
λ
λ
λ
)1(1
BnPYN
nn −==∑
= μλ
M/M/1/∞, e.g., 理想的な計算機
• 到着: 生起確率 λ の指数分布
• 処理: 消滅確率 μの指数分布
• 窓口数=1 (口)• システム内数=∞ (個)
(*) 無限個のプロセスをQueuing可能。
S(1)S(0)
1-λ λ λ
μ μ
1-μ-λ
S(n+1)S(n)
λ λ
μ μ
1-μ-λ
λ
μ
S(n-1)
λ
μ1-μ-λ1-μ-λ
・・・・・・・・・
・・・・・・ ・・・・・・
1)( 10 境界条件・・ PP μλ =
0)( 11 =++− +− nnn PPP μμλλ
( )nP
P
PPn
P
Pn
PPP
PPPP
P
PP
n
N
n
N
nn
n
μλμλ
μλ
μλμλ
μλ
μλ
μλ
μ
λμ
λμλμλ
μλ
・
なので、
ここで、
再帰的に計算すると
)1(
1
111.0
2
2
2
)(
,
0
00
00
0 12
10
00
2
01
−=
−=
−=⎟
⎠⎞⎜
⎝⎛==
⎟⎠⎞⎜
⎝⎛=⎯⎯⎯⎯⎯ →⎯=⇒
==−+
=
=
∑∑==
M/M/S/∞, e.g., 理想的な計算機
• 到着: 生起確率 λ の指数分布
• 処理: 消滅確率 nμの指数分布(nはプロセス数)
• 窓口数=N (口)• システム内数=∞ (個)
(*) 無限個のプロセスをQueuing可能。
S(1)S(0)
1-λ λ λ
μ μ
1-μ-λ
S(n+1)S(n)
λ λ
(n+1)μ (n+2)μ
1-(n+1)μ-λ
λ
nμ
S(n-1)
λ
(n-1)μ1-nμ-λ1-(n-1)μ-λ
・・・・・・・・・
・・・・・・ ・・・・・・
1)( 10 境界条件・・ PP μλ =
0)1()( 11 =+++− +− nnn PnPnP μμλλ
S(N+1)S(N)
λ λ
Nμ Nμ1-Nμ-λ
λ
Nμ
S(N-1)
λ
(N-1)μ1-Nμ-λ1-(N-1)μ-λ
・・・・・・ ・・・・・・
0)( 11 =++− +− nnn PNPNP μμλλ
S(N+2) S(N+3)
λ
Nμ
1-Nμ-λ
Nnfor ≥∀
1
11
!1
!1
N)(n ,!
1
N)n(0 ,!
1
)(N)n(0 ,)1(
1
00
0
0
,1
1
−
⎪⎭
⎪⎬⎫
⎪⎩
⎪⎨⎧
−⎟⎟⎠
⎞⎜⎜⎝
⎛+⎟⎟
⎠
⎞⎜⎜⎝
⎛=
≥⎟⎟⎠
⎞⎜⎜⎝
⎛=
<≤⎟⎟⎠
⎞⎜⎜⎝
⎛=
≥=<≤+=
∑−
=
−
+
+
μλμλ
μλ
μλ
μλ
μλμλ
NN
N
n
nP
Pn
NNP
Pn
nP
NnPNPPnP
N
n
Nnn
n
nn
nn
なお、
なので、