PulP線性優化(二)優化概念

本文根據PuLP文檔翻譯而來,原文請參考
https://pythonhosted.org/PuLP/main/optimisation_concepts.html

線性編程

最簡單的數學程序類型是線性程序。要使您的數學程序成爲線性程序,您需要滿足以下條件:

  • 決策變量必須是實變量;
  • 目標必須是線性表達;
  • 約束必須是線性表達式。

線性表達式是以下形式的表達式

a1x1+a2x2+a3x3+...anxn{<=,=,>=}b

其中ai 和b是已知的常數xi 是變量。求解線性程序的過程稱爲線性編程。線性編程通過修訂的單純形法(也稱爲原始單純形法),雙單純形法或內點法進行。像cplex這樣的解算器允許您指定使用哪種方法,但我們在此不再詳述。

整數編程

整數程序幾乎與線性程序相同,但有一個非常重要的例外。整數程序中的某些決策變量可能只需要包含整數值。變量稱爲整數變量。由於大多數整數程序包含連續變量和整數變量的混合,因此它們通常稱爲混合整數程序。雖然線性編程的變化很小,但對解決方案過程的影響是巨大的。整數程序可能是非常難以解決的問題,並且目前有許多研究發現解決整數程序的“好”方法。可以使用分支綁定過程來解決整數程序。

注意對於任何合理大小的MIP,解決方案時間隨着整數變量數量的增加呈指數增長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章