线性规划单形法.docx
《线性规划单形法.docx》由会员分享,可在线阅读,更多相关《线性规划单形法.docx(29页珍藏版)》请在冰豆网上搜索。
![线性规划单形法.docx](https://file1.bdocx.com/fileroot1/2023-2/5/fbdcecbd-7902-4a3c-9169-4574ee6bef55/fbdcecbd-7902-4a3c-9169-4574ee6bef551.gif)
线性规划单形法
第五章線性規劃:
單形法
本章內容:
5.1單形法之代數原理
5.2表格型
5.3建立初始單形表
5.4解的改進
5.5計算下一個表
5.6表格型:
一般情形
5.7解極小化問題
5.8特殊情形
⏹5.1單形法之代數原理
例:
海德公司要為D型電腦及P型電腦發展一種週生產排程。
D型電腦每件利潤50元,P型電腦每件40元。
下一週的生產最多有150小時可用在裝配,每件D型需3小時裝配,P型需5小時裝配。
另外,海德公司目前只有20台P型電腦的顯示器存貨,所以P型電腦最多只能裝配20件,每件D型需8平方尺,每件P型需5平方尺儲存空間,該公司只有300平方尺倉庫可用來存儲新產品。
試以單形法求出其最適解及總利潤。
令:
X1=D型裝配件數X2=P型裝配件數
則Max50X1+40X2+0S1+0S2+0S3(5.1)
s.t.3X1+5X2+1S1=150(5.2)
1X2+1S2=20(5.3)
8X1+5X2+1S3=300(5.4)
X1,X2,S1,S2,S3≧0(5.5)
●單形法之代數性質:
1.n個變數>m個限制式方程式→無限多解(上例中,變數為X1,X2,S1,S2,S3共5個,限制方程式共3個,由於
5(變數)>3(限制式)→無限多解)。
2.任何不滿足非負值限制的解都不要(上例中任何X1,X2,S1,S2,S3均需“≧”0)。
●找一個基本解
●基本解:
要找基本解,令n-m個變數等於零,再解剩下m個變數的m個限制式。
上例中有5個變數,3個方程式。
令2個(=5-3)變數等於零,解其他三個變數的三個聯立限制方程式。
上例中,若令X2=0,S1=0,則限制式為:
3X1=150,S2=20,8X1+S3=300
解聯立限制方程式得X1=50,S2=20,S3=-100及X2=0,S1=0,此解為一“、50,=20,=-100300________________________________________________________________________________________________________________基本解”。
●被令為零的變數稱為非基本變數(nonbasicvariable),剩餘的變數稱為基本變數(basicvariable)。
上例中X2,S1為非基本變數,X1,S2,S3為基本變數。
●基本可行解為一基本解,且滿足非負值條件。
●上例中S3=-100,所以例子存有非合理解。
●若令X1,X2為非基本變數(X1=0,X2=0),則限制式為S1=150,S2=20,S3=300,因此得解為X1=0,X2=0,S1=150,S2=20,S3=300,由於每一變數都≧0,所以此解為基本合理解。
海德公司基本合理解共有五個,如下所示:
極點X1X2S1S2S3
0015020300
75/2072/2200
3012080
50/32000200/3
020500200
結論:
(1)線性規劃合理區的每一個極端點都是基本合理解,其中有一極端點必為最適基本合理解。
(2)單形法是一個反覆的步驟,從一個基本合理解(極端點)起到另一個基本合理解(極端點),直至尋到最適基本解(極端點)為止。
⏹5.2表格型
●表格型目的:
在單形法中需要一個基本合理解作為起始點,表格型的目的即在尋找起始點,其原因為表格型具備找到「起始基本合理解」之二特性:
1.若能滿足以下二條件才能找到基本解:
(1)對每一個限制式,m個基本變數(在上例中S1,S2,
S3為基本變數)中只能有一個變數在該式的係數必
須是1,而在此式的其他基本變數的係數均為零。
如
上例第一個限制式中為1S1,0S2,0S3;第二個限制
式為0S1,1S2,0S3;第三個限制式為0S1,0S2,1S3。
(2)每個基本變數的係數,只有在一個限制式是1。
如上
例限制式中之1S1,1S2,1S3。
2.需要RHS值為非負值。
滿足以上二特性,稱之為表格型。
結論:
只要數學模式之限制式為“≦”及“非負值”者,即已為表格型了。
上例中,所有條件都是小於等於型的線性規劃問題,因此很容易找到起始基本合理解。
只要簡單的令決策變數等於零而解惰變數即可。
注意,惰變數就等於右手邊數值。
X1=0,X2=0,S1=150,S2=20及S3=300為起始基本合理解,這個解相當於用原點,極端點為起始合理解。
●單形法求解線性規劃問題的準備步驟:
(1)建立模型;
(2)加入惰變數或減去剩餘變數以建立標準型;(3)建立表格型。
⏹5.3建立初始單形表
在線性規劃轉變為表格型之後,即有一個起始基本合理解用以啟動單形法。
因此需先建立初始單形表。
●初始單形表之表示法:
Max:
Z=C1X1+C2X2+……
s.t.:
a11X1+a12X2+……≦b1
a21X1+a22X2+……≦b0
c列=目標函數係數的列數。
b行=限制式右邊值的行數。
A矩陣=限制式中變數係數的m列n行矩陣。
(c列)
C1C2…Cn
(A矩陣)
a11a12…a1n
a21a13…a2n
ミミ…ミ
a1a2…amn
b1︵
b2B
ミ行
bm︶
上例初始單形表如下:
X1X2S1S2S3
基底CB
5040000
S10
S20
S30
35100
01010
85001
150
20
300
因初始單形表已表格化了,所以很容易找到起始基本合理解。
(1)每個基本變數所對應的行,只有1在非零的位置。
這種行稱為單位行或單位向量。
(2)配合每個基本變數只有一列,這列有1在相當於基
本變數的單位行的地方。
上例中,基本變數:
S1=b1=150,S2=b2=20,S3=b3=300,因此起始基本合理解為:
X1=0,X2=0,S1=150,S2=20及S3=300。
計算列(當增加1單位,目標函數值減少的量)
Z1=0(3)+0(0)+0(8)=0Z2=0(5)+0
(1)+0(5)=0
Z3=1(0)+0(0)+0(0)=0Z4=0(0)+0
(1)+0(0)=0
Z5=0(0)+0(0)+0
(1)=0
計算Cj-Zj列(當Xj增加1單位,對目標函數的淨改變量)
Cj-Zj=50-0=50Cj-Zj=40-0=40
Cj-Zj=0-0=0Cj-Zj=0-0=0
Cj-Zj=0-0=0
目前基本合理解的利潤:
Z=150(0)+20(0)+300(0)=0
X1
X2
S1
S2
S3
基底
CB
50
40
0
0
0
S1
S2
S3
0
0
0
3
0
5
1
5
1
0
0
0
1
0
0
0
1
150
20
300
Zj
Cj-Zj
0
50
0
40
0
0
0
0
0
0
0
CB:
基本變數在目標函數的係數目標函數值
Zj:
第j行的變數帶入基本變數,造成目標函數值減少的量(MC)
Cj-Zj:
目標函數的淨改變量(淨評估列MR-MC)
X1:
設X2仍為非基本變數,若X1改為基本變數,將使S1減少3,S2減少0,S3減少8
X2:
設X1仍為非基本變數,X2改為基本變數,將使S1減少5,S2減少1,S3減少5
⏹5.4解的改進
單形法的工作即在變換變數,亦即由目前非基本變數中選一個變數,便之成為基本變數(進入變數),而目前的基本變數成為非基本變數(退出變數),如此反覆的交換,直至尋得一改善目標函數值的新基本合理解。
選擇新變數進入基底的判定準則:
由淨評估列(Cj-Zj)中,選擇每增加一個單位,能使目標函數改善程度最大者為新進入的基底變數,當數值相同時,選擇最左邊的一個。
上例中,選X1為進入變數,使之成為基本變數。
自目前基底移出一個變數的判定準則(最小比率測試):
假設進入基本變數來自單行表A矩陣的第j行,對每一列i,計算每個aij>0者的bi∕aij比值,最小的比值所對應的基本變數就離開基底。
在數值相同的情形;選擇最上面的一個。
B1∕a1=150∕3=50B2∕a2=20∕0=-
B3∕a3=300∕8=37.5
上例中,選S3為退出變數,使之成為非基本變數。
X1
X2
S1
S2
S3
bi∕aij
基底
CB
50
40
0
0
0
S1
S2
S3
0
0
0
3
0
5
1
5
1
0
0
0
1
0
0
0
1
150
20
300
150∕3=50
-
300∕8=37.5
Zj
Cj-Zj
0
50
0
40
0
0
0
0
0
0
0
樞紐元素樞紐行(進入行)利潤樞紐列
(退出列)
註:
步驟(從生產面來看)
1.生產何種產品?
MR-MC最大值(最適化條件)
2.生產多少數量?
選擇bi/aij最小值(可行性條件)
⏹5.5計算下一個表
更新單形表(亦即使新的基本變係數變成一單位行)。
上例中即為使X1行變成與S3行相似。
X1S3
︵︵
3→0=a11
0變為0=a21
81=a31
︶︶
基本列運算法:
1.將任何列(方程式)乘以一個非零值。
2.將任何一列乘以若干倍加到另一列。
基本列運算法不會改變限制式的解,但會改變限制式中各變數的係數及RHS值。
注意:
區別aij、aij、bij、bij。
(1)要使a31=1,則將樞紐列乘以(1/8)
1/8(8X1+5X2+0S1+0S2+1S3)=1/8(300)
X1+5/8X2+0S1+0S2+1/8S3=75/2(新樞紐列)
(2)要使a11=0,則將新樞紐列乘以(3)
3(1X1+5/8X2+0S1+0S2+1/8S3)=3(75/2)
3X1+15/8X2+0S1+0S2+3/8S3=225/2
將上例中之第一列減上式:
(3X1+5X2+1S1)-(3X1+15/8X2+3/8S3)=150-225/2
∴0X1+25/8X2+1S1-3/8S3=75/2
(3)a21=0∴不再做任何基本列運算
新的單形表如下:
X1
X2
S1
S2
S3
基底
CB
50
40
0
0
0
S1
S2
X1
0
0
50
0
0
1
25/8
1
5/8
1
0
0
0
1
0
-3/8
0
1/8
75/2
20
75/2
Zj
Cj-Zj
1875
得限制式如下:
25/8X2+1S1-3/8S3=75/2
1X2+1S2=20得改變原限制式各變數係數
1X1+5/8X2+1/8S3=75/2及RHS值
令X2=0,S3=0(非基本變數)
得S1=75/2,S2=20,X1=75/2
Z=0(75/2)+0(20)+50(75/2)=1875
●解釋每一循環的結果
起始基本合理解(極端點)→新基本合理解(極端點):
X1=0X1=75/2
X2=0X2=0
S1=150S1=75/2
S2=20S2=20
S3=300S3=0
Z=0Z=1875
X2
倉儲空間
P型
顯示器
裝配時間
可行區域
X1
D型
圖5.2海德公司問題的可行區及極點
●移向更好的解
以上方法反覆進行:
Z1=0(0)+0(0)+50
(1)=50
Z2=0(25/8)+0
(1)+50(5/8)=250/8
Z3=0
(1)+0(0)+50(0)=0
Z4=0(0)+0
(1)+50(0)=0
Z5=0(-3/8)+0(0)+50(1/8)=50/8
X1
X2
S1
S2
S3
bi∕aij
基底
CB
50
40
0
0
0
S1
S2
X1
0
0
50
0
0
1
25/8
1
5/8
1
0
0
0
1
0
-3/8
0
1/8
75/2
20
75/2
75/2/25/8=12
20/1=20
75/2/5/8=60
Zj
Cj-Zj
50
0
250/8
70/8
0
0
0
0
50/8
-50/8
1875
X2S1
︵︵
25/8→1=a12
1變為0=a22
5/80=a32
︶︶
(1)要使a12=1,則將樞紐列乘以(8/25)
8/25(0X1+25/8X2+1S1+0S2-3/8S3)=8/25(75/2)
0X1+1X2+8/25S1+0S2-3/25S3=12(新樞紐列)
(2)要使a22=0,則將上表中之第二列減去新樞紐列
(0X1+1X2+0S1+1S2+0S3)-(0X1+1X2+8/25S1+0S2-3/25S3)=20-12
0X1+0X2-8/25S1+1S2+3/25S3=8
(3)要使a21=0,則將新樞紐列乘以(5/8)
5/8(0X1+1X2+8/25S1+0S2-3/25S3)=5/8(12)
0X1+5/8X2+1/5S1+0S2-3/40S3=15/2
將上表中之第三列減上式
(1X1+5/8X2+0S1+0S2+1/8S3)-(0X1+5/8X2+5/25S1+0S2-3/40S3)=75/12-15/2
1X1+0X2-5/25S1+0S2+5/25S3)=30
經過運算之後的單形表如下:
X1
X2
S1
S2
S3
基底
CB
50
40
0
0
0
X2
S2
X1
40
0
50
0
0
1
1
0
0
8/25
-8/25
-5/25
0
1
0
-3/25
3/25
5/25
12
8
30
Zj
Cj-Zj
50
0
40
0
14/5
-14/5
0
0
26/5
-26/5
1980
得限制式如下:
X2+8/25S1-3/25S3=12
-8/25S1+S2+3/25S3=8改變單形法第二表限制式
X1-5/25S1+5/15S3=30各變數係數及RHS值
基本解X2=12,S2=8,X1=30,S1=0,S3=0
Z=40(12)+0(8)+50(30)=1980
極端點→
極端點
X1=25/2S2=20X1=30S2=8
X2=0S3=0X2=12S3=0
S1=75/2Z=1875S1=75/2Z=1980
●最適解判斷準則:
當所有淨評估列(Cj-Zj)的元素均為零或負值時,線性規劃問題的最適解就已達成。
此時,最適解就是目前的基本可行解。
●說明最適解
●單形法摘要
●單形法步驟摘要:
1.建立問題的線性規劃模式。
2.在每個限制條件添加惰變數使成為標準型。
對所有條件式都是小於等於型的問題,這也是用來找出初始基本可行解所需的表格型。
3.建立初始單形表。
4.選擇在淨評估列擁有最大值的非基本變數進入基底變數,找出樞紐行,也就是對應進入變數的行。
5.在樞紐行j中選擇aij>0,bi/aij比例最小的列為樞紐列,此列的基本變數為將要離開基底的變數。
6.進行必要的基本列運算,使進入變數的行變成單位行,其樞紐列的元素為1。
(1)將樞紐列的每一個元素除以樞紐項(位於樞紐列及樞紐行的元素)。
(2)將樞紐列乘以適當的值後加到其他的列,以使樞紐行的其他元素為0。
完成之後,可以由bi行的值得到新的基本可行解。
7.檢查是否最適解。
如果各行的Cj-Zj≦0,則我們已找到最適解,否則回到第4步。
⏹5.6表格型:
一般情形
●若所有限制程式均為小於等於零,及RHS值為“非負”,只要加“惰變數”即可。
●大於等於限制式
例:
Max50X1+40X2
s.t.3X1+5X2≦150裝配時間
1X2≦20P型顯示器
8X1+5X2≦300倉儲空間
1X1+1X2≧25最低總產量X1,X2≧0
↓標準型:
在標準型中令X1=X2=0(基本解)
得S1=150,S2=20,S3=300,S4=-25
∵S4=-25∴有非合理解
Max50X1+40X2+0S1+0S2+0S3+0S4
s.t.3X1+5X2+1S1=150
1X2+1S2=20
8X1+5X2+1S3=300
1X1+1X2-1S4=25X1,X2,S1,S2,S3,S4≧0
↓表格型(人為變數artificialvariable)
Max50X1+40X2+0S1+0S2+0S3+0S4-Ma4
s.t.3X1+5X2+1S1=150
1X2+1S2=20
8X1+5X2+1S3=300
1X1+1X2-1S4+1a4=25
X1,X2,S1,S2,S3,S4≧0
在表格型中令X1=X2=S4=0,得S1=150,S2=20,S3=300,a4=25,滿足單形表之基本合理解,但不能滿足所有限制條件,如:
X1+X2≧25(X1=X2=0),因此不合理,為達實際合理解只須以人為變數求出起始合理解,而後再於問題達最適解時,將人為變數消除。
人為變數消除的方法:
(重點:
人為變數目的在於求一起始基本合理解)。
在目標函數中,給每個人為變數一個很大的成本即可將人為變數消除。
上例中,給人為變數a4一個非常大的負值當做利潤,a4在基底內會大量減少利潤,如此a4會從基底中消除,即目標函數為:
Max50X1+40X2+0S1+0S2+0S3+0S4-Ma4
反之,在最小化問題中,目標函數改為
Min50X1+40X2+0S1+0S2+0S3+0S4+Ma4
人為變數,只是用來找起始基本合理解,只要人為變數離開基本合理解,就可以立刻將人為變數自單形表中去掉。
當所有人為變數都自基底中消除,即表該問題已得到一基本合理解了。
X1
X2
S1
S2
S3
S4
a4
基底
CB
50
40
0
0
0
0
-M
S1
S2
S3
a4
0
0
0
-M
3
0
8
5
1
5
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
-1
0
0
0
1
150
20
300
25
Zj
Cj-Zj
-M
50+M
-M
40+M
0
0
0
0
0
0
M
-M
-M
0
-25M
S1
S2
S3
X1
0
0
0
50
0
0
0
1
2
1
-3
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
8
-1
-3
0
-8
1
75
20
100
25
Zj
因X1+X2≧25(X1=X2=0)明顯不合理,因此為達實際合理解,需將人為變數消除
Cj-Zj
50
0
50
-10
0
0
0
0
0
0
-50
50
50
-M-50
1250
繼續完成之單形法如下:
X1
X2
S1
S2
S3
S4
基底
CB
50
40
0
0
0
0
S1
S2
S4
X1
0
0
0
0
0
0
0
1
25/8
1
-3/8
5/8
1
0
0
0
0
1
0
0
-3/8
0
1/8
1/8
0
0
1
0
75/2
20
25/2
75/2
X2=0,
S3=0
Zj
Cj-Zj
50
0
250/8
70/8
0
0
0
0
50/8
-50/8
0
0
1875
X2
S2
S4
X1
0
0
0
50
0
0
0
1
1
0
0
0
5/25
-8/25
3/25
-5/25
0
1
0
0
-3/25
3/25
2/25
5/25
0
0
1
0
12
8
17
30
S1=0,
S3=0
Zj
Cj-Zj
50
0
40
0
14/5
-14/5
0
0
26/5
-26/5
0
0
1980
●若問題已達最適解(所有Cj-Zj均“≦”0),但仍有一個或多個人為變數仍在基底中,則此問題“無合理解”。
●等式限制式
例:
6X1+4X2-5X3=30
↓加人為變數
6X1+4X2-5X3+1a1=30(表格型)
●清除負的右手邊值
例:
X2≦X1-5
↓移項
-X1+X2≦-5
↓各項乘(-1),使RHS成“非負值”
X1-X2≧5(表格型)
例:
6X1+3X2-4X3≧-20
↓各項乘(-1),使RHS成“非負值”
-6X1-3X2+4X3≦20
●表格型建立步驟摘要
⏹5.7解極小化問題
若為極小化問題,只需將目標函數乘以(-1),使其成為極大化問題,即可求得最適解,但所求得之目標函數值需乘以(-1),使其還原為原來極小化問題之目標函數值。
例:
Min2X1+3X2
s.t.1X1≧125產量A需求量
1X1+1X2≧350總產量
2X1+1X2≦600生產時間X1,X2≧0
↓目標函數乘(-1)
Max-2X1-3X2
s.t.1X1≧125產量A需求量
1X1+1X2≧350總產量
2X1+1X2≦600生產時間X1,X2≧0
↓表格化
Max-2X1-3X2+0S1+0S2+0S3-Ma1-Ma2
s.t.1X1-1S1+a1=125
1X1+1X2-1S2+1a2=350
2X1+1X2+1S3=600
X1,X2,S1,S2,S3,a1,a2≧0
起始單形表如下:
X1
X2
S1
S2
S3
a1
a2
基底
CB
-2
-3
0
0
0
-M
-M
a1
a2
S3
-M
-M
0
O
2
0
1
1
-1
0
0
0
-1
0
0
0
1
1
0
0
0
1
0
125
350
600
Zj
Cj-Zj
-2M
-2+2M
-M
-3+M
M
-M
M
-M
0
0
-M
0
-M
0
-475M