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
320
待ち行列のシミュレーション/queue_simulation
florets1
July 13, 2023
Tweet
Share
More Decks by florets1
See All by florets1
人工知能はクロスジョインでできている/AI_Is_Built_on_Cross_Joins
florets1
0
35
仮説の取扱説明書/User_Guide_to_a_Hypothesis
florets1
4
320
複式簿記から純資産を排除する/eliminate_net_assets_from_double-entry_bookkeeping
florets1
1
390
カイ二乗検定は何をやっているのか/What_Does_the_Chi-Square_Test_Do
florets1
7
2.3k
直積は便利/direct_product_is_useful
florets1
3
390
butterfly_effect/butterfly_effect_in-house
florets1
1
210
データハンドリング/data_handling
florets1
2
220
カイ二乗検定との遭遇/The_path_to_encountering_the_chi-square_test
florets1
1
280
率の平均を求めてはいけない/Do_Not_Average_Rates
florets1
11
15k
Other Decks in Programming
See All in Programming
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
300
What's new in AppKit on macOS 26
1024jp
0
150
ニーリーにおけるプロダクトエンジニア
nealle
0
950
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
150
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
7.3k
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
940
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
320
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
520
Claude Code派?Gemini CLI派? みんなで比較LT会!_20250716
junholee
1
590
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
290
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
170
効率的な開発手段として VRTを活用する
ishkawa
1
170
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
We Have a Design System, Now What?
morganepeng
53
7.7k
Adopting Sorbet at Scale
ufuk
77
9.5k
Docker and Python
trallard
45
3.5k
Speed Design
sergeychernyshev
32
1k
Automating Front-end Workflow
addyosmani
1370
200k
KATA
mclloyd
30
14k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Statistics for Hackers
jakevdp
799
220k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
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 まとめ • 解析解はシステムが長時間稼働した後の安定した状態。 • シミュレーションでは、待ち行列が発生するまでの 「ウォームアップ期間」を再現できる。 • シミュレーションでは分布も得られる。