轉送選項

本節說明轉送解析器的一些選項。

搜尋限制

搜尋限制會在解題達到指定上限後終止,例如: 時間長度上限或找到的解決方案數量你可以設定搜尋 通過解題工具的搜尋參數限制。詳情請見 時間限制:範例。

下表說明最常見的搜尋限制。

名稱 類型 預設 說明
solution_limit int64 kint64max 僅限解決方案數量 產生的結果。
time_limit.seconds int64 kint64max 限制花費的時間 (以秒為單位): 相關資訊
lns_time_limit.seconds int64 100 將時間限制(秒): 每個本地搜尋鄰點的完成搜尋。

第一項解決方案策略

第一種解決方案是解題工具用來找出 解決方案下表列出 first_solution_strategy 的選項。

選項 說明
AUTOMATIC 讓解析器根據 找出解決之道
PATH_CHEAPEST_ARC 從路徑「start」開始並連線至 產生最便宜路線路段的節點,然後將路線延伸 疊代的最後一個節點上新增至路徑。
PATH_MOST_CONSTRAINED_ARC PATH_CHEAPEST_ARC類似,但弧形 評估時,我們會使用較喜歡的選取器 先限制弧形如要將選取器指派給轉送模型,請使用 ArcIsMoreConstrainedThanArc() 方法。
EVALUATOR_STRATEGY PATH_CHEAPEST_ARC 類似,不過弧形成本 評估時,系統會使用傳入 SetFirstSolutionEvaluator()
SAVINGS 節能演算法 (Clarke 和 Wright)。 參考 Clarke,G.&Wright、J.W。 「將車輛從中央車站安排為指定數量的車輛」 營運研究部門,Vol.12, 1964,第 568-581。
SWEEP 清除演算法 (Wren &Holliday)。 參考 Anthony Wren 和Alan Holliday 電腦排程的車輛排程 從一或多處營運據點到供應點的營運數量 Research Quarterly (1970-1977),Vol.23,第 3 號 (9 月、1972),第 333-344 頁。
CHRISTOFIDES Christofides 演算法 (實際上是 基數演算法使用盡量提高比對 (而非最大值) 這不代表估算大約 3/2 的機率 或銷售專員的指標)。適用於 擴充路徑,直到無法插入節點為止。 參考 Nicos Christofides,以及新的經驗法則分析: 旅人業經歷問題,美國工業大學研究所報告 388 管理,CMU,1976 年。
ALL_UNPERFORMED 將所有節點設為停用狀態。只在節點時尋找解決方案 為選用項目 (屬於接種限制的一環,但會有一定的罰金)。
BEST_INSERTION 將成本最低的 擁有最低位置的節點插入費用的依據是 轉送模型的成本函數截至 2012 年 2 月,這項功能僅適用於含有 選用的節點 (有一定的罰金)
PARALLEL_CHEAPEST_INSERTION 將 價格最低的節點插入費用是根據 弧形成本函數速度比 BEST_INSERTION 快。
LOCAL_CHEAPEST_INSERTION 將每項解決方案 擁有最低位置的節點插入費用是根據弧形計算 成本函數各節點的 PARALLEL_CHEAPEST_INSERTION 差異 獲選進行插入這裡的節點會按照 建立。速度比 PARALLEL_CHEAPEST_INSERTION 快。
GLOBAL_CHEAPEST_ARC 疊代連結兩個節點 最便宜的路線路段。
LOCAL_CHEAPEST_ARC 選取含有未繫結繼子的第一個節點,並 並連結到產生最便宜路線區段的節點。
FIRST_UNBOUND_MIN_VALUE 選取含有未繫結繼子的第一個節點 並連線至第一個可用的節點這相當於 CHOOSE_FIRST_UNBOUND策略結合 ASSIGN_MIN_VALUE (請參閱 constraint_solver.h)。

搜尋狀態

您可以使用轉送模型的 status 方法傳回搜尋的狀態。 以下是列印搜尋狀態的 Python 程式碼:

print("Solver status: ", solver.status())

這會列印具有下列含義的整數:

說明
0 ROUTING_NOT_SOLVED:問題尚未解決。
1 ROUTING_SUCCESS:已成功解決問題。
2 ROUTING_PARTIAL_SUCCESS_LOCAL_OPTIMUM_NOT_REACHED:已解決問題 成功呼叫 RoutingModel.Solve() 但本機 則尚未達到最佳化要求。讓您有更多時間可以改善 解決方案
3 ROUTING_FAIL:找不到問題的解決方案。
4 ROUTING_FAIL_TIMEOUT:已達尋找解決方案的時間上限。
5 ROUTING_INVALID:模型、模型參數或旗標無效。
6 ROUTING_INFEASIBLE:經證實不可行。

區域搜尋選項

下表列出本地搜尋策略 (又稱為 後製)。 請參閱變更搜尋策略一文。 ,瞭解設定這些選項的範例。

選項 說明
AUTOMATIC 讓解題工具選取代謝式。
GREEDY_DESCENT 當地人開始採用改良 (成本降低) 區域搜尋鄰點 已達下限。
GUIDED_LOCAL_SEARCH 使用引導式區域搜尋功能逃離當地 Minima。(請參閱 引導式區域搜尋) 這通常為車輛路線規劃最有效率的統合式。
SIMULATED_ANNEALING 運用模擬陰道來逃離局部 minima (參閱 Simulated Annealing)。
TABU_SEARCH 使用 Tabu 搜尋來逃離局部 minima (參閱 Tabu 搜尋)。
GENERIC_TABU_SEARCH 使用 Tabu 搜尋來找解解決方案的目標價值,藉此逃離當地 。

傳播控制項

名稱 類型 預設 說明
use_full_propagation 布林值 正確 使用具有完整傳播功能的限制條件 採用轉送模型,而非只有「輕度」傳播。100% 只有在使用深度優先搜尋或模型時,才需要套用傳播 但需要強烈傳播才能確定 變數。將這項設定變更為 true 會降低 而且在所有情況下都會增加記憶體消耗量。