混合整數線性規划——分支限界法


當上一節講到的線性規划問題中,要求某些變量是整數的時候,就變成了混合整數線性規划問題。

其實對於某些問題來說,線性規划問題的最優解剛好是整數,那么它對應的混合整數線性規划問題的解就剛好是這個最優解了。因此分支限界法的思路是,

1. 將原混合整數線性規划問題改進為行的松弛問題,不斷地用單純形法求解

2. 通過增加約束來進行分支求解

3. 直到整數最優解出現在新的改進后的松弛問題的一個頂點。

 

例如對於以下問題,

\[\begin{array}{*{20}{l}}
{\max 3x + y + 3z}\\
{2x + 2y + z \le 30}\\
{1.5x + 2y + 3z \le 25}\\
{2x + y + z \le 20}\\
{x \ge 0,y \ge 0,z \ge 0,}
\end{array}\]

最優解obj=36.6667,x=7.7778,y=0,z=4.4444,怎么求它的整數最優解呢?

針對該線性松弛問題得到的最優解,選取非整數解的整數變量x,將原線性松弛問題分成兩個子問題,其中一個子問題加上x≤7的約束,另一個子問題加上x≥8的約束。

針對x≤7的這個子問題,求得最優解為obj=35.5,x=7,y=0,z=4.8333。選取非整數解的整數變量z,將該問題拆成z≤4和z≥5的兩個子問題。

針對z≤4的這個子問題,求得最優解為obj=34.25,x=7,y=1.25,z=4。選取非整數解的整數變量y,將該問題拆成y≤1和z≥2的兩個子問題。

針對y≤1的這個子問題,求得最優解為obj=34,x=7,y=1,z=4。

按照上述步驟,求另外對應的子問題。

在分支過程中,當

1. 問題是不可滿足的

2. 最優解是整數值

3. 松弛問題的最優值比當前最優值更差

無需深入探索,可以剪枝。

 

另由於是離散優化,所以解只可能取值一些整數。所以可利用約束條件之間的互相影響,縮小解的范圍。從約束條件中得到盡可能多的信息。

 

 

參考:

https://www.coursera.org/lecture/lisan-youhua-suanfapian/3-3-2-hun-he-zheng-shu-xian-xing-gui-hua-PQhnK


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM