電梯調度最佳化系統
以演算法提升運輸效率與使用者滿意度
The Coding Poop
廖衡、黃宇綸、林祺祐
大綱
研究動機
核心問題
專題目標
問題描述
實驗設計
實驗上我們可以操作的自變量包含:
實驗設計
我們列出了幾項指標來評估策略的好壞:
方法和工具
策略介紹
SCAN Algorithm
電梯會先選擇一個方向(向上或向下)移動
在移動過程中,會依序停靠該方向上的請求樓層
電梯會一直移動到建築的最頂樓或最底樓
到達邊界樓層後,電梯會反轉方向
然後再沿著另一個方向,繼續服務剩下的樓層請求
策略介紹
LOOK Algorithm
電梯會先選擇一個方向(向上或向下)移動。
在移動過程中,會依序停靠該方向上的請求樓層。
電梯會先「查看前方是否還有請求」。
如果已經到達該方向最後一個請求樓層,就會停止繼續前進。
然後立即反轉方向,開始服務另一方向的請求。
策略介紹
新策略:POOH
電梯優先載送乘客到達終點
電梯中沒有乘客時,會依照歷史人流數(動態調整)、目前等待人數、樓層與電梯距離、...等數據決定每層樓的權重,並依照權重隨機決定每個電梯的終點樓層,往終點樓層移動
實作流程圖
(流程圖)
數據(config.txt)->乘客生產器(PassengerGenerator.cpp)
->原始策略(CoreStrategy.cpp) -> 生成事件序列
->新策略(BetterStrategy.cpp) ->
->視覺化工具播放,計算數據
實作細節
實作細節
實作細節
讀取的事件內容按幀渲染
計算每位乘客平均等候、最大等候、滿意度指標
實驗結果
以20層樓、4台電梯、容量15人,每幀生成旅客數量期望值3人為例,人流刷出分布分成四種
1.平均分布
2.其中一層樓離開比例高
3.其中一層樓進入比例高
4.其中兩層樓進出比例高
每次實驗進行 30 輪,每輪 300 幀
實驗結果
情境一:平均分布
每層樓進出比重皆為1
策略 | 平均載客(人) | 平均等待(幀) | 等待標準差(幀) |
SCAN | 823.0 | 17.72 | 10.99 |
LOOK | 819.8 | 17.64 | 10.88 |
POOH | 859.4 | 7.07 | 6.00 |
實驗結果
情境二:上班時間
1樓的進入人流比重為100,其他樓層進出比重為1�
策略 | 平均載客 | 平均等待 | 等待標準差 |
SCAN | 559.5 | 57.21 | 35.54 |
LOOK | 570.9 | 52.69 | 33.73 |
POOH | 560.0 | 54.87 | 38.42 |
實驗結果
情境三:下班時間
1樓的離開人流比重為100,其他樓層進出比重為1�
策略 | 平均載客 | 平均等待 | 等待標準差 |
SCAN | 572.4 | 50.70 | 62.60 |
LOOK | 575.5 | 51.24 | 62.67 |
POOH | 785.0 | 18.79 | 20.63 |
實驗結果
情境四:10 樓有大型活動
1樓和10樓的進出人流比重為100,其他樓層進出比重為1
策略 | 平均載客 | 平均等待 | 等待標準差 |
SCAN | 793.2 | 18.36 | 11.10 |
LOOK | 845.0 | 11.27 | 7.89 |
POOH | 860.8 | 5.87 | 5.69 |
策略比較
| SCAN策略 | LOOK策略 | POOH策略 |
平均分佈 | 效率較差 較不公平 | 效率較差 較不公平 | 效率最高 最公平 |
上班時間 | 效率最差 較不公平 | 效率最高 最公平 | 效率較差 最不公平 |
下班時間 | 效率較差 較不公平 | 效率較差 較不公平 | 效率最高 最公平 |
10 樓有活動 | 效率最差 最不公平 | 效率較差 較不公平 | 效率最高 最公平 |
視覺化工具影片
分工與責任
專題總結
為了改善電梯的公平性與效率問題:
未來展望
參考資料
Thank You
github