1. 程式人生 > >清華大學肖勇波樑湧老師的巨集篇譯著中的問題實踐之001-雙原油問題

清華大學肖勇波樑湧老師的巨集篇譯著中的問題實踐之001-雙原油問題

清華大學肖勇波樑湧老師的巨集篇譯著中的問題實踐之001-雙原油問題

清華大學肖秀波樑湧老師翻譯的Rardin教授的《運籌學》[1]已於今年年中出版,感謝機械工業出版社張有利老師的推薦和贈書,讓我能看到如此完美的千頁級巨集篇譯著。該書的翻譯質量非常高,書中內容深入淺出,附有大量的應用案例(Application)和練習題庫。尤其讓人欣喜的是該著作能與計算實踐密切結合,凡有計算機圖案標記的練習都是與計算和軟體應用相關的,彰顯了運籌學的應用數學本質。有鑑於此,筆者計劃對該書中的問題進行大量實踐,爭取達到雙位數的規模,編號先從001開始。

雙原油問題

雙原油問題是該書中的一個案例(Application),見原書第二章,案例2-1(Page 19, Page 22)。我們對此模型進行了+Leapms建模和求解。

+Leapms生成的模型摘錄

對任何問題,+Leapms都建議直接用+Leapms建模語言直接寫出模型,並進行模型除錯。

我們的經驗是,模型除錯能夠發現模型的不足、促進建模的完美性,甚至可以促進對問題的更加深入的瞭解。

當模型除錯完畢,對模型的正確性有充分的信心後,+Leapms系統可生成模型摘錄,包括數學概念模型(即使用標引符號表示的數學模型)和+Leapms原始碼供思路交流使用。

以下是雙原油問題的+Leapms模型摘錄(pdf螢幕截圖):

+Leapms模型求解結果

change home path done.
+Leapms>load
 Current directory 
is "ROOT". ......... RLX2-1.leap ......... please input the filename:RLX2-1 ================================================================ 1: //Rardin R. L 著,肖勇波、樑湧譯. 運籌學. 北京:機械工業出版社,2018 2: //Rardin-Liang&Xiao:案例2-1(Page 19, Page 22) 3: 4: min 100x1 +75 x2 5: s.t. 6: 0.3 x1+0.4x2>=2.0
//汽油需求 7: 0.4x1+0.2x2>=1.5//氣體燃料需求 8: 0.2x1+0.3x2>=0.5//潤滑油需求 9: x1<=ub[1] //沙特原油供應量 10: x2<=ub[2] //委內瑞拉原油供應量 11: where 12: ub is a set of numbers 13: x1,x2 are variables of nonnegative numbers 14: data 15: ub={9 6} 16: ================================================================ >>end of the file. Parsing model: 1D 2R 3V 4O 5C 6S 7End. .................................. number of variables=2 number of constraints=5 .................................. +Leapms>solve The LP is solved to optimal. 找到線性規劃最優解.非零變數值和最優目標值如下: ......... x1*=2 x2*=3.5 ......... Objective*=462.5 ......... +Leapms>

討論

在原書中,雙原油問題並未被當成標引模型(即對大規模模型中的變數和常量符號等實用腳標標引形式給出)舉例,但因為+Leapms是一種以標引模型為主要表達方式的語言,因此此處的+Leapms還是採用的標引模型的形式。當然,+Leapms也支援非標引形式模型。

參考文獻

[1] Rardin R. L 著,肖勇波、樑湧譯. 運籌學. 北京:機械工業出版社,2018