Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
待ち行列のシミュレーション/queue_simulation
Search
florets1
July 13, 2023
Programming
0
300
待ち行列のシミュレーション/queue_simulation
florets1
July 13, 2023
Tweet
Share
More Decks by florets1
See All by florets1
複式簿記から純資産を排除する/eliminate_net_assets_from_double-entry_bookkeeping
florets1
1
340
カイ二乗検定は何をやっているのか/What_Does_the_Chi-Square_Test_Do
florets1
6
2.2k
直積は便利/direct_product_is_useful
florets1
3
340
butterfly_effect/butterfly_effect_in-house
florets1
1
160
データハンドリング/data_handling
florets1
2
190
カイ二乗検定との遭遇/The_path_to_encountering_the_chi-square_test
florets1
1
260
率の平均を求めてはいけない/Do_Not_Average_Rates
florets1
11
15k
請求と支払を照合する技術/using_full_join_in_r
florets1
2
240
応用セッション_同じデータでもP値が変わる話/key_considerations_in_NHST_2
florets1
1
1.1k
Other Decks in Programming
See All in Programming
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
540
SQL Server ベクトル検索
odashinsuke
0
110
AI時代のプログラミング教育 / programming education in ai era
kishida
22
20k
PHPUnit 高速化テクニック / PHPUnit Speedup Techniques
pinkumohikan
1
1.2k
AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・焼きなまし法編)
takumi152
3
970
GDG Super.init(version=6) - From Where to Wear : 모바일 개발자가 워치에서 발견한 인사이트
haeti2
0
560
List とは何か? / PHPerKaigi 2025
meihei3
0
540
‘무차별 LGTM~👍’만 외치던 우리가 ‘고봉밥 코드 리뷰’를?
hannah0731
0
530
WordPress Playground for Developers
iambherulal
0
120
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
860
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
190
Devin , 正しい付き合い方と使い方 / Living and Working with Devin
yukinagae
1
520
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
470
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Scaling GitHub
holman
459
140k
KATA
mclloyd
29
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
4 Signs Your Business is Dying
shpigford
183
22k
Making Projects Easy
brettharned
116
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Typedesign – Prime Four
hannesfritz
41
2.6k
The Invisible Side of Design
smashingmag
299
50k
Transcript
1 2023.07.15 Tokyo.R #107 待ち行列のシミュレーション
2 待ち行列 平均到着スピード 15台/時 到着時刻 開始時刻 待ち時間 完了時刻 到着間隔 平均洗車スピード
20台/時 サービス時間
3 平均待ち時間(解析解) 平均到着スピード = 𝜆 = 15/60[台/分] 平均洗車スピード = 𝜇
= 20/60[台/分] 平均利用率 𝜌 = 𝜆 𝜇 = 0.75 平均待ち時間 = 𝜌 1 − 𝜌 1 𝜇 = 9分
4 実は解析解から得られる情報は少ない ← 9分 何番目の車か 平均待ち時間(分)
5 シミュレーション(車100台分) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 単位:分
6 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
7 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 rexp(n, rate) 指数分布に従う乱数n個 平均 1/rate
8 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着時刻 = 1つ前の車の到着時刻 + 到着間隔
9 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 開始時刻 = max(1つ前の車の完了時刻, 到着時刻)
10 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 rexp(n, rate) 指数分布に従う乱数n個 平均 1/rate
11 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 完了時刻 = 開始時刻 + サービス時間
12 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 待ち時間 = 開始時刻 – 到着時刻
13 シミュレーション(最初の1台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 アイドル時間 = 開始時刻 – 1つ前の車の完了時刻
14 シミュレーション(2台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
15 シミュレーション(2台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
16 シミュレーション(2台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
17 シミュレーション(2台目) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着時刻 = 1つ前の車の到着時刻 + 到着間隔 開始時刻 = max(1つ前の車の完了時刻, 到着時刻) アイドル時間 = 開始時刻 – 1つ前の車の完了時刻
18 シミュレーション(append) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間 到着間隔
到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
19 シミュレーション(append99回) 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
20 待ち時間に興味がある 到着間隔 到着時刻 開始時刻 サービス時間 完了時刻 待ち時間 アイドル時間
21 100台それぞれの待ち時間 何番目の車か 待ち時間(分)
22 乱数なので実行する度に変化する
23 1000回やってみた ← 9分 何番目の車か 平均待ち時間(分) 考察 先頭集団は待ち時間が少ない。後になるほど解析解の 9分に近づいていく。
24 平均待ち時間の分布 車100台の平均待ち時間 車100台の平均待ち時間を求めるシミュレーションを1000回行ったヒストグラム ← 9分 考察 多くの場合、待ち時間は9分より短いが、20分を超え ることもあるようだ。50分待ちという極端な値もある。
25 平均アイドル率(解析解) 平均利用率 𝜌 = 𝜆 𝜇 = 0.75 平均アイドル率
= 1 − 𝜌 = 0.25
26 平均アイドル率の分布 車100台の平均アイドル率 車100台の平均アイドル率を求めるシミュレーションを1000回行ったヒストグラム 0.25→ 考察 解析解の0.25より大きい傾向だ。
27 まとめ • 解析解はシステムが長時間稼働した後の安定した状態。 • シミュレーションでは、待ち行列が発生するまでの 「ウォームアップ期間」を再現できる。 • シミュレーションでは分布も得られる。