整數規劃建模技巧有哪些?

時間 2021-05-05 16:56:25

1樓:覃含章

謝 @留德華叫獸 邀。看到這個問題,我就想到了某個人。

以前上過Juan Pablo Vielma的課,此君乃整數規劃界中生代中堅力量,各種什麼faculty early career獎拿到手軟(這個對標國內大概算是青千?),甚至還拿了Presidential Early Career Award for Scientists and Engineers (PECASE),歐巴馬親自給他頒獎。有次他就說起每次碰到乙個什麼人(公司的合作夥伴,同事,學生),知道他是整數規劃的大拿,經常上來就問:

」哎我這有個問題好像是個整數規劃,應該怎麼寫解起來比較快?「

」哎我有個整數規劃的式子,現在丟在Gurobi裡根本跑不出來,有啥辦法能優化一下formulation,好歹先給我個可行解?「

」哎你做整數規劃啊,我這有個問題,你看...「

總之他被問的不厭其煩,由於最多的人實際上就是在問」整數規劃怎麼建模最好「,於是他對這個問題寫了一篇SIAM review。從此,再有人問他上面的問題,他就直接讓他們去看那篇review。

文章在此(有鏈結):Vielma, Juan Pablo. "Mixed integer linear programming formulation techniques.

"Siam Review 57.1 (2015): 3-57.

他這個review當然不可能說直接解決了大家的問題,但是介紹了乙個很重要的觀點:同乙個優化問題,可能存在各種不同的整數規劃的建模方法,他們都有同樣的最優值,但其」強度「(strength)卻千差萬別。

這其實也很好理解。理論上,對乙個整數線性規劃(mixed-integer linear program)問題,我們希望relax了整數約束之後的連續優化問題最好跟原問題的解差不多。而能達到最好的LP relaxation的MILP reformulation我們就稱這個reformulation(」建模「)是sharp的。

那麼我們馬上就知道乙個sharp reformulation必定意味著relax之後可行域就是原來MILP可行域的convex hull(反之亦然)。

當然了,一般來說找乙個MILP可行域的convex hull本身複雜度也不比解乙個MILP的複雜度低,所以上面這個定義似乎沒啥意義。但在很多時候,我們需要求解的MILP具有特殊的形式,其LP relaxation之後存在對應原來整數變數仍然為整數的基可行解(basic feasible solution)(比如integer max flow problem),那麼這個時候我們叫這個性質為locally ideal,然後就可以說明其實這就是乙個sharp reformulation。

然後,Juan Pablo也在review裡寫了很多其它的日經問題,比如如何判斷乙個約束在這個reformulation裡是否是」緊「的,是否存在乙個valid cut,可以更好的逼近MILP的可行域,如何衡量乙個MILP的」真正的規模「,包括各種extended formulation的投影技巧等等,我這裡就不多班門弄斧了,請有興趣的同學參考。

Juan Pablo Vielma就是他!

2019的整數倍有哪些?

Lemon 昨天晚上失眠,就數了一下2019,4038,6057,8076,10095,12114,14133,16152,18171,20190,22209,24228,26247,28266,30285,32304,34323,36342,38361,40380,42399,44418,4643...

招聘技巧有哪些?

貓咪大亮亮 資料化可以幫助我們實現對招聘的精細化管理,在工作推進中及時發現問題,採取有效改善措施,專案覆盤中總結經驗,客觀的資料避免大家陷入經驗的窠臼。招聘資料由各個KPI組成,下圖是從網上擷取的圖表做示意 根據企業自身情況而定 這些資料完整的體現了整個招聘過程,直觀得反映出各個階段的變化。這些指標...

定向越野有哪些技巧

我要去玩了再見 作為某大學里定協副會,大大小小的比賽至少參加過。有乙個重點就是,方向一定要判斷好,當你到達乙個點的時候,下乙個點的方位確定好,比如你感覺是幾點鐘方向,然後就朝著那個方向,結合地圖去跑,去找點。雖然聽起來很隨意,但是實用性很強。 笑笑 寧慢少停 比賽時,除了向終點作必要的衝刺外,途中應...