运筹学——解对偶单纯形法
运筹学及其应用4.3 对偶单纯形法
min w= 2x1+3x2+4x3+0x4+0x5 x1+2x2+ x3-x4= 1 2x1- x2+3x3– x5=4 x1,x2,x3,x4,x5≥ 0
min w= 2x1+3x2+4x3+0x4+0x5 -x1-2x2- x3+x4= -1 -2x1+x2-3x3+x5= -4 x1,x2,x3,x4,x5≥ 0
4
234 000
0
x1 x2 x3 x4 -1 -2 -1
x4 x5 b 1 0 -1
max
2 −2
4 ,
−3
=
−1
0 x5 -2* 1 -3 0 1 -4
σ 234 000
0 x4 0 -2.5 0.5 1 -0.5 1
2 x1 1 -0.5 1.5 0 -0.5 2
σ 0 4 1 0 1 -4
步骤:(1)保持σj ≥ 0,j= 1,···,n,确定XB,建立计算表格; (2)判别XB = B-1b ≥ 0是否成立? ①若成立,XB为最优基变量; ②若不成立,转(3);
1
步骤:(1)保持σj ≥ 0,j= 1,···,n,确定XB,建立计算表格;
(2)判别XB = B-1b ≥ 0是否成立? ①若成立,XB为最优基变量; ②若不成立,转(3);
5
• 作业 • P81 1.12(1)
6
§3 对偶单纯形法
单纯形法:由 XB = B-1b ≥ 0,使σj ≥ 0,j = 1,···,m 对偶单纯形法:由σj ≥ 0(j= 1,···,n),使XB = B-1b ≥ 0 相同点:都用于求解原问题
韩伯棠管理运筹学(第三版)_第六章_单纯形法的灵敏度分析与对偶
迭代 基
次数 变 量
CB
x1 x2 。 s1 50 100 0
s2
s3
0 0b
x1 50 1 0 1
0 -1 50
S2 0 0 0 -2
1 1 50
2
x2 100 0 1 0
0 1 250
zj
50 100 50 0 50
σj=cj-zj
0 0 -50
0 -50 2750 0
❖
从上表可以发现设备台时数的约束方程中的松弛变量S1
j ck akj 0, ck akj j ,
当a kj
0, ck
j
akj
,这里 j
akj
0;
当a kj
0, ck
j
akj
,这里 j
akj
0;
而当j k时, k ck ck zk ck ck zk ckaKK ,
因为xk是基变量,知 k 0, akk 1,故知 k 0.
x1 x2 s1 50 100 0 1 01 0 0 -2 0 10
s2
s3
00
b
0 -1 50
1 1 50
0 1 250
zj σj=cj-zj
50 100 50 0 0 -50
0 50 0 -50
Z= 27500
先对非基变量s1的目标函数的系数C3进行灵敏度 分析。这里σ3=-50,所以当C3 的增量ΔC3≤-(-50)即 ΔC3≤50时,最优解不变,也就是说S1的目标函数的系 数C′3=C3+△C3≤0+50=50时,最优解不变。
规划问题的对偶价格就不变。而要使所有的基变量仍然
是基变量只要当bj 变化成b′j =bj+△bj时,原来的基不变所 得到的基本解仍然是可行解,也就是所求得的基变量的
管理运筹学_单纯形法的灵敏度分析与对偶..
S3 0 -1 1 1 50 -50
b 50 50 250 27500
2
12
§1
单纯形表的灵敏度分析
我们对b1进行灵敏度分析,因为在第一个约束方程中含有松弛变量S1,
T 所以松弛变量在最终单 纯形表中的系数列( 1 , 2, 0) 就是B-1的第一列。
xBi 因为d'11 1 0, d' 21 2 0, X1 50, X 2 50, 可以Max | d 'i1 0 50 d i1 xBi 而Min | d 'i1 0 25, 故有当 50 b1 25,即250 b b 325第一个 d i1 约束条件的对偶价格不 变。
管
理
运
筹
学
8
§1
约束条件 ≤ ≥
单纯形表的灵敏度分析
影子价格的取值
下表给出了一个由最终单纯形表对于不同约束类型的对偶价格的取值。
等于这个约束条件对应的松弛变量的 等于这个约束条件对应的剩余变量的
z j 值,即为 j 的相反数
=
z j 值,即为 j 的相反数 等于这个约束条件对应的人工变量的 z j 值,即为 j 的相反数
管
理
运
筹
学
5
§1
迭代次数 基变量 X1 S2 X2 ZJ
单纯形表的灵敏度分析
CB C’1 0 100 X1 50 1 0 0 C’1 X2 100 0 0 1 100 S1 0 1 -2 0 C’1 S2 0 0 1 0 0 S3 0 -1 1 1 -C’1+100 b 50 50 250
2
CJ -ZJ
二、约束方程中常数项的灵敏度分析
应用运筹学基础:线性规划(4)-对偶与对偶单纯形法
应⽤运筹学基础:线性规划(4)-对偶与对偶单纯形法这⼀节课讲解了线性规划的对偶问题及其性质。
引⼊对偶问题考虑⼀个线性规划问题:$$\begin{matrix}\max\limits_x & 4x_1 + 3x_2 \\ \text{s.t.} & 2x_1 + 3x_2 \le 24 \\ & 5x_1 + 2x_2 \le 26 \\ & x \ge0\end{matrix}$$ 我们可以把这个问题看作⼀个⽣产模型:⼀份产品 A 可以获利 4 单位价格,⽣产⼀份需要 2 单位原料 C 和 5 单位原料 D;⼀份产品 B 可以获利 3 单位价格,⽣产⼀份需要 3 单位原料 C 和 2 单位原料 D。
现有 24 单位原料 C,26 单位原料 D,问如何分配⽣产⽅式才能让获利最⼤。
但假如现在我们不⽣产产品,⽽是要把原料都卖掉。
设 1 单位原料 C 的价格为 $y_1$,1 单位原料 D 的价格为 $y_2$,每种原料制定怎样的价格才合理呢?⾸先,原料的价格应该不低于产出的产品价格(不然还不如⾃⼰⽣产...),所以我们有如下限制:$$2y_1 + 5y_2 \ge 4 \\ 3y_1 + 2y_2 \ge3$$ 当然也不能漫天要价(也要保护消费者利益嘛- -),所以我们制定如下⽬标函数:$$\min_y \quad 24y_1 + 26y_2$$ 合起来就是下⾯这个线性规划问题:$$\begin{matrix} \min\limits_y & 24y_1 + 26y_2 \\ \text{s.t.} & 2y_1 + 5y_2 \ge 4 \\ & 3y_1 + 2y_2 \ge 3 \\ & y \ge 0\end{matrix}$$ 这个问题就是原问题的对偶问题。
对偶问题对于⼀个线性规划问题(称为原问题,primal,记为 P) $$\begin{matrix} \max\limits_x & c^Tx \\ \text{s.t.} & Ax \le b \\ & x \ge 0\end{matrix}$$ 我们定义它的对偶问题(dual,记为 D)为 $$\begin{matrix} \min\limits_x & b^Ty \\ \text{s.t.} & A^Ty \ge c \\ & y \ge 0\end{matrix}$$ 这⾥的对偶变量 $y$,可以看作是对原问题的每个限制,都⽤⼀个变量来表⽰。
运筹学对偶单纯形法
-4 x3
1/2 3/2
0 x4 1 0 0
0 x5
-1/2 -1/2
x4换出变量
CB 0
-2 x1 cj-zj
2
-4 8/5
-1
-1
min{σj/αlj|αlj<0}
2
x2换入变量
cj CB -3 -2 cj-zj XB x2 x1 b
2/5 11/5
-2 x1 0
-3 x2
1
当bl<0,而对所有j=1,…,n,有alj0,
则原问题无可行解。
证明:xl+al,m+1xm+1+…+al,nxn=bl
CB c1 … cl … cm 基 x1 ba x0(j=m+1, xl xm ,又 xm+1 1 因 … ,n) bl<0, lj …,0 1 <0 b 故有 x l
1
第三步 先确定换出变量 解答列(b 列)中的负元素对应的基变量出基, 相应的行为主元行。 一般选最小的负元素出基, 即若min { ( B -1 b )i| (B -1b )I < 0 } = ( B–1 b )l 则选取 x l 为换出变量.
检验第l 行中非基变量 xj 的系数 αlj , 若所有的αlj ≥ 0,则LP 问题 无可行解, (下面进行说明),此时计算结束。 否则转下步
cj
CB XB x4 x5 b -3 -4
-2 x1
-3 x2
-4 x3
0 x4
0 x5
x5换出变量
0
-1
-2 -2
2 1 2
-2
1 -3
-1
-3 -4
运筹学第2章 对偶理论01-对偶问题及影子价格、对偶单纯形法
第2章对偶理论及灵敏度分析主要内容对偶理论⏹线性规划对偶问题⏹对偶问题的基本性质⏹影子价格⏹对偶单纯形法灵敏度分析⏹灵敏度问题及其图解法⏹灵敏度分析⏹参数线性规划线性规划的对偶问题⏹对偶问题的提出⏹原问题与对偶问题的数学模型⏹原问题与对偶问题的对应关系实例:某家电厂家利用现有资源生产两种产品,有关数据如下表:设备A设备B 调试工序利润(元)612521115时24时5时产品Ⅰ产品ⅡD一、对偶问题的提出如何安排生产,使获利最多?厂家设Ⅰ产量–––––Ⅱ产量–––––1x 2x ⎪⎪⎩⎪⎪⎨⎧≥≤+≤+≤+=052426155 2max 212121221x x x x x x x s.t.x x z ,设设备A ——元/时设备B ––––元/时调试工序––––元/时1y 2y 3y 收购付出的代价最小,且对方能接受。
出让代价应不低于用同等数量的资源自己生产的利润。
设备A 设备B 调试工序利润(元)0612521115时24时5时ⅠⅡD ⏹厂家能接受的条件:⏹收购方的意愿:32152415min yy y w ++=单位产品Ⅰ出租收入不低于2元单位产品Ⅱ出租收入不低于1元出让代价应不低于用同等数量的资源自己生产的利润。
1252632132≥++≥+y y y y y52426155 2212121221⎪⎪⎩⎪⎪⎨⎧≥≤+≤+≤+=x x x x x x x s.t.x x z ,max ⎪⎩⎪⎨⎧≥≥++≥+++=0y 125265241532132132321y y y y y y y t s y y y w ,,.min 对偶问题原问题收购厂家一对对偶问题⎩⎨⎧≥≥=⇒⎩⎨⎧≥≤=00bY C YA s.t.Yb w X AX t s CX z min ..max ),(21c c C =⎪⎪⎫ ⎛=1x x X )(ij a A =()321,y ,y y Y =⎪⎪⎪⎫ ⎛=321b b b b 3个约束2个变量2个约束3个变量原问题对偶问题其它形式的对偶问题?特点:1.原问题的约束个数(不包含非负约束)等于对偶问题变量的个数;2.原问题的价值系数对应于对偶问题右端项;3.原问题右端项对应于对偶问题的价值系数;4.原问题约束矩阵转置就是对偶问题约束矩阵;5.原问题为求最大,对偶问题是求最小问题;6.原问题不等约束符号为“≤”,对偶问题不等式约束符号为“≥”;二、原问题与对偶问题的数学模型1.对称形式的对偶当原问题对偶问题只含有不等式约束时,称为对称形式的对偶。
运筹学第8讲:对偶单纯形法及灵敏度分析简介
② 原问题有可行解(b≥0), 对偶问题无可行解(存在δj>0),采 用单纯形法继续求解
③ 原问题无可行解(存在bi<0), 对偶问题有可行解( δ≤0 ), 采用对偶单纯形法继续求解
④ 原问题无可行解(存在bi<0), 对偶问题无可行解(存在δj>0), 设法使bi>0,并引入人工变量,采用大M 法继续求解
P38:例3.6
某公司生产甲、乙、丙、丁四种产品,已知制造单件产品时分
别占用的设备A、B的台时,设备A、B每天可用于生产的能力 以及单件产品的收益情况如下表所示。问该公司应该如何制定 最优生产计划? 项目 甲 乙 丙 丁 每天可用能力
设备A(h) 设备B(h)
单件利润(元)
3 2
4
2 3
3
1 2
上式两边左乘B-1,得到
题的最优基B不变,我们可以直接 求出新问题的最优解
X B B1b B1NX N
(1)
运筹学
第8讲:对偶单纯形法及灵敏度分析简介
设 Pj
为初始单纯形表中的第j 列列向量,
设 Pj’为最终单纯形表中的第j 列列向量 例如: 3 P 1 2 我们不难得到:
运筹学
第8讲:对偶单纯形法及灵敏度分析简介
同时,
Pj ' B1Pj
(3)
例如:
3 5 2 5 3 1 B P 1 1 2 0 P ' 2 5 3 5
1
再考察式(1),由于XN=[0, 0]T,因而
X B * B1b
(2) 解:设乙的收益c2直接反映到原问题的最终单纯形表中,得到
为使最优生产计划不变,则δ3, δ4 ,δ5, δ6 ≤0,得到
对偶单纯形法(经典运筹学)
解:问题化为标准型 max Z 2 x1 x 2 5 x1 x 2 x3 2 x 2 x3 x 4 5 s.t 6x xx 9 xx 2 2 6 x3 3 5 5 9 44 x1 , x 2 , x3,x 4,x5 0
X1 X2 X3 X4 X 5
2 检 0 1 -1 1 2 -4 0 -2 1 1 -6 0 0 1 0 0 0 0 1
Z Z-10
X1 1 X4 0
5 5 -9
X5 0
4
14 13 X1 X 2 X 3
检
X1 X4
0 1 0 0 0 0 0 1
X4
X5
-1/4 Z-31/4 1/4 1/2 11/4 1/2
所在行的基变量出基 则取br
4、以ari0 为主元素进行换基迭代 ,得一新的单纯形表, 转2
例:用对偶单纯形法 求解下列问题 max Z 2 x1 x 2 x1 x 2 x3 5 2x x 5 11 9 2 3 最优解 X ( ,) s.t 4 4 4 x 6 x 9 2 3 31 x1 , x 2 ,Z x3 0 最优值
-1/2 0 -1/2 0 -2 3/2 1 0
X2
-1/4 9/4
11 9 1 最优解 X ( ,, 0, , 0 ) 4 4 2 初始基 B (P ) 1,P 4,P 5 31 最优值 Z 不是典则形式 4
注意:对偶单纯形法仅限于初始基B对应 可用对偶单 的典则形式中目标函数的系数(检 纯形法 验数)均≤0的情形。 B的典则形式
对偶单纯形法是求解对偶规划的一种方法 × 对偶单纯形法:利用对偶理论得到的一个 求解线性规划问题的方法
单纯形法(原始单纯形法)的两个条件:
运筹学对偶单纯形法
8. 最优松紧性 设
= (XT, XTs) = ( x1 , x2 , … , xn , … , xn+m )T
T = (YT,Ys ) = ( y1 , y2 , … , ym , … , ym+n )T
分别是(P1) (D1)的可行解,那么 和 分别是(P1) (D1)最优解的充分必要条件是: ⑴ xj >0 → ym+j = 0 ⑵ ym+j>0 → xj = 0 ⑶ xn+i > 0 → yi = 0 ⑷ yi > 0 → xn+i = 0
关系3:一般对偶关系
对偶问题 目标要求
规范不等式 约束的式号
(P) max ≤ (aij)m×n
第 k 个约束 约束个数 第 k 个右端常数 (非)规范不等式约束 等式约束
(D) min ≥ (aji)n×m
第 k 个变量 变量个数 第 k 个价值系数 非负(正)变量 自由变量
系数阵 函数 约束 与 变量
(2) 对资源 i 现行分配量的评估。当资源 i 在市场上脱销时, 其总存量无法增加,但可酌情调整其在企业内部的现行分配量, 以便获得最佳经济效益。 二、 当 yi* 代表影子利润(即企业的目标是实现最大总利 润)时: (1) 对资源 i 总存量的评估。 (2) 对资源 i 现行分配量的评估。
对偶问题的经济解释
工时利润 (百元/工时) y1 y2 y3
产品 车间
单耗(工时/件)
甲
乙
最大生产能力 (工时/天)
A B C
单位利润 (百元/件)
1 0 2 3
0 2 3 2
运筹学 第三章 对偶单纯形法
目标函数系数 约束方程常数列 约束方程常数列 目标函数系数 系数矩阵 A 系数矩阵A 变量个数n 约束方程个数m 约束方程≤ ≥ = 变量≥0 ≤0 无符号约束 约束方程个数n 变量个数m 变量≥0 ≤0 无符号约束 约束方程≥ ≤ =
解:
min 10 y1 8 y2 y1 2 y2 5 2 y y 12 1 2 s.t. y 3 y 4 1 2 y1 0, y2无约束
设
Ⅰ产量–––– Ⅱ产量––––
x1
1
x2
2 2
如何安排生产, 使获利最多?
max z 2 x x s.t.
1 2
5 x 15 6 x 2 x 24 x x 5
1 2x,x 012厂 家设:设备A —— y 1 元/时 设备B ––––
调试工序 ––––
y2 元/时 y 3 元/时
Y (-A) ≥ - C
Y ≥0
5﹒变量无约束的对偶
原问题: max z=CX AX≤b X无约束 对偶 问题 min ω=Yb YA =C Y ≥0 令 X=X1 - X2 X1, X2≥0 max z=CX1-CX2 AX1 - AX2 ≤b X1,X2≥0 max z=(C, -C) X1 (A, -A) ≤b X2 X1,X2≥0 min ω=Yb
2﹒约束条件全部为“=”的对偶
原问题: max z=CX AX=b X≥0 等价 b max z=CX AX≤b 等价 AX≥b X≥0 max z=CX AX≤b -AX≤-b X≥0 max z=CX b A X≤ -b -A X≥0 等 价
min ω=(Y1,Y2) -b A (Y1,Y2) ≥C -A Y1,Y2≥0 min ω=(Y1-Y2)b ( Y 1 - Y 2 ) A ≥C Y1,Y2≥0
运筹学第4章 单纯形法的对偶问题
管理运筹学
3
§1 线性规划的对偶问题
如果我们把求目标函数最大值的线性规划问题看成原问题,则把求目标函数最小值的线 性规划问题看成对偶问题。下面来研究这两个问题在数学模型上的关系。
1 求目标函数最大值的线性规划问题中有n 个变量 m个约束条件,它的约束条件都是小于 等于不等式。而其对偶则是求目标函数为最小值的线性规划问题,有m个变量n个约束条件, 其约束条件都为大于等于不等式。
5x1 3x2 x3 200
管理运筹学
10
§1 线性规划的对偶问题
通过上面的一些变换,我们得到了一个和原线性规划等价的线性规划 问题:
max z 3x1 4x2 6x3
s.t. 2x1 3x2 6x3 440,
6x1 4x2 x3 100, 5x1 3x2 x3 200 5x1 3x2 x3 200 x1, x2 , x3 0
进一步,我们可以令y3
y
' 3
y
'' 3
,这时当
y
' 3
y
'' 3
时,y
0,当
y
' 3
y
'' 3
时, y3 0 。这也就是说,尽管
y
' 3
,
y
'' 3
0,
但 y3 的取值可以为正,可以为0,
可以为负,即 y3 没有非负限制。
这样我们把原规划的对偶问题化为
min f 440 y1 100 y2 200 y3
这样第二个约束条件也就符合要求。对于第三个约束条件,我们可以 用小于等于和大于等于两个约束条件来替代它。即有
运筹学对偶问题
分析
另外,为了争取外来加工订货,在满足上述要 求的基础上,收费标准应尽可能低从而具有竞 争力,因此总的收费 w=15y1+10y2 应极小化。 这样,就得到一个目标函数:
minW 15y1 10 y2
这样,就得到另一个线性规划模型:
minW 15y1 10 y2 s.t. 3y1 5 y2 2 5 y1 2 y2 1 y1 0, y2 0
x1 2x2 3x3 4x4 3 x2 3x3 4x4 5 2x1 3x2 7x3 4x4 2 x1 0, x2, x3为自由变量, x4 0,
maxW 3y1 5 y2 2 y3 s.t.
y1 2 y3 3 2 y1 y2 3y3 2 3y1 3y2 7 y3 3 4 y1 4 y2 4 y3 4 y1 0, y2 0, y3为自由变量
解:
max Z x1 4x2 3x3 s.t.
2x1 3x2 5x3 2 3x1 x2 6x3 1 x1 x2 x3 4 x1 0, x2 0, x3为自由变量
minW 2 y1 y2 4 y3 s.t.
2 y1 3y2 y3 1 3y1 y2 y3 4 5 y1 6 y2 y3 3 y1 0, y2 0, y3为自由变量
4x1 3x2 10
x1 x1
x2 x2
5 5
x1 x2 5
设x 2 x 3 x 4 , x 3 0, x 4 0
则,原问题变为
max Z 4x1 5x2 s.t.
(A) 3x1 2x2 20 4x1 3x2 10 x1 x2 5 x1 0, x2为自由变量
minW 20 y1 10 y2 5 y3 s.t.
3y1 4 y2 y3 4 2 y1 3y2 y3 5 y1 0, y2 0, y3为自由变量
对偶单纯形法(经典运筹学)
X1 X2 X3 X4 X5 检 X3 -2 -1 0 -3 -1 1 0 0 0 0 Z -3
X4
X5
-4 -3 0
1 2 0
1
0
0
1
-6
3
不 可 行
即max Z 2 x1 x2
3 3x1 x 2 x3 4 x 3x x4 6 1 2 s.t x5 3 x1 2 x 2 x1 , x 2 , x3 , x 4 , x5 0
-1/3 0 -1/3 0 2/3 1
X 3 X4 X5 0 -3/5 -2/5 Z+12/5 1 -1 -1 0
X2 0 X1 1
1 0
0 0
1/5 4/5 6/5 -2/5 -3/5 3/5
3 6 最优解X ( ,, 0, 0, 0 ) 5 5 最优值Z 12 5
则取xi0 为入基变量
1
1
令X N 0 得X B B b 0 得基本可行解 X 1 B b,0
1
1
1 、若所有的检验数 CN B 1 N 0 , 则X 1为最优解
2、检验数 C N C B B 1 N中存在一个分量 0, 且该分量对应的列 向量中所有的分量 0, 则目标函数值在可行解 域内无上界
1、确定出基变量: 设br =min{bi | bi <0} 则取br所在行的基变量 为出基变量 即取X4为出基变量 2、确定入基变量: 原则: 保持检验行系数≤0
i i0 设 min | a ri 0 a ri a ri 0
1 21 3
X1 检 -2/3 X3 -5/3 X2 4/3 X5 -5/3 X1 检 0 X3 0 X3 X4 0 -1/3 1 0 0
用对偶单纯形法求对偶问题的最优解
用对偶单纯形法求对偶问题的最优解(共7页)-本页仅作为预览文档封面,使用时请删除本页-用对偶单纯形法求对偶问题的最优解摘要:在线性规划的应用中,人们发现一个线性规划问题往往伴随着与之配对的另一个线性规划问题.将其中一个称为原问题,另一个称为对偶问题.对偶理论深刻揭示了原问题与对偶问题的内在联系.由对偶问题引申出来的对偶解有着重要的经济意义.本文主要介绍了对偶问题的基本形式以及用对偶单纯形法求解对偶问题的最优解.关键词:线性规划;对偶问题;对偶单纯形Using Dual Simplex Method To Get The Optimal Solution Of TheDual ProblemAbstract:In the application of the linear programming, people find that a linear programming problem is often accompanied by another paired linear programming problem. One is called original problem. Another is called the dual problem. Duality theory reveals the internal relationsbetween the dual problem and the original problem. The solution of the dual problem is of a great economic significance. In this paper,we mainly discuss the basic form of the dual problem and how to use dual simplex method to get the optimal solution of the dual problem. Key words: linear programming;dual problem;dual simplex method1 引言首先我们先引出什么是线性规划中的对偶问题.任何一个求极大化的线性规划问题都有一个求极小化的线性规划问题与之对应,反之亦然,如果我们把其中一个叫原问题,则另一个就叫做它的对偶问题,并称这一对互相联系的两个问题为一对对偶问题.每个线性规划都有另一个线性规划(对偶问题)与它密切相关,对偶理论揭示了原问题与对偶问题的内在联系.下面将讨论线性规划的对偶问题的基本形式以及用对偶单纯形法求最优解.在一定条件下,对偶单纯形法与原始单纯形法相比有着显著的优点.2 对偶问题的形式对偶问题的形式主要包括对称形对偶问题[]3和非对称性对偶问题.对称形对偶问题设原线性规划问题为Max1122...n nZ c x c x c x =+++()11112211211222221122...............0.1,2,...,n n n n m m mn n nj a x a x a x b a x a x a x b a x a x a x bx j n +++≤⎧⎪+++≤⎪⎪⎨⎪+++≤⎪≥=⎪⎩()则称下列线性规划问题 Max 1122...m m W b y b y b y =+++()11112211211222221122...............0.1,2,...,n n n n m m mn n nj a y a y a y c a y a y a y c a y a y a y cy j m +++≤⎧⎪+++≤⎪⎪⎨⎪+++≤⎪≥=⎪⎩()为其对偶问题,其中(1,2,...,)i y i m =称其为对偶变量,并称()和()式为一对对称型对偶问题.原始对偶问题()和对偶问题()之间的对应关系可以用表2-1表示.这个表从横向看是原始问题,从纵向看使对偶问题.用矩阵符号表示原始问题()和对偶问题()为 CX Z =max原问题 ⎩⎨⎧≥≤0X b AX ()Yb W =min对偶问题 ⎩⎨⎧≥≤0Y C YA () 其中()12,,...,m Y y y y =是一个行向量. 非对称对偶问题线性规划有时以非对称形式出现,那么如何从原始问题写出它的对偶问题,我们从一个具体的例子来说明这种非对称形式的线性规划问题的对偶问题的建立方法.例1 写出下列原始问题的对偶问题43214765max x x x x Z ++-=⎪⎪⎩⎪⎪⎨⎧=≥-≥++--≤-+--=--+)4,3,2,1(032417281473672432143214321j x x x x x x x x x x x x x j解: 第一约束不等式等价与下面两个不等式约束724321-≤--+x x x x 724321≤++--x x x x 第二个约束不等式照写147364321≤-+-x x x x 第三个不等式变成32417284321≤--+x x x x以 121123,,,y y y y 分别表示这四个不等式约束对应的对偶变量,则对偶问题为 32211131477min y y y y W +++-= ⎪⎪⎪⎩⎪⎪⎪⎨⎧≥≥--+-≥-++--≥+--≥++-0,,,427746173225286322111322111322111322111322111y y y y y y y y y y y y y y y y y y y y令 12111y y y =-,则上式的对偶问题变为:3213147min y y y W ++-=12312312312323162852317647724,0,y y y y y y y y y y y y y y y ++≥⎧⎪-+≥-⎪⎪-+-≥⎨⎪---≥⎪≥⎪⎩无符号限制一般可以证明,若原问题中的某个变量无非负限制,则对偶问题中的相应约束为等式. 3 对偶单纯形法对偶问题求解具有重要的意义,有多种方法解决对偶问题.下面介绍用对偶单纯形法来解决线性规划的对偶问题.先介绍以下几个线性规划的基本概念[]6:基: 已知A 是约束条件的m n ⨯系数矩阵,其秩为m .若B 是A 中m m ⨯阶非奇异子矩阵(即可逆矩阵),则称B 是线性规划问题中的一个基.基向量:基B 中的一列即称为一个基向量.基B 中共有m 个基向量. 非基向量:在A 中除了基B 之外的一列则称之为基B 的非基向量. 基变量:与基向量相应的变量叫基变量,基变量有m 个.非基变量:与非基向量相应的变量叫非基变量,非基变量有n m -个. 由线性代数的知识知道,如果我们在约束方程组系数矩阵中找到一个基,令这个基的非基变量为零,再求解这个m 元线性方程组就可得到唯一的解了,这个解我们称之为线性规划的基本解.首先重新回顾一下单纯形法的基本思想,其迭代的基本思路是:先找出一个基可行解,判断其是否为最优解,如果不是,则转换到另一更优的基可行解,并使目标函数值不断优化,直到找到最优解为止.我们可以用另一种思路,使在单纯形法每次迭代的基本解都满足最优检验,但不一定满足非负约束,迭代时使不满足非负约束的变量个数逐步减少.当全部基变量都满足非负约束条件时,就得到了最优解,这种算法就是对偶单纯形法.因此,单纯形法是从一个可行解通过迭代转到另一个可行解,直到检验数满足最优条件为止.对偶单纯形法是从满足对偶可行性条件出发通过迭代逐步搜索出最优解.在迭代过程中始终保持基解的对偶可行性,而使不可行性逐步消失.现把对偶单纯形法的基本步骤总结如下[3]:第一,把所给的线性规划问题转化为标准型;第二,找出一个初始正则基0B ,要求对应的单纯形表中的全部检验数0j σ≤,但“右边”列中允许有负数;第三,若“右边”列中各数均非负,则0B 已是最优基,于是,已求得最优解,计算终止.否则转为第四步;第四,换基:“右边”列中取值最小(即负的最多)的数所对应的变量为出基变量.计算最小比值θ.最小比值出现在末列,则该列所对应的变量即为进基变量,换基后得新基1B ,以出基变量的行和进基变量列交点处的元素为主元进行单纯形迭代,再转入第三步.下面用一个例子具体说明用对偶单纯形法求线性规划问题最优解的步骤: 例1 求解线性规划问题 min 12315511W y y y =++;1231231233225524,,0y y y y y y y y y ++≥⎧⎪++≥⎨⎪≥⎩添加松弛变量以后的标准型 min 12315511W y y y =++12341235123453225524,,,,0y y y y y y y y y y y y y ++-=⎧⎪++-=⎨⎪≥⎩ 将每个等式两边乘以-1,则上述问题转化为 min 12315511W y y y =++;12341235123453225524,,,,0y y y y y y y y y y y y y ---+=-⎧⎪---+=-⎨⎪≥⎩如果取()045,B Y y y =作为初试基变量,有如下初试单纯形表(表)由此可见,两个基变量45,y y 均取负值,所以,0B 所确定的基本解不是基可行解,从而也就不能用单纯形法求解.下面我们用一种新的方法对偶单纯形法求解此题,并通过例题来说明方法步骤.对偶单纯形法的基本思想:是保证检验数行全部非正的条件下,逐步使得“右边”一列各数变成非负.一旦“右边”一列各数均满足了非负条件(即可行性条件),则就获得最优解.现在,0B 不是可行基(称为正则基),为保证上述方法的实现,可按下面的方法确定出基变量和进基变量.出基变量的确定 可以取任意一个具有负值的基变量(一般可取最小的)为出基变量.在上例中,两个基变量()45,y y 都取负值,且45y =-最小,故 4y 为出基变量.现在考虑出基变量所对应的负所有元素 0ij a <,对每个这样的元素作比值jija σ',令 30min 0j ij j n ij ija a a σσθ≤≤⎧⎫⎪⎪'=≤=⎨⎬''⎪⎪⎩⎭ () 则 3x 为进基变量.在表2-4中,基变量 4y 所在的行有三个ij a '取负值,其值分别为-3,-2,-2.它们对应的检验数分别为-15,-5,-11. 于是212155115min ,,3222a σθ---⎧⎫===⎨⎬---⎩⎭ 由此可知, 2y 为进基变量.主元素为 2ija '=-,对表2-1进行一次迭代便得表2-2,在表2-2的(1)中,基变量 3y 所取之值 2302b '=-<,故 3y 为出基变量.又21215561522min ,,711722a σθ⎧⎫--⎪⎪-===⎨⎬'-⎪⎪--⎩⎭故 3y 是进基变量;,主元为 2172a '=-.对(1)再作单纯形变换,得表3-1之(2).由于它的“右边”已列出全部非负,故它就是最优表.最优解为:137y '=,2137y '=, 3450y y y '''===;最优值 1107w '=.然而在有些问题中,我们很容易找到初始基本解,因此使用对偶单纯形法求解线性规划问题是有一定条件的,其条件是:(1) 单纯形表的b列中至少有一个负数.(2) 单纯形表中的基本解都满足最优性检验.对偶单纯形法与原始单纯形法相比有两个显著的优点:(1) 初始解可以是不可行解,当检验数都非正时,即可进行基的变换,这时不需要引入人工变量,因此简化了计算.(2) 对于变量个数多于约束方程个数的线性规划问题,采用对偶单纯形法计算量较少.因此对于变量较少、约束较多的线性规划问题,可以先将其转化为对偶问题,然后用对偶单纯形法求解.对变量多于约束条件的线性规划问题,用对偶单纯形法进行计算可以减少计算的工作量.因此对变量较少,而约束条件很多的线性规划问题,可先将此问题转化为对偶问题,然后用对偶单纯形法求解.用对偶单纯形法求解线性规划问题的标准型,要求初始单纯形表检验数行的检验数必须全部非正,若不能满足这一条件,则不能运用对偶单纯形法求解.对偶单纯形法的局限性主要是,对大多数线性规划问题来说,很难找到一个初始可行基,因此这种方法在求解线性规划问题时,很少单独应用.参考文献:[1] 吴祈宗.运筹学学习指导及习题集[M] .北京:机械工业出版社,2006.[2] 孙君曼,冯巧玲,孙慧君,等.线性规划中原问题与对偶问题转化方法探讨[J].郑州:工业学院学报(自然科学版),2001,16(2):44~46.[3] 何坚勇.运筹学基础.北京:清华大学出版社,2000.[4] 周汉良,范玉妹. 数学规划及其应用.北京:冶金工业出版社.[5] 陈宝林.最优化理论与算法(第二版) .北京:清华大学出版社,2005.[6] 张建中,许绍吉. 线性规划. 北京:科学出版社,1999.[7] 姚恩瑜,何勇,陈仕平.数学规划与组合优化.杭州:浙江大学出版社,2001.[8] 卢开澄.组合数学算法与分析.清华大学出版社, 1982.[9] Even. Shimon. Algzithmic Combinatorial. The Macmillan Company, New York, 1973.[10] J.P.Tremblay, R.Manohar.Discrete Mathematical Structures with Applications to Computer Science, 1980.[11] 李修睦.图论.华中工学院出版社, 1982.[12] Pranava R G.Essays on optimization and incentive contracts[C].Massachusetts Institute of Technology, Sloan School of Management: Operations Research Center, 2007: 57- 65.[13] Schechter,M.A Subgradient Duality Theorem,J.Math Anal Appl.,61(1977),850-855.[14] Maxims S A. Note on maximizing a submodular set function subject to knap sack constraint[J]. Operations Research Letters,2004, 32 (5) : 41 - 43.[15] Schechter,M.More on Subgradient Duality,J.,71(1979),251-262.[16] Nemhauser GL, Wolsey L A, Fisher M L.An analysis of approximations formaximizing submodular set functionsII[J].Math.Prog.Study, 1978, 8: 73 - 87.[17] SviridenkoM.A note on maximizing a submodular set function subject to knap sack contraint[J].Operations Research Letters,2004, 32: 41 - 43.[18] 卢开澄.图论及其应用.北京:清华大学出版社,1981.[19] 张干宗.线性规划(第二版).武汉:武汉大学出版社,2007.[20] 周维,杨鹏飞.运筹学.北京:科学出版社,2008.[21] 宁宣熙.运筹学实用教程(第二版).北京:科学出版社发行处,2009.。
运筹学-3对偶单纯形法
1.对偶单纯形法的应用条件; 2.出基与进基的顺序; 3.如何求最小比值; 4.最优解、无可行解的判断。 作业:教材P76 T2.7
The End of Section 3
灵敏度分析 Exit
即对偶问题具有无
界解,由性质2a知ik 原问a题Lj 无可行解。aik
§2.3 对偶单纯形法 The Dual Simplex Method
Ch2 Dual Problem
2020年6月20日星期六 Page 9 of 9
本节利用对偶性质6:原问题的检验数与对偶问题的基本 解的对应关系,介绍了一种特殊线性规划的求解方法—对 偶单纯形法。
0
-4
-1
0
-1
— 1.6 — —
2
x2
0.4
0
1 -0.2 -0.4 0.2
x1
2.2
1
0
1.4 -0.2 -0.4
检验数 5.6
0
0 -1.8 -1.6 -0.2
最优解: x2=0.4 x1=2.2
Max z = -5.6
§2.3 对偶单纯形法 The Dual Simplex Method
Ch2 Dual Problem
【解】先将约束不等式化为等式,再两边同乘以(-1), 得到
min z 2x1 3x2 4x3
x1 2x2 x3 x4 3
2x1 x2 3x3 x5 4
x
j
0,
j
1,2,
,5
用对偶单纯形法,迭代过程如下页或看演示(请启用宏)。
§2.3 对偶单纯形法 The Dual Simplex Method
问题中,λ≤j0分母aij<0,
j
对偶单纯形法的计算步骤_实用运筹学:案例、方法及应用_[共3页]
41第2章对偶理论与灵敏度分析即y 是对偶问题(D )的一个可行解。
条件式(2-21)称为对偶可行性条件,即最优性条件式(2-20)与对偶可行性条件式(2-21)是等价的,因此,如果一个原始可行基B 是原问题(P )的最优基,则1=B y c B -就是对偶问题(D )的一个可行解,此时对应的目标函数值1B w=yb =c B -,等于原问题(P )的目标函数值,可知1=B y c B -也是对偶问题(D )的最优解。
若原问题(P )的一个基本解1=0B b x ⎛⎞⎜⎟⎝⎠-对应的检验数向量满足条件式(2-20),即 =(,)=0,0B N N B σσσc c B N -1(-)≤则称x 为(P )的一个正则解。
于是可知,原问题(P )的正则解x 与对偶问题(D )的可行解y 是一一对应的,它们由同一个基B 所决定,我们称这一基为正则基。
因此,我们可以设想另一条求解思路,即在迭代过程中,始终保持对偶问题解的可行性,而原问题的解由不可行逐渐向可行性转化,一旦原问题的解也满足了可行性条件,也就达到了最优解。
也即在保持正则解的正则性不变条件下,在迭代过程中,使原问题解的不可行性逐步消失,一旦迭代到可行解时,即达到了最优解。
这正是对偶单纯形法的思路,这个方法并不需要把原问题化为对偶问题,利用原问题与对偶问题的数据相同(只是所处位置不同)这一特点,直接在反映原问题的单纯形表上进行运算。
2.3.2 对偶单纯形法的计算步骤求解如下标准形式线性规划问题:max =z cx s.t.0Ax =bx ⎧⎨⎩≥对偶单纯形法的计算步骤如下:(1)找一个正则基B 和初始正则解(0)x ;将原问题化为关于基B [不妨设12=(,,,)m B P P P ]的典式,列初始对偶单纯形表,如表2-5所示。
表2-5 对偶单纯形表12 1 2 12121c 1x 1'b 1 0 … 0 1+1'm a 1+2'm a … 1'n a 2c 2x 2'b 01 02+1'm a 2+2'm a … 2'n am c m x'm b 0…1 +1'mm a +2'mm a … 'mn a c j -z j0 0 0+1m σ+2m σ…n σ(2)若1=b'B b -≥0,则停止计算,当前的正则解1=x B b -,即为原问题的最优解;否则转下一步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:对偶单纯形法解线性规划问题小组成员:摘要:运筹学是辅助人们进行科学管理的一种数学方法.而对偶单纯形法是线性规划中重要的数学方法,在简化运算,解决实际问题中具有重要的应用。
它是解决研究线性约束条件下线性目标函数的极值问题的数学理论和方法,广泛应用于军事作战、经济分析、经营管理和工程技术等方面。
为合理地利用有限的人力、物力、财力等资源作出的最优决策,提供科学的依据。
在经济管理、交通运输、工农业生产等经济活动中,提高经济效果是人们不可缺少的要求。
关键词:对偶单纯形法线性规划最优解正文:单纯形法和对偶单纯形法的基本思想:给出一个线性规划问题:Max z = CXAX≤bX≥0其对偶问题是:Min w = YbYA≥CY≥0单纯形法解决线性规划问题的思想是:从问题(1)的一个基解X0开始迭代到另一个基解,在迭代过程中保持基解的可行性,同时它对应的对偶问题(2)的基解Y0= CBB-1的不可行性逐步消失,直到Y0是问题(2)的可行解时,X0就是问题(1)的最优解了。
对偶单纯形法正是基于对称的想法,从一个基解X0开始,X0不是基可行解,但它的检验数全部非正,对应的对偶问题的基解Y0= CBB-1是基可行解;从X0迭代到另一个基解X1,在迭代过程中保持它对应的对偶问题的基解是基可行解,逐步消除原问题基解的不可行性,最终达到两者同时为可行解,也就同时是最优解了。
这就是对偶单纯形法的基本思想。
算法:用对偶单纯形法解决生产资料分配问题的步骤:Step1 找出一组以定基元素x0i和人工变量为基变量的正则解X0,若X0是可行的,则X0是最优解,停止,否则转向STEP2;Step2 确定换出变量x0l,其中x0l=min{x0r;x0r<0};Step3 如果对所有非基变量x0j,βlj≥0,则该问题无可行解,运算停止,否则转向STEP4;Step4 确定换入变量x0k,其中σkβlk=minσtβlt;βlt<0;1≤t≤n+m ; Step5 取x0l为换出变量,x0k为换入变量进行迭代,然后重复上过程直到得到最优解。
程序:#include<stdio.h>#include<math.h>int m,n;float M=1000000.0;float A[100][100];float C[100];float b[100];float seta[100];int num[100];float z=0;void input();void print();int duioudanchunxing1();int duioudanchunxing2(int a);void duioudanchunxing3(int a,int b);void input(){printf("请输入方程组的系数矩阵维数,m行n列:\n"); scanf("%d%d",&m,&n);int i,j;printf("请输入方程组的系数矩阵A(%d行%d列):\n",m,n); for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%f",&A[i][j]);printf("\n请输入初始基变量的数字代码num矩阵:\n"); for(i=0;i<m;i++)scanf("%d",&num[i]);printf("\n请输入方程组右边的值矩阵b:\n");for(i=0;i<m;i++)scanf("%f",&b[i]);printf("\n请输入目标函数各个变量的系数所构成的系数阵C:\n"); for(i=0;i<n;i++)scanf("%f",&C[i]);}int duioudanchunxing1(){int i,k;int flag;float min=0;for(i=0;i<m;i++)if(b[i]>=0)flag=1;else {flag=0;break;}if(flag==1)return -1;for(i=0;i<m;i++){if(min>b[i]){min=b[i];k=i;}}return k;}int duioudanchunxing2(int a){int i,j;int flag=0;float min;for(j=0;j<n;j++)if(A[a][j]>=0)flag=1;else {flag=0;break;}if(flag==1){printf("\n该线性规划无最优解!\n"); return -1;} for(j=0;j<n;j++){if(A[a][j]<0)seta[j]=-C[j]/A[a][j];else seta[j]=M;}min=M;for(j=0;j<n;j++){if(min>=seta[j]){min=seta[j];i=j;}}num[a]=i+1;return i;}void duioudanchunxing3(int p,int q){int i,j,c,l;float temp1,temp2,temp3;c=q;l=p;temp1=A[c][l];b[c]=b[c]/temp1;for(j=0;j<n;j++)A[c][j]=A[c][j]/temp1;for(i=0;i<m;i++){if(i!=c)if(A[c][l]!=0){temp2=A[i][l];b[i]=b[i]-b[c]*temp2;for(j=0;j<n;j++)A[i][j]=A[i][j]-A[c][j]*temp2;}}temp3=C[l];for(i=0;i<n;i++)C[i]=C[i]-A[c][i]*temp3;z=z+b[c]*temp3;}void print(){int i,j;printf("\n--------------------------------------------------------------------------\n");printf("\t");for(i=0;i<n;i++){printf("%.3f\t",-C[i]);}printf("%.3f",z);printf("\n--------------------------------------------------------------------------\n");for(i=0;i<m;i++){printf("x(%d)\t",num[i]);for(j=0;j<n;j++)printf("%.3f\t",A[i][j]);printf("%.3f\n",b[i]);}printf("\n--------------------------------------------------------------------------\n");}main(){int i,j=0;int p,q;input();for(i=0;i<m;i++){if(A[i][num[i]-1]<=0){b[i]=-b[i];for(j=0;j<n;j++)A[i][j]=-A[i][j];}}printf("\n--------------------------------------------------------------------------\n");printf("\t");for(i=0;i<n;i++)printf("X(%d)\t",i+1);printf("RHS\n");while(1){q=duioudanchunxing1();if(q==-1){printf("\n所得解已经是最优解!\n");print();for(i=0;i<m;i++){printf("x(%d)=%.3f\t",num[i],b[i]);}printf("z=%.3f",z);break;}print();p=duioudanchunxing2(q);if(q==-1) break;duioudanchunxing3(p,q);}}流程图:duioudanchunxing1();duioudanchunxing2(int a);10duioudanchunxing3(int a,int b);11参考文献:[1]胡运权,甘应爱 .运筹学教程[M].北京:清华大学出版社,2009.[2]王周宏.运筹学基础[M].北京:清华大学出版社,北京交通大学出版社,2010.[3]何钦铭,颜晖.C语言程序设计[M].浙江:浙江科学技术出版社,2003.[4]吕凤煮.C++语言程序设计教程[M].北京:人民邮电出版社.2009.12。