亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

首發(fā)于微信公眾號『運籌OR帷幄』

文章作者:湯勤深

責任編輯: 張帆

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

此文簡單介紹AROMA的1.0版本:XProg。希望可以幫做魯棒優(yōu)化相關的同行們省去手動求對偶和Robust Counterpart,然后吭哧吭哧編程的麻煩。后臺回復關鍵詞”XProg“可以獲取XProg軟件下載鏈接,回復”XProg程序“即可獲取文中出現的全部代碼。

本文將簡單介紹XProg(內容主要來自Xprog的用戶手冊)。Julia語言里有為魯棒優(yōu)化開發(fā)的JuMPeR。個人使用體驗是XProg更簡潔,功能更齊全:可以直接編程最新的分布式魯棒優(yōu)化(DRO)的相關模型,而JuMPeR主要適用于傳統(tǒng)的魯棒優(yōu)化模型,而且似乎現在處于無人維護的狀態(tài)。

Julia入門科普請出門左轉到 @覃含章 的文章:Julia:簡單易用的數值計算/優(yōu)化編程語言

XProg由Dr. Peng Xiong開發(fā),旨在用最簡單直觀的語言進行魯棒優(yōu)化模型的求解。最新版本的AROMA由Prof. Melvyn Sim, Dr. Peng Xiong 和Dr. Zhi Chen開發(fā)。XProg只有Matlab版;AROMA將會增加Python版本。兩者都可通過調用Gurobi,Cplex, MOSEK等求解器進行求解。

XProg

先上一個多產品的分布式魯棒報童模型的求解,直觀感受一下。

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

其中,模糊集(ambiguity set)

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

為,

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

求解程序如下:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

對于里面的extended模糊集和extended LDR的概念,請參考

Adaptive Distributionally Robust Optimization

pubsonline.informs.org

由上面的例子可以看出,XProg提供了一種照著原始模型編出來的簡潔高效編程方法。它已經把求對偶求robust counterpart等步驟全部內嵌到程序里去了。這大大地減少了之前做RO或者DRO的問題的時候,往往得先手動求對偶,然后再用C, C , Java,Matlab等求解的那份酸爽!

以下直接舉例來闡明XProg的用法,具體語法請參閱XProg包里面的“用戶手冊”。以下所舉的例子大都在安裝包中的“examples”。

1、線性規(guī)劃 (Linear Programming)

對于任意的線性規(guī)劃:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

實現起來特別方便:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

比如下面這個線性規(guī)劃:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

只需要在程序開始賦值:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

解出來結果如下:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

2、混合整數規(guī)劃(Mixed Integer Programming)

對于混合整數規(guī)劃,只需在定義變量時注明是二進制變量(binary variable)還是整數變量就可:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

3、隨機規(guī)劃

XProg 還可以對隨機規(guī)劃問題進行求解。不同場景下的決策可以用cell array實現,舉例如下(編者實在太懶。。。問題描述請參考用戶手冊第15頁):

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

求解程序如下:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

求解結果如下:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

4、經典魯棒優(yōu)化模型求解

舉例多階段庫存優(yōu)化模型(問題描述請參考用戶手冊22頁):

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

實現程序如下:

學界丨XPROG:簡單實用的魯棒優(yōu)化RO, DRO編程語言(魯棒優(yōu)化方法)

5、分布式魯棒優(yōu)化模型求解

詳見文首的例子。

鑒于XProg很快就要被功能強大N多的AROMA取代,本文特別精簡地介紹了XProg這個簡單實用的魯棒優(yōu)化(RO, DRO)編程語言。AROMA進一步對XProg進行了精簡,但是功能卻更加強大了。等AROMA正式上線之后,再寫一篇詳細的入門介紹文章。

參考文獻:

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.

在微信公眾號后臺回復“XProg” 可以獲得本文所有代碼和XProg軟件包的下載鏈接。


原文鏈接:https://mp.weixin.qq.com/s/q0x9pXz7p7OciWqBOIV5JQ

版權說明:本文由『運籌OR帷幄』編譯整理,不作為商業(yè)用途,如有內容侵權,我們將隨時刪除。

歡迎查看原文,獲取更多訊息!

版權聲明:本文內容由互聯網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。