學(xué)界丨XPROG:簡單實(shí)用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)
首發(fā)于微信公眾號(hào)『運(yùn)籌OR帷幄』
文章作者:湯勤深
責(zé)任編輯: 張帆
此文簡單介紹AROMA的1.0版本:XProg。希望可以幫做魯棒優(yōu)化相關(guān)的同行們省去手動(dòng)求對偶和Robust Counterpart,然后吭哧吭哧編程的麻煩。后臺(tái)回復(fù)關(guān)鍵詞”XProg“可以獲取XProg軟件下載鏈接,回復(fù)”XProg程序“即可獲取文中出現(xiàn)的全部代碼。
本文將簡單介紹XProg(內(nèi)容主要來自Xprog的用戶手冊)。Julia語言里有為魯棒優(yōu)化開發(fā)的JuMPeR。個(gè)人使用體驗(yàn)是XProg更簡潔,功能更齊全:可以直接編程最新的分布式魯棒優(yōu)化(DRO)的相關(guān)模型,而JuMPeR主要適用于傳統(tǒng)的魯棒優(yōu)化模型,而且似乎現(xiàn)在處于無人維護(hù)的狀態(tài)。
Julia入門科普請出門左轉(zhuǎn)到 @覃含章 的文章:Julia:簡單易用的數(shù)值計(jì)算/優(yōu)化編程語言
XProg由Dr. Peng Xiong開發(fā),旨在用最簡單直觀的語言進(jìn)行魯棒優(yōu)化模型的求解。最新版本的AROMA由Prof. Melvyn Sim, Dr. Peng Xiong 和Dr. Zhi Chen開發(fā)。XProg只有Matlab版;AROMA將會(huì)增加Python版本。兩者都可通過調(diào)用Gurobi,Cplex, MOSEK等求解器進(jìn)行求解。
XProg
先上一個(gè)多產(chǎn)品的分布式魯棒報(bào)童模型的求解,直觀感受一下。
其中,模糊集(ambiguity set)
為,
求解程序如下:
對于里面的extended模糊集和extended LDR的概念,請參考
Adaptive Distributionally Robust Optimization
pubsonline.informs.org
由上面的例子可以看出,XProg提供了一種照著原始模型編出來的簡潔高效編程方法。它已經(jīng)把求對偶求robust counterpart等步驟全部內(nèi)嵌到程序里去了。這大大地減少了之前做RO或者DRO的問題的時(shí)候,往往得先手動(dòng)求對偶,然后再用C, C , Java,Matlab等求解的那份酸爽!
以下直接舉例來闡明XProg的用法,具體語法請參閱XProg包里面的“用戶手冊”。以下所舉的例子大都在安裝包中的“examples”。
1、線性規(guī)劃 (Linear Programming)
對于任意的線性規(guī)劃:
實(shí)現(xiàn)起來特別方便:
比如下面這個(gè)線性規(guī)劃:
只需要在程序開始賦值:
解出來結(jié)果如下:
2、混合整數(shù)規(guī)劃(Mixed Integer Programming)
對于混合整數(shù)規(guī)劃,只需在定義變量時(shí)注明是二進(jìn)制變量(binary variable)還是整數(shù)變量就可:
3、隨機(jī)規(guī)劃
XProg 還可以對隨機(jī)規(guī)劃問題進(jìn)行求解。不同場景下的決策可以用cell array實(shí)現(xiàn),舉例如下(編者實(shí)在太懶。。。問題描述請參考用戶手冊第15頁):
求解程序如下:
求解結(jié)果如下:
4、經(jīng)典魯棒優(yōu)化模型求解
舉例多階段庫存優(yōu)化模型(問題描述請參考用戶手冊22頁):
實(shí)現(xiàn)程序如下:
5、分布式魯棒優(yōu)化模型求解
詳見文首的例子。
鑒于XProg很快就要被功能強(qiáng)大N多的AROMA取代,本文特別精簡地介紹了XProg這個(gè)簡單實(shí)用的魯棒優(yōu)化(RO, DRO)編程語言。AROMA進(jìn)一步對XProg進(jìn)行了精簡,但是功能卻更加強(qiáng)大了。等AROMA正式上線之后,再寫一篇詳細(xì)的入門介紹文章。
參考文獻(xiàn):
D. Bertsimas and M. Sim. 2004. Price of Robustness. Operations Research, 52(1), 35-53.
W. Wiesemann, D. Kuhn, M. Sim. 2014. Distributionally Robust Convex Optimization. Operations Research, 62(6), 1358-1376.
D. Bertsimas, M. Sim and M. Zhang 2017. A Practically Efficient Approach for Solving Adaptive Distributionally Robust Linear Optimization Problems. Forthcoming in Management Science.
在微信公眾號(hào)后臺(tái)回復(fù)“XProg” 可以獲得本文所有代碼和XProg軟件包的下載鏈接。
原文鏈接:https://mp.weixin.qq.com/s/q0x9pXz7p7OciWqBOIV5JQ
版權(quán)說明:本文由『運(yùn)籌OR帷幄』編譯整理,不作為商業(yè)用途,如有內(nèi)容侵權(quán),我們將隨時(shí)刪除。
歡迎查看原文,獲取更多訊息!
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。