組合優化可以用來從很多可能解中尋找到問題的最佳解。
比如下面這些例子:
一、車輛路線:爲在給定限制條件下提取和交付包裹的車隊找到最佳路線(例如,“此卡車不能承載超過20000磅”或“所有交付必須在兩小時內完成”)。
二、調度:爲一組複雜的任務找到最佳的調度,其中一些任務需要先於其他任務在一組固定的機器或其他資源上執行。
三、裝箱:儘可能多地將各種尺寸的物品裝入存放固定數量以及有最大承重的箱子中。
大多數情況下,這樣的問題有龐大數量的解——多到計算機算不出來。爲了解決這個問題,OR-Tools使用最新的算法來縮小搜尋範圍,這樣我們可以找到一個最優解(或接近於最優)。
OR-Tools可以解決下面幾種問題:
約束規則:
一種尋找有約束問題可行的解決方法的技術(例如一個房間不能同時有兩個社交事件,或者一次最多隻能錄製五個電視節目)
線性混合整數規劃:
Glop線性優化器在給定一組線性不等式作爲約束條件的情況下,找到線性目標函數的最佳值(例如將人員分配到工作崗位,或者最小化成本的同時找到一組資源的最佳分配)。Glop和混合整數編程軟件SCIP都可以通過Google Sheets和Google Apps Script獲得。
車輛路線:
一個用來解決給定約束條件下最佳行車路線的特定庫。
圖算法:
用於在圖、最小成本流程、最大流和線性和分配中查找最短路徑的代碼。