Wolsey“強整數規划模型”經典案例之一單源固定費用網絡流問題
閱讀本文可以理解什么是“強”整數規划模型。
單源固定費用網絡流問題見文獻[1]第13.4.1節(p229-231),是"強整數規划建模“的極好案例。
本文是本博客原創,本博客不轉貼他人作品。
單源固定費用網絡流問題(The Signle Source Fixed Charge Network Flow Problem)
單源固定費用網絡流問題:給定一個有向網絡 (邊數為m,節點數n),網絡上只有一個流量流入節點(標記為1),但有若干個流量流出節點, 節點 i 的流出流量標記為 B[i], 每個邊 e (e =1,...,m) 有流量限制(此例中不考慮流量限制,因此流量限制取為-B[1]) 。網絡情況如下圖:
網絡的節點數n=4, 邊數m=8。
對應節點1,2,3,4, 流(出)量B={ -6 2 3 4}。
對應邊e=1,2,3,4,5,6,7,8, 邊由節點對定義,數據是 E={(1 4) (1 2) (4 2) (1 3) (2 3) (3 2) (4 3) (3 4)}.
對應邊e=1,2,3,4,5,6,7,8, 邊上的一次性費用是C={5 2 7 3 2 4 9 12}.
非“強”整數規划模型
設非負變量 x[e] 是邊e (e =1,...,8) 上的流量, 又設0-1變量 y[e] 表示邊e上是否有流量。於是模型的目標是極小化一次性費用和,約束無外乎節點上的流量平衡約束和x[e]-y[e]之間的關聯約束。
用+Leapms寫出模型,其PDF摘錄如下:
上述模型用+Leapms中的solve命令求松弛解,可以看到y變量非0-1:
+Leapms>solve The LP is solved to optimal. 找到線性規划最優解.非零變量值和最優目標值如下: ......... x1*=1 x2*=2 x4*=3 y1*=0.166667 y2*=0.333333 y4*=0.5 ......... Objective*=3 ......... +Leapms>
若要獲得整解則必須使用mip命令對問題進行分支定界/割平面求解:
+Leapms>mip relexed_solution=3; number_of_nodes_branched=0; memindex=(1,1) The Problem is solved to optimal as an MIP. 找到整數規划的最優解.非零變量值和最優目標值如下: ......... x1* =1 x2* =5 x5* =3 y1* =1 y2* =1 y5* =1 ......... Objective*=9 ......... +Leapms>
結果在網絡上表現:
“強”整數規划模型(Strong Integer Formulation)
“強”整數規划模型對上述模型采用了Multicommodity改寫。方法是引入一個新非負變量 z[e][k], 其含義是流過e邊最終貢獻給k節點流出的流量(顯然此處k=2,...,n, k$\neq 1$)。
新模型的目標不會改變,約束中的節點平衡條件邏輯上也不改變,即對任何節點 i , 流出和流入之差應該為0 或者 當i==k時等於k的流出量。
用+Leapms寫出模型,其PDF摘錄如下:
上述所謂“強”模型比之前的模型的好處在於在+Leapms中直接使用solve命令就可以求出整數解,即不需要分支定界/割平面過程!
不十分嚴格地:此即是“強”整數規划模型和含義,強模型更容易求解,或者說對求解器更友好。
+Leapms的求解過程:
+Leapms>solve The LP is solved to optimal. 找到線性規划最優解.非零變量值和最優目標值如下: ......... x1*=1 x2*=5 x5*=3 y1*=1 y2*=1 y5*=1 z1_4*=1 z2_2*=2 z2_3*=3 z5_3*=3 ......... Objective*=9 ......... +Leapms>
結果在網絡上表現:
強整數規划模型的詳細解釋 及 “強”建模原理
本案例的“強”建模原理來源於文[1]中的三個觀察(Oberservation 13.2-13.4, page 230) 。
關於“強”模型的詳細解釋,見文[2]。
其他
文[1]並未在13.4.1中給出此案例的所有數據,其余數據(主要是邊上費用數據C是從13.1, page 222)的XPRESS MP模型中讀出的。貼在這里,供看官與+Leapms建模語言作對比:
結論
“強”整數規划建模概念是經典建模方法中的重要內容,如果說在本科《運籌學》教學中只要講述0-1變量的應用即可,那么在研究生層次的《高級運籌學》教學中最好增加“強”整數規划建模內容。
使用本土完全自主知識產權的+Leapms建模語言和+Leapms求解器,可以有效輔助教學,比之傳統的舶來建模語言和求解器有優勢。
參考文獻
[1] Wolsey L A. Integer Programming. New York: Jonh Wiley & Sons, 1998 / ISBN 978-0-471-28366-9
[2] Wolsey L . Strong formulations for mixed integer programming: A survey[J]. Mathematical Programming, 1989, 45(1-3):173-191.