先講清楚邊界:這是工程模擬,不是真實產線資料。本篇的「AMR」是自己建的方塊,走的是預先算好的排程,沒有輪胎、沒有動力學、沒有通訊延遲,也沒有定位誤差——這一篇問的是排程規則,不是車。
十二格的環狀走道,一格站一台車,四到八台 AMR 各自有起點與終點。死結的直覺解釋是「車太多」,直覺的解法是「少放幾台」。
鎖定實驗前,用純離散模型跑了 5000 個拋棄式情境,比三個規則:
| 規則 | 死結率 |
|---|---|
| 貪婪(前面空著就走) | 0.8900 |
| 走道預約(進入前先預約整段) | 0.8840 |
| 單向(全部順時針) | 0.0000 |
走道預約是每個人聽了都會點頭的規則——它有方向獨佔、有循環等待的防護,看起來考慮得很周到。它把死結率從 0.8900 降到 0.8840。 車多的時候(七、八台車),這個規則甚至比不做還差一點點。
規則是這樣寫的:要進入一段走道,先預約整段;同一段同時只能有一個方向的車。聽起來對向相遇不可能了——但兩台車可以各自在自己的段裡前進,一直走到交界處。那一刻:A 在第 0 段最後一格想進第 1 段,B 在第 1 段第一格想進第 0 段,兩邊的規則都正確執行,兩台車都停在原地,而且永遠不會動。預約是在「進入」的那一刻檢查的,對已經走到門口的兩台車沒有任何作用。 真正的解法只有一個:讓對向相遇在構造上不可能發生,也就是把走道改成單向。
這是需要老實交代的地方:判定由離散配置決定,一步物理積分都不參與。那模擬器有什麼用?有一件關鍵的事——離散拍點上無衝突,不代表拍點之間無衝突。 排程只保證每一拍結束時每格最多一台車,兩台車在拍點之間交換位置或穿越彼此,在拍點上完全看不出來。先導就抓到「到達的車沒有離開走道」,導致排程展開成連續運動後,最小車距量到 0.0 mm——直到讓到達的車真的移出走道,離散與物理才對得起來。
| 指標 | 門檻 | 實測 |
|---|---|---|
| 死結率 | ≤0.10 | 0.0 |
| 最小車距 | ≥700 mm | 993.1 mm |
| 位置模型誤差 | ≤5.0 mm | 0.0 mm |
| 完成任務率 | ≥0.95 | 1.0 |
判定 PASS。最小車距 993.1096 mm,與鎖定前用純幾何算出的登記預測 993.1 mm 幾乎完全對上。貪婪與預約在正式 30 個情境上完全一樣:27 個死結,同樣的 27 個。單向規則死結率 0,代價是全部車合計多走 14.4 格、makespan 大約兩倍——用大約一倍的行程時間,換掉了 89% 的死結機率。
本篇的每一台車都準確知道彼此的位置。下一篇要處理的是有東西進到它不該進的地方,系統必須在多久之內停下來。