天天看點

線性規劃LP和混合整數規劃MIP基礎知識

如果你剛剛入門線性規劃,對于線性規劃的基本原理、概念、術語,以及 Gurobi 内部的核心算法不了解的話,請花費 10分鐘時間,閱讀以下二個科普文章。如果對于英文不熟練的話,可以采用谷歌浏覽器,然後選擇翻譯為中文。

LP 基礎:https://www.gurobi.com/resource/linear-programming-basics/

MIP 基礎: https://www.gurobi.com/resource/mip-basics/

(參考翻譯:cplex整數規劃_Branch-and-Cut 解混合整數規劃(MIP)_彷徨的牛的部落格-CSDN部落格)

一.優化基礎

優化中非常重要的3個要素,分别是:決策變量、限制條件、和目标函數。

根據3個要素的不同,可以将問題劃分為多種不同的類型。LP線性規劃和MIP混合整數規劃就是其中的兩類。

二.LP線性規劃

決策變量沒有要求;限制條件是線性的;目标函數是線性的。

線性規劃LP和混合整數規劃MIP基礎知識
線性規劃LP和混合整數規劃MIP基礎知識

在生活中非常的常見。整數規劃也在生活中非常常見,解決時與線性規劃有密切的關系,可以說線性規劃是基礎,也是求解發展最成熟的一類模型。

解決LP的第一算法是George Dantzig in 1947提出的單純形法。顯着的,這65歲的舊算法仍然是今天解決這些問題的最有效和最可靠的方法之一。 單純形方法的主要替代方法是内點法。 這種方法曆史悠久,但其近期受歡迎程度是由于Karmarkar’s 1984的1984年多項式複雜性證明。 内點法從計算機架構中的最近進步中顯着受益,包括引入多核處理器和SIMD指令集,并且通常被認為比Simplex從頭開始解決LP問題更快。 然而,不同LP模型以及使用LP的許多不同方式,意味着在實踐中兩種算法都沒有主導(并沒有明确的誰最快),是以兩者在計算線性規劃中都很重要。

根據對Bench mark資料集的測試,并沒有哪種求解器穩定占優。這主要有三個原因所影響(後兩點不是特别明白):

(1)稀疏矩陣ASparse Linear Algebra,限制矩陣A非常稀疏,即包含非常少的非0項。(例如運輸問題,單模矩陣)。

(2)數值處理誤差。

(3)開發出不同的啟發式政策(如單純形法,每次選擇一個進基變量,進基變量的不同會導緻最終處理效率的不同),這個有賴于經驗。

三.MIP混合整數規劃(可以和IP整數規劃互相轉換,本質是求解同一類問題)

一些或全部的決策變量必須為整數,或者0-1變量(integrality constraints)

線性規劃LP和混合整數規劃MIP基礎知識

Gurobi MIP求解器還可以解決具有二次目标和/或二次限制的模型:

線性規劃LP和混合整數規劃MIP基礎知識

 MIP模型具有二次目标但沒有二次限制稱為混合整數二次程式設計(MIQP)問題。具有二次限制的MIP模型稱為混合整數二次限制程式設計(MIQCP)問題。沒有任何二次特征的模型通常被稱為混合整數線性程式設計(MILP)問題。

以下介紹求解MILP的算法:

通常使用基于LP的分支定界算法 branch-and-bound來解決。

線性規劃LP和混合整數規劃MIP基礎知識

思路很簡單,可以看運籌學教材。就是不斷分支,不斷定界的過程。當松弛問題沒有可行解或整數解大于目前下界(預設是最小值問題),那麼就剪斷此支(incumbent需要分支的節點;fathomed不必再分支的節點。)

整數解為上界,不斷更換。同時有個有效下界,不斷縮小上下界Gap的過程,就是尋優的過程。當上下界相等,那麼就找到了最優解。

以下4種方法可以提高MIP的求解效率:

Presolve, Cutting Planes, Heuristics, Parallelism

(1)預處理Presolve

是指在分支定界之前進行的操作。可以減少問題的規模,或者可以收緊問題的formulation。簡而言之,就是預處理使得問題更易求解。

(2)割平面Cutting Planes

線性規劃LP和混合整數規劃MIP基礎知識

也是收緊限制的一種方法,是通過移除一些分數解的方式實作的(沒有任何副作用),比分支定界有效。

割平面非常有用。但是不把所有割平面都作為限制加在限制中主要有兩個原因:第一,找到全部的割平面太難了,或者代價非常昂貴;第二,有的割平面加進去,反而不利于求解。 我們想加入的是,利于我們求解的割平面。

(3)啟發式算法Heuristics

啟發式算法的優點是快,能夠快速地給出一個可行解。當求解MIP問題使用者對時間要求嚴格時,啟發式的意義就展現出來了。啟發式算法給的可行解作為上界,松弛的問題很容易超過它,那麼這一支就可以被砍掉了。

主要是提升求解效率,分得支更少。

(4)平行求解Parallelism

線性規劃LP和混合整數規劃MIP基礎知識

 除了以上4種技術外,solver還提供了其它的一系列求解技巧。這些技巧的最終目的都是為了減少分支樹的求解規模。

這些技巧通常可以通過gurobi的一些參數進行設定和調節。

繼續閱讀