運籌學——線性規划及單純形法求解


運籌學——線性規划及單純形法求解

 

1. 線性規划的概念

線性規划是研究在一組線性不等式或等式約束下使得某一線性目標函數取最大(或最小)的極值問題。

 

2. 線性規划的標准形

 

clip_image002

 

特點目標函數極大等式約束變量非負

clip_image004clip_image006

則線性規划標准形的矩陣表達式為:

 

clip_image008

約定:clip_image010

 

如何化標准形:

(I) 目標函數實現極大化,即clip_image012,令clip_image014,則clip_image016

(II)約束條件為不等式

約束條件為“clip_image018” 不等式,則在約束條件的左端加上一個非負的松弛變量;

約束條件為“clip_image020” 不等式,則在約束條件的左端減去一個非負的松弛變量。

(III)若存在無約束的變量clip_image022,可令clip_image024,其中clip_image026

 

3. 單純形法求解

(I) 化為標准形(要求clip_image028),確定初始基clip_image030,建立初始單純形表(假設A矩陣中存在單位矩陣);

 

clip_image032

(II)若clip_image034,則已得到最優解,停止。否則轉入下一步;

(III)若在clip_image036中,存在clip_image038,而clip_image040,則無最優解,停止。否則轉入下一步;

(IV)由clip_image042,確定clip_image022[1]為換入變量,按clip_image045規則

clip_image047

可確定clip_image049為換出變量;

(V)以clip_image051為主元進行迭代

即將clip_image053 迭代成clip_image055

並將單純形表clip_image057列中的clip_image049[1]換成clip_image022[2],得到新的單純形表;

重復(ⅱ)~(ⅴ)。

4. 單純形法求解例示

 
 
 
  clip_image002[1]

 

 

clip_image063

 

clip_image065

 

clip_image067

 

clip_image069

 

clip_image071

 

clip_image073

 

clip_image075

 

clip_image077

 

兩階段法

第一階段求初始基可行解:在原線性規划問題中加入人工變量,使約束矩陣出現單位子矩陣,然后以這些人工變量之和W求最小為目標函數,構造如下模型:

 
  clip_image079

 

對上述模型求解(單純形法),若W=0,說明問題存在基本可行解,可以進行第二個階段;否則,原問題無可行解,停止運算。

 

第二階段:在第一階段的最終表中,去掉人工變量,將目標函數的系數換成原問題的目標函數系數,作為第二階段計算的初始表(用單純形法計算)。

 

clip_image081

 

例:

第一階段

 

clip_image083

第二階段

 

clip_image085

∴最優解為(4 1 9 0 0),目標函數 Z = –2

 

退化: 即計算出的θ(用於確定換出變量)存在有兩個以上相同的最小比值,會造成下一次迭代中由一個或幾個基變量等於零,這就是退化(會產生退化解)。

雖任意換出變量,目標函數值不變,但此時不同的基卻表示為同一頂點,其特例是永遠達不到最優解。需作如下處理:

⑴. .當clip_image087中出現兩個以上最大值時,選下標最小非基變量換入變量;

⑵.當θ中出現兩個以上最小值時,選下標最小的基變量為換出變量。

參考文獻:

[1] 《運籌學》教材編寫組. 運籌學. 北京: 清華大學出版社.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM