~projectsrsoAlgorithms開源專案
AlgorithmsOpen source

RSO 排程引擎

結合圖論節點搜尋與自定義排程演算法,處理 27 桌真實餐廳拓撲的座位安排與等候時間。

問題

餐廳帶位看起來只是「找一張空桌」,但實際上同時牽涉桌型、人數、用餐時間、等候順序與翻桌率。用直覺安排,很容易出現大桌坐兩人、小桌排長隊的情況。

RSO 把座位安排當成一個最佳化問題:在給定的餐廳拓撲與用餐狀態下,找出讓等候時間與座位浪費都更小的安排。

方法

  • 以圖論建立餐廳的節點搜尋網絡,描述桌位、區域與動線關係。
  • 使用 ILP / CSP 建模座位容量、用餐時間與等候成本等限制條件。
  • 以 27 桌的真實餐廳拓撲(原燒)作為案例,驗證排程結果。
  • 規劃從 ADP 走向 MARL 的研究路線,處理更動態、更即時的多人決策情境。

案例規模

27

real tables

真實餐廳拓撲

3

主要限制

容量 / 時間 / 等候

2

求解方法

ILP / CSP

1

研究路線

ADP → MARL

互動:座位拓撲

選擇人數,看看哪些空桌符合條件;點選桌子可以查看安排。按「重新排程」會模擬一次重新計算。這些是展示資料,不是正式營運數據。

rso-solver
已入座空桌符合人數
點選桌子查看安排。
27

桌數

12min

平均等候(示意)

以 ILP / CSP 處理座位容量、用餐時間與等候成本;右側數字為互動示意,不是正式營運數據。

互動示意:27 桌拓撲取自專案案例,入座狀態與等候時間為展示資料;實際排程需接入餐廳即時資料。

技術筆記

  • 為什麼不是貪婪法:每次都選「當下看起來最合適」的桌子,會在後續產生更大的等待成本;需要把時間與容量一起看。
  • 限制條件:桌型、人數、用餐時間、動線與保留桌都會影響可行解,不是單純的二分圖匹配。
  • 研究延伸:ADP 處理不確定性下的決策,MARL 則對應多個帶位者或動態環境的協作。

下一步

除了持續優化求解速度,也把即時用餐狀態與候位資料接進模型,讓排程從「離線最佳化」走向「線上決策」。

ycair@space:~$ help