運籌優化(九)--整數規劃模型
一類規劃問題中如果要求部分或全部決策變數是正整數,則稱之為整數規劃(Integer Programming,簡稱IP)。例如,所要求解的是機器裝置的臺數、完成工作的人數或裝貨的汽車數等。整數規劃中要求全部變數都限制為(非負)整數的,稱為純整數規劃(Pure Integer Programming)或全整數規劃(All Integer Programming);要求一部分變數限制為(非負)整數,則稱為混合整數規劃(Mixed Integer Programming);決策變數全部取0或1的規劃稱為0-1整數規劃(Binary Integer Programming);如果模型是線性的,稱為整數線性規劃(Integer Linear Programming,簡稱ILP)。
我們線上性規劃的基礎上增加非此即彼的邊際約束或者目標函式的問題,定義為塊狀/批量線性規劃。
為了侷限討論範圍,這裡只討論整數線性規劃。
整數線性規劃與一般線性規劃比較,具有下述特點:
1.可行解域為離散點集
整數規劃的可行解域僅是凸集中的整數點集,相鄰整數點之間的區域不是可行解域。
例1:有一整數規劃問題的數學模型為:
Max Z=x1+5x2
解:如果不考慮整數約束,得到一個線性規劃問題(稱為公式1的鬆弛問題),對於這個問題,用圖解法很容易得到最優解(見1中B點):x1=2, x2=9/5, 且有:Z=11。
再考慮整數條件。如將x2 湊成整數x2=2 ,則點(2,2)落在可行域外,不是可行解;若將x2湊成整數1,但點(2,1)不是最優解。因為當x1=2,x2=1,得到Z=7,而當x1=0,x2=2得到Z=10,顯然點(0,2)比點(2,1)更好。因此不能企圖簡單的將鬆弛問題的最優解取整(例如四捨五入)就能得到整數規劃的最優解。
從圖1可知,整數規劃問題的可行解集是相應的線性規劃問題的可行域內的整數格子點,它是一個有限集。
2.不能用舍入取整法
用圖解法或單純形法求解的線性規劃問題中,有些最優解可能是分數或小數,為了滿足整數解的要求,初看起來,似乎只要把已得到的帶有分數或小數的最優解“舍入化整”就可以了,但這樣通常是不行的。因為化整後的解很可能不是可行解;或雖是可行解,但也不一定是最優解。
3.目標函式值的優劣
整數最優解目標函式值劣於同問題(即捨去決策變數取整數這一約束後的鬆弛問題)非整數最優解目標函式值,即當目標要求為極大時,整數解目標函式值下降;當目標要求為極小時,目標函式值增大。
設整數規劃的可行解域為D1,同問題非整數規劃的可行解域為D2,雖然有D1∈D2,可以很容易證明:對於建立在可行解域D1,D2上的同一目標函式的規劃問題,若D1∈D2,則建立在D2上的目標值優於建立在D1上的目標值。
這個特點從圖1中也不難看出,在用圖解法求解整數最優解時,等值線應從非整數最優解切點向可行域內移動,因此Z值改變,劣化。移動等值線後最先碰到的整數解為最優解,這個最優整數解可能是線性規劃問題的極點(圖1),更多情況下它既不是極點,甚至也不在凸集的邊緣上。因此,不能簡單地用單純形法求極點的基變換來找到它。
具體的整數規劃應用模型有:
揹包模型:只有一個主約束的純整數線性規劃問題
資產預算模型:將揹包模型的主約束定義為預算約束,並且不同時間段都有這個預算約束,也叫多維揹包模型
分配模型:兩類不同事物之間的最優配對。
二次分配:指在知道其他決策之後,一個決策的影響才被確定,導致模型變為二次分配問題
廣義分配模型:多對多,每一個事物i必須分給一些事物j,每個事物j可以與多個事物i配對。
匹配模型:同類事物,最佳配對。
路徑模型:旅行商問題,將所有點組成單個序列,或者組成幾條線路。
設施選址和網路設計模型:從一個計劃好的位置列表中選擇某些作為建設設施的地點,使得滿足特定客戶的總成本最小。
排程及排序模型:給定一組處理裝置時對作業集在這些處理裝置上的處理進行排序。
相關文章
- 運籌優化(十)--整數規劃求解優化
- 運籌優化(二)--線性規劃概念及應用模型優化模型
- 運籌學-整數規劃IP演算法演算法
- 運籌優化(七)--動態規劃解析優化動態規劃
- 運籌學練習Python精解——整數規劃Python
- 運籌優化(五)--線性規劃之內點法優化
- 運籌優化(六)--目標規劃定義及解法優化
- 運籌優化(十一)--無約束非線性規劃優化
- 運籌優化(十二)--帶約束非線性規劃(NLP)優化
- 運籌優化(十三)--大規模優化方法優化
- 運籌優化(一)--運籌學概述優化
- 運籌優化(十五)--應用模型之分配問題優化模型
- 運籌優化(四)--線性規劃之對偶問題和靈敏度分析優化
- 物業行業數字化整體規劃行業
- 運籌優化(八)--圖與網路優化優化
- 基於數值優化的自動駕駛實時運動規劃優化自動駕駛
- Cplex混合整數規劃求解(Python API)PythonAPI
- app開發的規劃與籌劃APP
- 運籌優化(十七)--儲存論基礎及其最優化求解優化
- 運籌優化(十八)--對策論基礎及其最優化求解優化
- 運籌優化(十九)--決策論基礎及其最優化求解優化
- 運籌優化(十六)--排隊論基礎及其最優化求解優化
- 斜率優化動態規劃優化動態規劃
- LeetCode 343. 整數拆分--動態規劃LeetCode動態規劃
- 運籌優化(十四)--離散優化的啟發式演算法優化演算法
- Python小白的數學建模課-04.整數規劃Python
- 關於 線性規劃 非線性規劃 與 凸優化優化
- swoole優化核心引數調整優化
- 【Fuzzy】不確定規劃:模糊規劃模型模型
- 網站內部seo優化規劃決定網站後期運營效果網站優化
- 運籌學之“折衷係數”
- 虛擬化運維:規劃和發展戰略性 IT 計劃運維
- 01揹包動態規劃空間優化動態規劃優化
- 整數劃分為多數之和
- 基於數值最佳化的自動駕駛實時運動規劃自動駕駛
- 全渠道定價、庫存決策,混合整數規劃建模求解,MNL選擇模型,內附程式碼!模型
- TiDB 查詢優化及調優系列(四)查詢執行計劃的調整及優化原理TiDB優化
- 多重揹包動態規劃及空間優化動態規劃優化