AI漫談:電梯調(diào)度運(yùn)行邏輯
電梯到底是如何調(diào)度,來滿足不同樓層的請求?
早上被窩內(nèi)外的溫差導(dǎo)致你比平常晚起了20分鐘,你飛快洗臉?biāo)⒀?,穿鞋的同時叫了一輛網(wǎng)約車。
路上堵了半天,一下車你就飛奔進(jìn)入大樓,因為還有5分鐘就要遲到,遲到扣工資100元。
還好有2部電梯正在從-2層上升,你舒了口氣,心想3分鐘后就能到你的樓層打卡。
你看著電梯按鈕旁顯示的數(shù)字:-2,-1,2,3 ,4… …電梯在-1層已經(jīng)滿了…
旱的旱死,澇的澇死,哪個**設(shè)計的電梯……
這樣的場景不止一次出現(xiàn)過,也許電梯間有10個電梯在運(yùn)行,但你就是等了10分鐘也沒等到。電梯無數(shù)次從你在的那一層經(jīng)過,就是不停,仿佛加了黑名單。
你不禁陷入沉思,是人性的扭曲,還是電梯設(shè)計的sb。電梯到底是如何調(diào)度,來滿足不同樓層的請求?
同樣慘痛的經(jīng)歷和沉思,最終變成這篇文章:電梯是如何調(diào)度的?
電梯調(diào)度有4種最基本的邏輯,目前大多采用第四種。單電梯運(yùn)行想實現(xiàn)效率最優(yōu),還需考慮諸多因素;而多電梯運(yùn)行,則更會增加邏輯的豐富和復(fù)雜度。
下文將介紹:
- 電梯運(yùn)行的4種邏輯;
- 一部電梯如何運(yùn)行效率最高;
- 多部電梯如何運(yùn)行效率最高。
電梯運(yùn)行的4種邏輯
1. 先到先得
根據(jù)乘客請求的先后順序進(jìn)行調(diào)度,即,誰先按電梯先服務(wù)誰。
優(yōu)點:公平公正公開,且每個乘客的請求都能被依次處理,不會有某一乘客的請求長期得不到滿足。
缺點:效率極低,遇到高峰期,全部排隊,一起罵設(shè)計師。
是否可用:否。
2. 最短優(yōu)先
按照最短距離服務(wù),即,電梯離誰最近先服務(wù)誰。
優(yōu)點:離誰近給誰服務(wù),對比方案1減少了空跑。
缺點:樓層比較偏的同學(xué),比如頂樓的小伙伴下樓吃午飯,等電梯等了1個小時,也沒等到。
是否可用:否。
3. 頂層底層之間往返循環(huán)
在底層和頂層之間往返運(yùn)行,響應(yīng)方向相同的請求。即,上下循環(huán)往返,有順路的就帶上,走到頂層或底層再掉頭。就像一輛公交車。(1->20,20->1,如此循環(huán),順路的都帶上)
優(yōu)點:一個方向的,一趟帶走。
缺點:電梯必須到頭才折返,和公交一樣,空車也必須走到底站。
是否可用:是。
4. 頂層底層之間往返循環(huán)(按請求的頂層和底層)
是頂?shù)渍鄯档母倪M(jìn),在用戶請求的最高和最低樓層之間往返。即,上下循環(huán)往返,到了用戶請求的最高層,就可以掉頭。(跟3相似,只是如果沒有人去20層,比如這部電梯里去往樓層最高的人要到19層,沒人往更高走了,那到19層就可以掉頭往下了。)
優(yōu)點:在頂?shù)渍鄯档幕A(chǔ)上,考慮實際情況,不必須走到頂層/底層。
缺點:每次必須把一個順序的請求走完,還是有點死板。
是否可用:是,目前電梯大多是這種邏輯。
以上是最基礎(chǔ)的電梯運(yùn)行邏輯,其實講到這里大家已經(jīng)了解了目前電梯運(yùn)行的普遍邏輯,也就是上面的方案4。
但這里我們繼續(xù)探討優(yōu)化點,比如以下2個場景:
- 只有1部電梯,電梯上升至4層,乘客走出去,電梯變空,這時3層和20層用戶同時按“上”,電梯應(yīng)該返回帶上3層用戶,還是繼續(xù)向上走?
- 有兩臺電梯,一個從20層開始下降,一個從1層出發(fā)去2層。有用戶在2層按“下”,應(yīng)該把任務(wù)派給哪臺電梯?
一部電梯如何運(yùn)行效率最高
1. 什么方案效率最高?
首先定義“效率最高”:所有用戶總耗時時長最短?& 沒有人遇到極端惡劣體驗,而所有用戶總耗時時長=sum(每個用戶的等待時長+乘坐時長)。
即,效率最高的方案是讓算法選擇總耗時最短的方案:choose the plan with min(sum(等待時長+乘坐時長))。只需要給乘坐電梯的每個小步驟加上對應(yīng)時間,算法能夠快速預(yù)估有哪些方案、各方案耗時、最優(yōu)方案。
2. 目前普遍使用的方案4是效率最高嗎?
前文講到,目前電梯普遍應(yīng)用的運(yùn)行方案是方案4,電梯上下往返循環(huán),每次順路的都帶上。我們來檢測下方案4的效率并不是最高。
以前面說到的情況為例:
“只有1部電梯,電梯上升至4層,乘客走出去,電梯變空,這時3層和20層用戶同時按“上”,電梯應(yīng)該返回帶上3層用戶,還是繼續(xù)向上走?”
- 方案4優(yōu)先處理同方向請求,先處理上方20層用戶請求,那3層用戶的等待時長非常長。
- 但總耗時最短的方法,應(yīng)該是先回頭把3帶上,然后往上走。這樣20層用戶增加了一點點等待時間,3層用戶縮短了大量等待時間,總耗時大大縮短。
可見方案4并不是最高,最高的方案是總耗時最短的方案:choose the plan with min(sum(等待時長+乘坐時長))
3. 為什么沒有使用最高效率方案呢?
因為這個方案,電梯會經(jīng)?;仡^接人,而電梯回頭會導(dǎo)致乘坐人的體驗很怪異。比如我從1樓乘坐電梯去30樓,電梯到10樓時收到9樓有人請求上行,電梯回到9樓接了個人繼續(xù)上升。我的體驗是1->10->9->30,是不是很怪異?
而且電梯頻繁換方向,會使乘坐人難以預(yù)估電梯行為,對于電梯秩序和安全都有干擾。
因此目前電梯普遍應(yīng)用的并不是效率最優(yōu),而是效率和體驗整體最優(yōu)的方案:電梯每次運(yùn)行一個方向,順路的都帶上,到達(dá)用戶請求的最高層之后,才可以掉頭。
多部電梯如何運(yùn)行效率最高
首先,邏輯基礎(chǔ)相似,電梯每次運(yùn)行一個方向,順路的帶上,到達(dá)用戶請求的最高層之后,可以掉頭。不同的是,順路的不一定都要自己帶上,因為是多部電梯一起工作,有些事情不一定需要自己動手,可以交給兄弟們團(tuán)結(jié)合作。
多部電梯調(diào)控,業(yè)內(nèi)稱之為“群控電梯調(diào)度”。群控電梯調(diào)度,受更豐富的因素影響,因此也有更復(fù)雜的邏輯。
接下來的內(nèi)容,本文做更基礎(chǔ)的科普簡介,大家如有興趣可以自行深入查詢相關(guān)資料。
1. 群控電梯調(diào)度的主要目標(biāo)
減小乘客平均候梯時間、減少乘客平均乘梯時間、降低系統(tǒng)運(yùn)行能耗。
2. 常見人流量模式概念
- 上行高峰交通模式:主要人流方向是上行,比如早高峰的公司電梯。
- 下行高峰交通模式:主要人流方向是下行,比如晚高峰的公司電梯。
- 二路交通模式:主要人流方向是去某一層/從某一層離開,比如:全體大會會議室在4層,開會時人流涌入4層,散會時4層人流流向各層。
- 四路交通模式:主要人流方向是去某2層/從某2層離開,例如:午飯時,人流流向一層和二層的餐廳。
- 平衡的層間交通模式:上行和下行乘客數(shù)量相當(dāng),各層之間的交通相當(dāng)。
- 空閑交通模式:大量電梯處于空虛,比如節(jié)假日、深夜等。
3. 常見調(diào)度算法
(1)基于專家系統(tǒng)的電梯群控調(diào)度
用專家的經(jīng)驗知識建立規(guī)則,利用規(guī)則比較各種可能的調(diào)度途徑,從中選出最佳路線。即,聽專家的。
- 優(yōu)點:合理利用基于經(jīng)驗的、尚未形成科學(xué)體系的知識。
- 缺點:依賴專家。
(2)模糊邏輯電梯群控調(diào)度
把模糊不清的邊界對象和問題總結(jié)成一系列以“IF(條件)THEN(作用)”產(chǎn)生式形式表示的控制規(guī)則。即,聽專家的,但這個是專家也感覺模糊的規(guī)則。
- 優(yōu)點:幫助計算機(jī)模仿人腦的推理能力,簡化復(fù)雜問題。
- 缺點:不具有學(xué)習(xí)功能,依賴專家。
(3)基于神經(jīng)網(wǎng)絡(luò)的群控調(diào)度
引入人工神經(jīng)網(wǎng)絡(luò),使系統(tǒng)具有自學(xué)習(xí)能力。利用非線性和學(xué)習(xí)方法建立 適合的模型,進(jìn)行高速推理,對電梯交通可進(jìn)行短、長期預(yù)測。即,算法可以根據(jù)實際情況學(xué)習(xí)進(jìn)化。
優(yōu)點:學(xué)習(xí)能力,能更好適合實際情況。
缺點:有些邏輯模糊學(xué)不到。
(4)模糊神經(jīng)網(wǎng)絡(luò)的調(diào)度
模糊神經(jīng)網(wǎng)絡(luò)把神經(jīng)網(wǎng)絡(luò)與模糊邏輯相結(jié)合,克服了人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)難以確定,以及模糊邏輯無自學(xué)習(xí)功能的缺點。即,有些自動學(xué)習(xí)難以結(jié)構(gòu)化的,使用模糊邏輯規(guī)則學(xué)習(xí)。
優(yōu)點:學(xué)習(xí)模糊規(guī)則各規(guī)則的相對重要度,來實現(xiàn)規(guī)則的優(yōu)化。
本文介紹了單電梯調(diào)度的基本邏輯和多電梯調(diào)度的常見概念和算法,只講到了科普皮毛,感興趣的朋友可以繼續(xù)探索~
作者:圖靈的貓,公眾號:圖靈的貓
本文由 @圖靈的貓 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
老實說,你說的電梯運(yùn)行的4種邏輯,為什么我都沒有體驗過呢。。。
目前大多是4種邏輯哈,多電梯在用戶請求的最高和最低之間折返循環(huán)。請求同時存在時,電梯優(yōu)先處理同方向未到達(dá)樓層的請求。
第4種
nj
不要說什么效率最優(yōu)算法,這個還有個最低服務(wù)保障。假設(shè)一下,你在頂樓,只有一人在等電梯,而正是上下班高峰,每層都有N人在等。電梯有傳感器了解等待人數(shù)。你去算算,最優(yōu)算法肯定是不管你等高峰過了再來服務(wù)你,全體人員總等待時間最短。 ?
嗯嗯,必須有最低保障,否則會出現(xiàn)極端惡劣的case。 ??
閑著無聊,就針對問題【只有1部電梯,電梯上升至4層,乘客走出去,電梯變空,這時3層和20層用戶同時按“上”,電梯應(yīng)該返回帶上3層用戶,還是繼續(xù)向上走?】做一個回答
這個實際中,目前真正能實現(xiàn)的是,不管你在感覺上是否同時按下3和20,實際上系統(tǒng)總會先接收到一個請求,那么系統(tǒng)就會優(yōu)先處理完第一個請求。
退一步,真的有同時觸發(fā)的時機(jī):如果啟用所謂的就近原則,就會出現(xiàn)一個事情,比如電梯空置在9樓,3樓和20樓都按了上,根據(jù)作者的思想,先去3樓接用戶,然后到電梯到7樓,這時候10樓有人也按了向上,驚喜不,電梯要掉頭了,那么其余樓層再來截斷,就會出現(xiàn)無限循環(huán)了
頂你。。。如果是完全自動化的拉貨貨梯,按作者說的設(shè)計還可以。如果是人用的直升梯,必須要考慮到每個人使用時的公平原則。
是的,效率雖重要,體驗同樣重要。