待ち行列理論 - utokyo opencourseware...• マルコフ過程(morkov process) –...

30
待ち行列理論 Queuing Theory 参考: 大石信一「待ち行列理論」コロナ社

Upload: others

Post on 30-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

待ち行列理論Queuing Theory

参考: 大石信一「待ち行列理論」コロナ社

Page 2: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

内容と応用• 内容

– 確率的に発生する処理事象を数学的に解析評価するための数学的手法

– 以下の3つの事象の確率過程を定義して解析• 生成(Generation/Arrival)」• 収容(Waiting/Queuing)• 処理(Processing/Departure)

• 応用例– コンピュータシステム: プロセス処理

– ネットワークシステム: パケット通信

(*) 例: 1日に1,000人の客が来店する銀行に、最低いくつの窓口を用意すれば、平均待ち時間を10分にすることができるか?

Page 3: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

確率空間 (Ω,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 ∑∞

=

==

==∈=Ω

∈∀≥

=

Ω∈∀

Ω

Page 4: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

確率分布

dxxdFxp

pxFxXPp

xXPxFxF

xxjjj

jj

)()( )(

)()( )(

)( )()(

x X :)(•

=

=

==

≤=

∑ ≤

連続系では、注

確率密度関数

離散的な事象の集合確率分布関数・離散的

以下となる確率が確率変数

確率分布関数

Page 5: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

確率分布(続)

• 期待値

• 合成積: 2つの独立事象(X と Y)で、z=x+yとなる事象Z を考える

∑= jjjpxXE )(

∑∑=

==+

−==ks

syx

kstyxz spskpsptpkF

0)()()()()(

Page 6: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

幾何分布

• 独立な事象が、離散的に 確率 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

Page 7: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

ポアソン過程(Poisson Process)

• 事象は独立に発生し、時間依存がない。

• 微小時間Δt の間に 事象は発生する確率は λΔt で与えられる。

• この時、時間間隔 (0,t] で 事象が k 回発生する確率 pk(t)

tek

kttPkλλ −=

!)()(

Page 8: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

ポアソン過程を離散系で考えると

• 事象が発生する確率を 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

・・・

・・・

Page 9: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

ポアソン過程の合流と分流

• 単に、λ の 加算 と 減算 になる。

!

)(])[(

)!()(

!)(

)()()(

2121

22

0

11

0

21

n

tent

kn

tekntk

tekt

tttQn

n

k

kn

n

kk PP

λλλλ

λλλλ

λλ

+−+=

−−−=

=

=

−=

処理システム(e.g., プロセッサ)

λ1

λ2

λ3

λ4

Page 10: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

指数分布

• ポアソン過程において、時間T内で、事象が一度も発生しない確率 p(T) を考える。 つまり、事象が発生する時間間隔が T 以上となる確率に同値。

(*) 時間 T 以内に事象が発生する確率 q(T)

)0( 0)0( 1

)(

)()()(

0

<>

=

== −

tt

Tu

TuTPTp e T

ただし、

λ

)(1)( TueTQ Tλ−−=

Page 11: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

マルコフ連鎖 を用いた待ち行列計算手法

Page 12: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

マルコフ連鎖

• マルコフ過程(Morkov Process)– システムの状態(State) が 定義されている。

– 状態(State) の間は、有向グラフ(リンク)で 連結されている。

– ある状態(State)は、ある確率で、自分自身を含むその他の状態(State)に遷移する。

– 将来の状態(次のState)は、過去の履歴に依存せず、現在の状態のみで決定される。

• マルコフ連鎖– マルコフ過程において 取りうる状態の数が、有限個もしくは、可算無限個の場合。

Page 13: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(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つしか増減しない。

Page 14: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

解法/計算手法

1. 状態遷移方程式

2. 状態確率の総和 は、1.0。

)()1( )-( )()1(

tttt

SS0QISQS

=+=⇒=+

Q

∑ ∑ ==+i i

ii tStS 0.1)()1(

Page 15: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

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

Page 16: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

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

Page 17: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

少し、難しい モデルの計算

Page 18: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

表記方法

• システム要素

– 到着時間間隔、処理時間間隔

– サービス窓口の数、システムの容量

• 確率過程

– M : 指数分布(Morkov)– D : 一定分布 (Deterministic)– G : 一般分布

– Ek : アーランK分布

Page 19: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

M/M/S/S, e.g.,電話システム

• 到着: 生起確率 λ の指数分布

• 処理: 消滅確率 nμの指数分布 (nは客数) • 窓口数=N (口)• システム内数(=窓口数)=N(個)

(*) N個以上のサービスは拒絶される。

Page 20: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

S(1)S(0)

1-λ λ λ

μ 2μ

1-μ-λ

S(n+1)S(n)

λ λ

(n+1)μ (n+2)μ

1-(n+1)μ-λ

λ

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 μλ =−

Page 21: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

S(n+1)S(n)

λ λ

(n+1)μ (n+2)μ

1-(n+1)μ-λ

λ

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

μλ

μλ

μλ

μλ

μ

λμ

λμλμλ

μλ

μλ

=⇒

=⎯⎯⎯⎯⎯ →⎯=⇒

==−+

=

−==

−再帰的に計算すると

Page 22: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

∑∑

=

=

==

=⇒

=⇒

=⎟⎟

⎜⎜

⎛+=

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

μλ

μλ

μλ

μλ

(*) 打ち切られたポアソン分布

Page 23: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

ちょっとした計算

• 輻輳(Congestion)時間の確率 = PN

• 呼損率(サービスを受けらなかった生成事象)=B

• 単位時間にサービスを受けることができた事象の数=Y

NN

ii

NN

ii

N PP

P

P

PB ===

∑∑== 00

λ

λ

λ

λ

)1(1

BnPYN

nn −==∑

= μλ

Page 24: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

M/M/1/∞, e.g., 理想的な計算機

• 到着: 生起確率 λ の指数分布

• 処理: 消滅確率 μの指数分布

• 窓口数=1 (口)• システム内数=∞ (個)

(*) 無限個のプロセスをQueuing可能。

Page 25: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

S(1)S(0)

1-λ λ λ

μ μ

1-μ-λ

S(n+1)S(n)

λ λ

μ μ

1-μ-λ

λ

μ

S(n-1)

λ

μ1-μ-λ1-μ-λ

・・・・・・・・・

・・・・・・ ・・・・・・

1)( 10 境界条件・・ PP μλ =

0)( 11 =++− +− nnn PPP μμλλ

Page 26: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

( )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

−=

−=

−=⎟

⎠⎞⎜

⎝⎛==

⎟⎠⎞⎜

⎝⎛=⎯⎯⎯⎯⎯ →⎯=⇒

==−+

=

=

∑∑==

Page 27: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

M/M/S/∞, e.g., 理想的な計算機

• 到着: 生起確率 λ の指数分布

• 処理: 消滅確率 nμの指数分布(nはプロセス数)

• 窓口数=N (口)• システム内数=∞ (個)

(*) 無限個のプロセスをQueuing可能。

Page 28: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

S(1)S(0)

1-λ λ λ

μ μ

1-μ-λ

S(n+1)S(n)

λ λ

(n+1)μ (n+2)μ

1-(n+1)μ-λ

λ

S(n-1)

λ

(n-1)μ1-nμ-λ1-(n-1)μ-λ

・・・・・・・・・

・・・・・・ ・・・・・・

1)( 10 境界条件・・ PP μλ =

0)1()( 11 =+++− +− nnn PnPnP μμλλ

Page 29: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

S(N+1)S(N)

λ λ

Nμ Nμ1-Nμ-λ

λ

S(N-1)

λ

(N-1)μ1-Nμ-λ1-(N-1)μ-λ

・・・・・・ ・・・・・・

0)( 11 =++− +− nnn PNPNP μμλλ

S(N+2) S(N+3)

λ

1-Nμ-λ

Nnfor ≥∀

Page 30: 待ち行列理論 - UTokyo OpenCourseWare...• マルコフ過程(Morkov Process) – システムの状態(State) が定義されている。– 状態(State) の間は、有向グラフ(リンク)で連結

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

なお、

なので、