运筹学——解对偶单纯形法

合集下载

运筹学及其应用4.3 对偶单纯形法

运筹学及其应用4.3 对偶单纯形法
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)-对偶与对偶单纯形法

应⽤运筹学基础:线性规划(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$,可以看作是对原问题的每个限制,都⽤⼀个变量来表⽰。

运筹学对偶单纯形法

运筹学对偶单纯形法
-5/2 -1/2
-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章 对偶理论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讲:对偶单纯形法及灵敏度分析简介

运筹学第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的典则形式
对偶单纯形法是求解对偶规划的一种方法 × 对偶单纯形法:利用对偶理论得到的一个 求解线性规划问题的方法
单纯形法(原始单纯形法)的两个条件:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档