「電梯怎麼還不來?」關於電梯派車演算法與控制系統的研究經驗與心得感想
「電梯怎麼還不來?」關於電梯派車演算法與控制系統的研究經驗與心得感想
孔令傑 教授
國立臺灣大學資訊管理學系副教授
國立臺灣大學進修推廣學院副院長
國立臺灣大學PMBA學程主任
國立臺灣大學教務處數位學習中心副主任
■ 「電梯怎麼還不來?」
電梯是個幾乎人人都搭過,也人人都抱怨過的生活中的重要設施。大家會抱怨的無非就是「等很久」、「這電梯真笨」,也因此有很多研究都希望能增進電梯的「派車」效率。
這五、六年來有三、四次機會,跟不同單位做過三、四次從不同角度切入的電梯問題,例如有一次是研究如何透過靜態設定(A 電梯停單不停雙、B 電梯停雙不停單之類的)提升效率,有一次則研究能否透過偵測電梯是否已滿(利用影像辨識),來決定是否過樓層不停。2024年06月起則和臺大資管系學弟張竣貿的智慧電梯公司「翱翔智慧」,一起研究一種有趣的新機制,Destination-based control(目的地導向控制)。
其實只有一點點研究成果,但日前也在臺大管院的教師分享會上做了分享(是十幾個分享的其中一個,沒有特別厲害)。感謝工工雜誌邀稿,剛好這個題目也跟大家的生活都習習相關,就野人獻曝跟大家分享。
■ 電梯派車與目的地導向控制
如大家所知,多電梯的電梯組,運作背後一直都存在一套調度演算法,簡稱「派車演算法」,精神很類似工工領域大家都熟知的 dispatching(派工)。每當有乘客在等電梯的空間按上「上」或「下」,演算法就決定派哪輛電梯過去載這位乘客。傳統系統根據「內部呼叫(inner call)」與「外部呼叫(outer call)」進行派車,最常見的策略是依序考慮「同站停靠(same stop)」、「順路搭載(free ride)」、「閒置等待(idle)」及「最近派遣(nearest away)」的規則式演算法(rule-based algorithm),翻成白話文就是「若這一層剛好有電梯停在那,就它;若沒有,看有沒有電梯正要順向路過這一層,有就它;若沒有,看有沒有停著的,有就它;都沒有,從所有電梯中挑一台過去最快的」。實務上有一些變形,但大多如此。
以上方法雖然簡單合理,但常常只能找到局部最佳解,在高需求時自然容易效率不彰。除了演算法本身的問題之外,傳統電梯系統難以被最佳化的主要原因,其實是資訊不足:調度系統只知道有乘客在某個樓層要往上或往下,但既不知道目的地是哪個樓層,也不知道有多少人,這都會造成調度上的困難。有鑑於此,近年來逐漸興起了目的地導向控制系統(Destination Control System, DCS),允許且要求乘客在外部面板或手機輸入目的樓層後,再根據目的地和人數資訊分配電梯,如世界第二大的電梯公司 KONE、前述提到的翱翔智慧公司等,均已推出相關解決方案並佈署到大樓。
直觀上來看,DCS 應該有顯而易見的好處,但撇開實務上的額外導入成本,在學理上也有一個缺點:DCS 必須告知乘客要等哪一部電梯,乘客進入電梯後通常也不被允許再選目的地(不然雖然有精巧的安排,但乘客不照著指示搭電梯的話,安排最終也是枉然),因此完成指派後就無法更改,缺乏「重新指派(re-assignment)」的彈性。相較之下,傳統控制系統中,乘客並不知道哪部電梯會來接自己,即使系統已經指派電梯 A 去接乘客 1,若下一秒忽然有乘客 2 在另一個樓層出現,系統其實可以立刻重新規劃,也不無可能馬上改派電梯 B 去接乘客 1。DCS 多獲得了目的地和人數資訊,但少了重新規劃和指派的彈性,「資訊」與「彈性」孰輕孰重、DCS 究竟是好是壞、何時 DCS 才會更有效率,就是個有趣的研究議題了。
事實上,在跟公司討論後,我們猜測也許傳統模式和 DCS 都不好,混合式派車架構(Hybrid System)最好。具體來說,我們可以在部份樓層採 DCS 模式,在其它樓層則採用傳統模式,例如從一樓出發的電梯採 DCS 模式,而由其它樓層出發的電梯則維持傳統派車邏輯。這麼做的理由蠻直觀的:要從一樓出發的乘客要去哪裡,通常不易猜測,此時資訊可能比彈性有價值,但從高樓層要往下的乘客則有很高機率要去一樓,此時彈性就可能比資訊重要了。
我們文獻回顧後發現,談論 DCS 的論文只有個位數篇,且目前幾乎沒有關於混合式控制系統的研究;既有的文獻在派車演算法上,則多以基因演算法(Genetic Algorithm, GA)為主要工具。延續著文獻的方向,我們將一個連續時間的動態派車(dynamic dispatching)問題建模為一系列的靜態派車(static dispatching)情境,每個靜態問題中既考慮新呼叫,也考慮既有呼叫的重新指派(如果來自傳統控制樓層),並設計編碼(encoding)機制,以使用基因演算法做派車。結合翱翔智慧提供的真實資料,我們可以模擬各種模式(全面傳統、全面 DCS、混合)的效率。由於近年來 ESG 重要性與日俱增,在乘客等待時間外,能源節省也是智慧建築的重要議題,因此我們也在實驗中關注能源消耗。
用來自真實場域(某飯店、16 層樓、4 部電梯;尖峰、平時、離峰分別平均每小時有 553、314、73 人搭乘)的資料建構的模型系統中,我們比較了「所有樓層都使用傳統模式」、「所有樓層都使用 DCS」以及「一樓使用 DCS、其它樓層使用傳統模式」的效果。和做為比較基準的「所有樓層都使用傳統模式」相比,全面 DCS 會讓乘客平均等待時間減少 15.2%,但能源消耗增加 8.1%;混合模式的這兩個數字則分別為減少 3.2% 和增加2.5%(當然,若是調整兩個目標的權重,也能調整增加和減少的程度)。這些結果展示了 DCS 的潛力,也讓我們看到混合模式調節「資訊」與「彈性」的效果。
我們目前可以做到讓等待時間的減幅高於能源消耗的增幅,雖然不錯,但目前還無法做到讓等待時間和能源消耗同時減少。這是我們能力不足,也是未來可以繼續努力的方向。
■ 研究心得與感想
我自己做了三、四次各種電梯派車研究後,再次體會到當年老師們常說的「簡單的方法常常是最好的方法」。電梯派車在絕大部分場域都是用最陽春的傳統貪婪演算法,這的確是有道理的,即使撇開導入成本、安全性等議題不談,簡單的演算法畢竟通常都比較 robust(穩健),在充滿不確定資訊的電梯世界中的確有其價值。雖然有人提出 DCS 這樣的方式,來幫助控制系統得到更多資訊,但電梯是服務一般民眾的,總有若干比例的民眾不會乖乖照著安排搭電梯,系統依然面對不確定性。實務上要提升電梯派車系統與演算法的效率,的確是一個非常有挑戰的問題。即使如此,研究者、工程師們依然持續努力推出新的演算法和控制系統,都令人敬佩。
本文有提到兩個可能的作法:用基因演算法取代貪婪演算法,用目的地導向控制(或混合)取代傳統控制。相比之下,個人覺得後者的意義還是稍微大一點,畢竟在充滿不確定性的世界裡,精巧的演算法難以發揮其效益。但若考慮所有我曾經做過的電梯研究,我自己覺得(或從實驗數據看到的)最能提升整體效率的,不是派車演算法,也不是收集目的地資訊,而是「讓滿載的電梯在通過有人等待的樓層時,不要停下來做無效開關門」,而且只要搭配重量偵測(每部電梯都有)和影像辨識(在某些場域有其必要,以醫院為例,因電梯常運送體積較大的病床,光以重量感測判斷是否滿載會失真),不需要修改既有的派車演算法和系統架構就能施行,可能真的是值得推廣的作法。有趣的是,如果真的要施行「電梯若滿載就不要停下來載人」,最好是不要在等電梯的地方顯示每部電梯現在在幾樓,不然乘客看到電梯跳過自己多半會生氣,即使整體效率提升了。
為了所有人好,到底要收集以及揭露多少資訊,也是個有趣的議題。真實世界的機制設計,總是得在效率與人性間尋求平衡呢!