单纯形解法与对偶解法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性规划的单纯形解法 例:
12
1212
1max Z 43221600
5 2.52500
.. 4000, 1,2
i x x x x x x s t x x i =++≤⎧⎪+≤⎪⎨
≤⎪⎪≥=⎩
一、建立初始基本可行解
标准化:
12
123124
15max Z 4322 16005 2.5 2500.. 4000, 1,2,...,5
i x x x x x x x x s t x x x i =+++=⎧⎪++=⎪⎨
+=⎪⎪≥=⎩ 其中,x 3,x 4,x 5为松驰变量。
增广矩阵表示:
2x 1+2x 2 1600
Z=400
5x 1+2.5x 2
12345 2 2 1 0 0 16005 2.5 0 1 0 2500 1 0 0 0 1 400x x x x x b ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦
初始可行基:
1 1 0 00 1 00 0 1B ⎡⎤
⎢⎥=⎢⎥⎢⎥⎣⎦
基变量可用非基变量表示成:
312
4125
116002-225005 2.5400x x x x x x x x
=-⎧⎪
=--⎨⎪=-⎩ 令非基变量x 1=x 2=0,得初始可行解:X=[0,0,1600,2500,400],对应于可行域的O 点。
相应的Z 值为0
二、解的最优性检验规划
判断的方法是检查目标函数中是否还有正的系数。
Z=4x 1+3x 2+0 因此,如果将这两个非基变量中的任意一个变成基变量,也就是使该变量的取值由零变为正值,都有可能使目标函数值增加,因此原来的解不是最优解。
三、第一次迭代(基变换) 1.确定换入变量
一般选取价值系数大的那个为入基变量。
这里选择x 1为入基变量。
2.确定换出变量
确定入基变量,同时要确定换出变量,其原则是使得到的新的基本解同时是可行解。
分析如下:
令x 2=0(x 2仍为非基变量),得:
31415
11600225005400x x x x x x
=-⎧⎪
=-⎨⎪=-⎩ 随着x 1的增加,x 3, x 4, x 5的值就会逐渐变小,但始终应保持非负。
因此,x 1的增加是有
限的。
容易看出,该限制可以表示为:
116002500400min ,,400251x ⎛⎫
≤= ⎪⎝⎭
这就是说,当x 1的值由零增加到400时,原来基变量x 5的值最先变成0,而另外两个
基变量仍然保持正值,因此,只要用x 1代替x 5成为基变量,而且x 1的值不大于400,就能
保证原来的基变量和的值都非负。
于得,新的基变量为x 3,x 4,x 1,非基变量为x 5,x 2。
用矩阵表示如下:分子是b 列,分母是换入变量(x 1)所在列。
12345
2 2 1 0 0 16005 2.5 0 1 0 2500 1 0 0 0 1 400x x x x x b ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦
3、求解
对增广矩阵进行初等变换,得:
12345
2 2 1 0 0 16000 2 1 5 2.5 0 1 0 2500 1 0 0 0 1 400x x x x x b ⎡⎤⎢⎥→⎢⎥⎢⎥⎣⎦ 0 -2 8000 2.5 0 1 -5 5001 0 0 0 1 400⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦
3524521
5800225005 2.5400x x x x x x x x
=+-⎧⎪
=+-⎨⎪=-⎩ 令非基变量x 2=x 5=0,得到一组新基本解:X=[400,0,800,500, 0],该点对应于D 点,相
应的Z =1600
4、最优性检验
Z=4x 1+3x 2=4(400-x 5)+3x 2=1600+3x 2-4x 5 由于x 2的系数大于零,所以其为非最优解。
三、第二次迭代 1.确定换入变量:x 2 2.确定换出变量: 由于x 5=0,从而
32421
8002500 2.5400x x x x x =-⎧⎪
=-⎨⎪=⎩ 2800500min ,2002 2.5x ⎛⎫
≤= ⎪⎝⎭
因此,换出变量为x 4
新的基变量为x 3, x 2, x 1,非基变量为x 4, x 5。
矩阵表示如下:
θ
1600/2=800
2500/5=500 400/1=400
12345
0 2 1 0 -2 8000 2.5 0 1 -5 500 1 0 0 0 1 400x x x x x b ⎡⎤
⎢⎥⎢⎥
⎢⎥⎣⎦
3、求解
对增广矩阵进行初等变换,得:
12345
0 2 1 0 -2 8000 2 1 0 2.5 0 1 -5 500 1 0 0 0 1 400x x x x x b ⎡⎤⎢⎥→⎢⎥⎢⎥⎣⎦ 0 -2 8000 1 0 0.4 -2 2001 0 0 0 1 4000 0 1 -0.8 2 4000 1 0 0.4 -2 2001 ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦→ 0 0 0 1 400⎡⎤
⎢⎥⎢⎥
⎢⎥⎣⎦
3452451
54000.822000.42400x x x x x x x x
=+-⎧⎪
=-+⎨⎪=-⎩ 令非基变量x 4=x 5=0,得到一组新基本解:X=[400,200,400,0, 0],该点对应于C 点,相
应的Z =2200
4、最优性检验
Z=4x 1+3x 2=4(400-x 5)+3(200-0.4x 4+2x 5)=2200-1.2x 4+2x 5 由于x 5的系数大于零,所以其为非最优解。
四、第三次迭代 1.确定换入变量:x 5 2.确定换出变量: 由于x 4=0,从而
35251
540022002400x x x x x x
=-⎧⎪
=+⎨⎪=-⎩ 5400400min ,2002
1x ⎛⎫
≤= ⎪⎝⎭
因此,换出变量为x 3
新的基变量为x 5,x 2,x 1,非基变量为x 3,x 4。
矩阵表示如下:
θ
800/2=400 500/2.5=200
θ 400/2=200
12345 0 0 1 -0.8 2 4000 1 0 0.4 -2 200 1 0 0 0 1 400x x x x x b ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦
3、求解
对增广矩阵进行初等变换,得:
12345
0 0 1 -0.8 2 4000 0 0.5 -0 1 0 0.4 -2 2001 0 0 0 1 400x x x x x b ⎡⎤⎢⎥→⎢⎥⎢⎥⎣⎦0.4 1 2000 1 0 0.4 -2 200 1 0 0 0 1 4000 0 0.5 -0.4 1 2000 1 1 -0.4 0 6001 ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦→ 0 -0.5 0.4 0 200⎡⎤
⎢⎥⎢⎥
⎢⎥⎣⎦
5342341
342000.50.46000.42000.50.4x x x x x x x x x
=-+⎧⎪
=-+⎨⎪=+-⎩ 令非基变量x 3=x 4=0,得到一组新基本解:X=[200,600,0,0, 200],该点对应于B 点,相
应的Z =2600
4、最优性检验
Z=4x 1+3x 2=4(200+0.5x 3-0.4x 4)+3(600-x 3+0.4x 4)=2600-x 3-0.4x 4 由于x 3、x 4的系数均小于零,所以该解即为最优解。
单纯形表
对于一个基B ,分块矩阵
()111
1T T T B B B b B A
T B C B b C B A C ----⎛⎫= ⎪-⎝⎭
称为对应于基B 的单纯形表。
T (B )记录了基B 的若干重要信息:
(1)左下角这一块为1×1矩阵,即一个数,它是x 取B 的基础解时目标函数S 的值; (2)左上角这一块是m ×1矩阵,这是x 取B 的基础解时基变量的值; (3)右下解这一块是1×n 矩阵。
由于:
[]11111,, , 0,T T T T T B B B R T T T T B B B R T T B R C B A C C B B R C C C B B C C B R C C B R C -----⎡⎤-=-⎣⎦⎡⎤=--⎣⎦⎡⎤=-⎣⎦
因此, C
B T B -1A-
C T 0等价于C B T B -1R-C R
T
0 因此,若右下角的矩阵所有元素都大于0,则B 是最优基。
(4)右上角这一块是m ×n 矩阵,其第j 列为B -1P j :
因此,对于任意一个基B ,只要算出它的单纯形表T(B),即可判定它的最优性,同时还知道基本解及目标函数的值。
单纯形表解法
对偶单纯形法:
问题:有关对偶问题——原问题转化成对偶问题比较容易解决时,如果存在最优解虽然可以知道解和检验数的值,只知道他们之间解和检验数总体对应关系,那么对偶问题最优解检验数与原问题解究竟如何一一对应情况?
简单地说,原问题的决策变量对应于对偶问题的松驰变量,原问题的松驰变量,对应于对偶的决策变量。
但在对应时一定要按顺序。
例如,对于生产汽车的例子,原问题的决策变量为x1,x2,松驰变量为x3,x4,x5,对偶问题的决策变量为y1,y2,y3,松驰变量为y4,y5。
对应时应该如下:
原问题的基变量:x5, x2, x1
对偶问题的基变量:y1, y2
可以看到,对偶问题最优解的检验数分别对应于原问题的最优解,具体的对应关系是:对偶问题的三个决策变量(y1,y2,y3按顺序)的检验数对应于原问题的三个松驰变量(x3,x4,x5按顺序)
相应地,对偶问题的两个松驰变量(y4,y5按顺序)的检验数对应于原问题的两个决策变量(x1,x2按顺序)
X3——y1
X4——y2
X5——y3
X2——y5
X1——y4。