61阅读

对偶单纯形法-对偶单纯形法:对偶单纯形法-基本内容

发布时间:2017-12-13 所属栏目:对偶单纯形法

一 : 对偶单纯形法:对偶单纯形法-基本内容

对偶单纯形法则是从满足对偶可行性条件出发通过迭代逐步搜索原始问题的最优解。单纯形法是从原始问题的一个可行解通过迭代转到另一个可行解,直到检验数满足最优性条件为止。在迭代过程中始终保持基解的对偶可行性,而使不可行性逐步消失。即知y=cBB-1(称为单纯形算子)为对偶问题的可行解。

对偶单纯形法_对偶单纯形法 -基本内容

(www.61k.com](Dual SIMPLEX Method)1954年美国数学家C.莱姆基提出对偶单纯形法。单纯形法是从原始问题的1个可行解通过迭代转到另1个可行解,直到检验数满足最优性条件为止。对偶单纯形法则是从满足对偶可行性条件出发通过迭代逐步搜索原始问题的最优解。在迭代过程中始终保持基解的对偶可行性,而使不可行性逐步消失。设原始问题为min{cx|Ax=b,x≥0},则其对偶问题(Dual Problem)为 max{yb|yA≤c}。当原始问题的1个基解满足最优性条件时,其检验数cBB-1A-c≤0。即知y=cBB-1(称为单纯形算子)为对偶问题的可行解。所谓满足对偶可行性,即指其检验数满足最优性条件。因此在保持对偶可行性的前提下,一当基解成为可行解时,便也就是最优解。

二 : 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

对偶单纯形法 第五节 对偶性及对偶单纯形法

三 : 单纯形法:单纯形法-正文,单纯形法-对偶单纯形法

单纯形法,可按现代电子计算机标准程序求解线性规划模型的一般方法。分为代数形式的单纯形法和表格形式的单纯形法。前者提供基本算法所依据的逻辑规则,适用于在电子计算机上进行求解运算;后者将变量和数据列成表格,适用于笔算。两者在数学上是等价的。单纯形法是由美国数学家G.B.丹齐克(1914~)于1947年提出来的,它与苏联数学家Л.Β.坎托罗维奇(1912~)于1938年提出的解乘数法相类似。

单纯形_单纯形法 -正文

根据单纯形法的原理,在线性规划问题中,决策变量(控制变量)x1x2,…xn的值称为1个解,满足所有的约束条件的解称为可行解。使目标函数达到最大值(或最小值)的可行解称为最优解。这样,1个最优解能在整个由约束条件所确定的可行区域内使目标函数达到最大值(或最小值)。求解线性规划问题的目的就是要找出最优解。
可能出现下列情况之一:①存在着1个最优解;②存在着无穷多个最优解;③不存在最优解,这只在2种情况下发生,即没有可行解或各项约束条件不阻止目标函数的值无限增大(或向负的方向无限增大)。
要缩小对最优解的搜索范围,就必须认识最优解的一般性质,最优解如果存在的话,则它必然处于可行区域的边界上。
任何一项约束条件的边界方程是用“=”号来替换该约束条件中的“≤”或“≥”号而得到的。每1个边界方程确定1个超平面。因此,可行区域的边界是由那些满足1个或同时满足几个边界方程(即处在作为边界的1个或几个超平面上)的可行解所组成,而且最优解必在其中。最优解不仅是在可行区域的边界上,而且也在这个区域的1个隅角上。1个可行解,如果不处在由另2个可行解连接起来的任何线段上,它就是1个角点可行解。如果连接2个角点可行解的线段处在可行区域的边界上,这2个角点可行解就称为相邻的角点可行解。角点可行解具有下列3个重要性质:①如果存在着1个最优解,那么它必定是角点可行解。如果存在有多个最优解,那么至少有2个最优解必定是相邻的角点可行解。②只存在有限个数的角点可行解。③如果1个角点可行解按目标函数值来衡量时比其所有的相邻角点可行解更好一些,那它就比所有其他角点可行解都更好,也就是最优解。
上述这些性质构成单纯形法的原理基础。最后1个性质的重要性在于它为1个角点可行解是否是最优解提供了1种简便的检验标准,因而毋需列举所有的可行解。单纯形法正是利用了这个性质,只要检查少数的角点可行解,并且一旦这个最优性检验获得通过就可立即停止运算。
单纯形法的运算步骤可归结为:①起始步骤──在1个角点可行解上开始。②迭代步骤──移动至1个更好一些的相邻角点可行解(根据需要反复进行这1步骤)。③停止法则──在当前角点可行解比所有相邻角点可行解都更好些时停止。当前角点可行解就是1个最优解。
单纯形法的优点及其成功之处在于它只需要较少的有限次数的迭代,就可以找到最优解。

单纯形_单纯形法 -对偶单纯形法

(DualSimplexMethod)1954年美国数学家C.莱姆基提出对偶单纯形法。单纯形法是从原始问题的1个可行解通过迭代转到另1个可行解,直到检验数满足最优性条件为止。对偶单纯形法则是从满足对偶可行性条件出发通过迭代逐步搜索原始问题的最优解。在迭代过程中始终保持基解的对偶可行性,而使不可行性逐步消失。设原始问题为min{cx|Ax=b,x≥0},则其对偶问题(DualProblem)为max{yb|yA≤c}。当原始问题的1个基解满足最优性条件时,其检验数cBB-1A-c≤0。即知y=cBB-1(称为单纯形算子)为对偶问题的可行解。所谓满足对偶可行性,即指其检验数满足最优性条件。因此在保持对偶可行性的前提下,一当基解成为可行解时,便也就是最优解。

单纯形_单纯形法 -其他信息

数学优化中,由GeorgeDantzig发明的单纯形法是线性规划问题的数值求解的流行技术。有1个算法与此无关,但名称类似,它是Nelder-Mead法或称下山单纯形法,由Nelder和Mead发现(1965年),这是用于优化多维无约束问题的1种数值方法,属于更一般的搜索算法的类别。
这二者都使用了单纯形的概念,它是N维中的N+一个顶点的凸包,是1个多胞体:直线上的1个线段,平面上的1个三角形,三维空间中的1个四面体,等等。

四 : 第五节 对偶性及对偶单纯形法

第五节 对偶性及对偶单纯形法

? 对偶线性规划

? 对偶理论
? 原始和对偶问题的解及其经济意义

? 对偶单纯形法

1.对偶线性规划
? 定义2.5.1
– 给定一个一般形式的LP问题,称它为原始LP问 题,它的对偶问题定义如下:
原始( P ) 对偶( D )

?????min??cT x ?a T i x=b i ? T ?a i x ? b i s.t.?? ?xj ? 0 ? x 任意 ? j

max??bT w

i ? 1, , p i ? p ? 1, , m j ? 1, , q j ? q ? 1, , n

? wi 任意 ? ? wi ? 0 s.t. ? T ? Aj w ? c j ? AT w ? c j ? j

1.对偶线性规划续
? 标准形式线性规划的对偶规划
考虑线性规划的标准形式
(Ⅰ)
m i nc ? x ? Ax ? b s . t .? ?x ? 0

其中 x, c ? R n , b ? R m , A ? R m?n 。
~ 是最优基可行解,其对应的基阵为 B 则 根据单纯形理论,若 x ? ?1 ? ? ?1 ? 其 检 验 数 为 ? B ? cB B B ? cB ? 0 , ? N ? cB B N ? cN ?0 , 同 时 ~ ? 0 ,最优值为 c ? x ~ ? B ?1b , x ~ ? c ? B ?1b 。如果令 ? ~ ? c ? B ?1 ,则有 x N B B B

?T A ? c ? 0

bT ? ? c ? x

标准形式线性规划的对偶规划
~ 是下列规划的可行解 同时 ?

( Ⅱ)

max bT ? s.t. AT w ? c

对于规划(Ⅰ)的任意可行解 x 和规划(Ⅱ)的任意可行解 ? , 由 于 x ? 0 所以有
?T b ? ?T Ax ? c? x
~ 是规划(Ⅱ)的最优解, 由此可知 ? 反之亦然。 两个规划的最有 解之间存在着密切的关系,通过一个规划可以得到另一个规划的 最优解。同时从形式上两者之间也有本质的相似,给定 ( A, b, c ) 后 两个规划相伴而存在,因而称两个规划互为对偶规划。

规范形式的对偶规划
规范形式的线性规划
m i nc ? x m inc ? x ? Ax ? Iy ? b s .t .? ? x, y ? 0

(P )

? Ax ? b s .t . ? ?x ? 0

其对偶规划为
max bT ? s.t.?? T ( A, ? I ) ? (c ? , 0)
max bT ? ? AT ? ? c (D) s.t. ? ?? ? 0

一般形式的对偶规划
对于一般形式的线性规划
minz ? c1 x1 ? c 2 x 2 ? ? ? c n x n ?a i 1 x1 ? a i 2 x 2 ? ?a in x n ? bi ; i ? 1,2,..., p ? ?a i 1 x1 ? a i 2 x 2 ? ?a in x n ? bi ; i ? p ? 1,...,m s.t .? ? x j ? 0; j ? 1,2,...,q ? x j 无限制; j ? 1,2,...,q ?

通过把其转化为标准形式同样可以得到其对偶规划为:
max bT ? ? Aj T ? ? c j ; j ? q ? 1,..., n ? ? s.t. ? Aj T ? ? c j ; j ? 1, 2,..., q ? ? ? 0; i ? p ? 1,..., m ? ? i

对偶规划实例
? 例2.5.1

min 5 x1 ? 21x3 ? x1 ? x2 ? 6 x3 ? x4 ? 2 ? s.t. ? x1 ? x2 ? 2 x3 ? x5 ? 1 ? x ; j ? 1, 2, ,5 ? j

例 2.5.1

min5 x1 21x 3 ? x1 ??x 2 ? 6 x 3 ? x 4 ? 2 ? s.t .? x1 ? x 2 ? 2 x 3 ? x 5 ? 1 ? ? x j ; j ? 1,2,...,5
其对偶规划为

max2? 1 ? 2

max2?

1 ? 2

?2 ? 5 ?? 1 ?? ? ?? ? 1 ? ? 2 ? 0 ? s.t .?6? 1 ? 2? 2 ? 21 ?? ? ? 0 ? 1 ? ?? ? 2 ? 0

?2 ? 5 ?? 1 ?? ? ?? ? 1 ? ? 2 ? 0 ? s.t .?6? 1 ? 2? 2 ? 21 ?? ? 0 ? 1 ? ?? 2 ? 0

min5 x1 21x 3 ? x1 ??x 2 ? 6 x 3 ? 2 ? s.t .? x1 ? x 2 ? 2 x 3 ? 1 ? ? x j ; j ? 1,2,3



2.对偶理论
定理 2.5.1 如果一个线性规划有最优解,则其对偶规划也有最优解,且它们的最优 值相等。

证明

定理2.5.1证明
证明: 对于标准形式的线性规划(Ⅰ)的任意可行解 x 和它的 对偶规划(Ⅱ)的任意可行解 ? ,由于 x ? 0 所以有

?T b ? ?T ( Ax) ? c? x
~ 是 ( Ⅰ ) 的最优基可行解,其对应的基阵为 B. 令 若x ~ ? c ? B ?1 ,则 ? ~ 是(Ⅱ)的可行解. 根据上面的不等式可知: ? B

(Ⅱ)有最优解。同时又有 ? b ? c x ,所以它们的最优值 相等。
T ?

推论 2.5.1 若 x 和 ? 分别是原规划和对偶规划的可行解,则 x 和 ? 分别是原规划 和对偶规划的最优解的充要条件是 c? x ? ?T b 定理 2.5.2 线性规划的对偶规划的对偶规划是原始规划。

证明

定理2.5.2证明
证明:
max bT ? s.t. ? T A ? c ?

min? b ?? ? b ?? ? ? A ?? ? ??A ?? ? ? y ? c s.t .? ? ? ?? ,? ? 0

max x ?c s.t. x ? ( A? ,? A? , I ) ? (?b, b,0)
maxc ? x ? x ? A? ? ?b ? ? s.t .?? x ? A ? ? b ? ? ?x ? 0 max? c ? x ?? x ? A? ? b ? ? s.t .? x ? A ? ? ? b ? ? ?? x ? 0
minc ? x ? Ax ? b s . t .? ?x ? 0

2.对偶理论续
定理 2.5.3 给定一个原规划和对偶规划,则下面三种情况必有其一 ( 具体见表 2.5.1): 1.都有最优解 2.都无可行解 3.一个有可行解另一个无界 定理 2.5.4(互补松紧性) 若 x 和 ? 分别是原规划和对偶规划的可行解, 则 x 和 ? 分别是原规划和对偶规 划的最优解的充要条件是,
ui ? ?i (aiT x ? bi ) ? 0; i ? 1,2,..., m

v j ? (c j ? ?T Aj ) x j ? 0; j ? 1,2,..., n

证明

定理2.5.4证明
证明: x 和 ? 分别是原规划和对偶规划的最优解的充要条件是
c? x ? ?T b .

x 和 ? 分别是原规划和对偶规划的可行解,则
?T b ? ?T Ax ? c? x

所以
?i (aiT x ? bi ) ? 0; i ? 1,2,..., m
(c j ? ?T Aj )x j ? 0; j ? 1,2,..., n
c? x ? ?T b

2.对偶理论-例题
? 例题 2.5.2
考虑在例2.5.1给出的原始问题和其对偶问题。

由于原始问题是标准形式, 故互补松紧条件 (2.5.13) 自动满足。 在例 2.4.1 中, 已求出这个原始 LP 问题的最优解为 x ? ( , 0, , 0, 0)T , 其中 x1 ? 0, x3 ? 0 所 以(2.5.14)变为
1 2 1 4

c1 ? wT A1 ? 0 c3 ? wT A3 ? 0
即对偶问题最优解必使第一个和第

三个约束取等式,有

??w1 ? w2 ? 5 6w1 ? 2w2 ? 21
由此可解出 w1 ?
11 9 31 , w2 ? ,其对应的目标函数值为 ,由定理 2.5.4 知, 4 4 4

点击左 侧显示

此为对偶问题的最优解。

3.原始和对偶问题的解及其经济意义
? 对偶问题与原问题
?一个线性规划的规模较大时或许改为求解它的

对偶问题反而比较适当

? 影子价格

对偶单纯形法
? 对偶单纯形法的计算步骤
第1步 列出初始单纯形表(它含有原问题的一个基本解和对偶问题的一 个可行解) ; 第2步 第 3 步
T z ? cB b

求 br

? min ?bi ? i ? ??

?m? ;

若 br ? 0 ,停止。已找到原始问题最优解 x ? ?

? xB ? ? b ? ? ? ? ? 及最优值 x ? N ? ?0 ?

; 若 arj ? 0, j ? 1, , n ,则原始问题无可行解,停止; 求 min ? ?
?? j ? arj ? ? arj ? 0, j ? 1, ? ? ? , n? ? k ? ark ?

第4步 第5步 第6步



以 ark 为转轴元做一次旋转变换,转到第 2 步

对偶单纯形法续
? 例2.5.4
运用对偶单纯形法解下列规划
m i nx1 ? x 2 ? x 3 ?3 x1 ? x 2 ? x 3 ? 1 ? s .t .? ? x 1 ? 4 x 2 ? x 3 ? 2 ?x , x , x ? 0 ? 1 2 3



例2.5.4解答
首先化为标准形式
minx1 ? x 2 ? x 3 ?3 x1 ? x 2 ? x 3 ? x 4 ? 1 ? s.t .?? x1 ? 4 x 2 ? x 3 ? x 5 ? 2 ? ? x1 , x 2 , x 3 , x 4 , x 5 ? 0

然后进行迭代。




五 : 线性规划的对偶单纯形法用c语言实现

minZ=x1+x2+x3

s.t3x1+x2+x3>=1

-x1+4x2+x3>=2

x1,x2,x3>=0

先将其化为标准型

minZ=x1+x2+x3

s.t3x1+x2+x3-x4=1

-x1+4x2+x3-x5=2

x1,x2,x3>=0

请输入方程组的系数矩阵A(2行5列):
3 1 1 -1 0
-1 4 1 0 -1

请输入初始基变量的数字代码num矩阵:
4 5

请输入方程组右边的值矩阵b:
1 2

请输入目标函数各个变量的系数所构成的系数阵C:
1 1 1 0 0

--------------------------------------------------------------------------
X(1)X(2)X(3)X(4)X(5)RHS

--------------------------------------------------------------------------
-1.000 -1.000-1.000 0.0000.000 0.000
--------------------------------------------------------------------------
x(4)-3.000 -1.000-1.000 1.0000.000 -1.000
x(5)1.000 -4.000-1.000 0.0001.000 -2.000

--------------------------------------------------------------------------

--------------------------------------------------------------------------
-1.250 0.000-0.750 0.000-0.250 0.500
--------------------------------------------------------------------------
x(4)-3.250 0.000-0.750 1.000-0.250 -0.500
x(2)-0.250 1.0000.2500.000 -0.2500.500

--------------------------------------------------------------------------

所得解已经是最优解!

--------------------------------------------------------------------------
0.0000.000 -0.462-0.385 -0.154 0.692
--------------------------------------------------------------------------
x(1)1.0000.0000.231 -0.3080.077 0.154
x(2)0.0001.0000.308 -0.077-0.231 0.538

--------------------------------------------------------------------------
x(1)=0.154x(2)=0.538z=0.692Press any key to continue

#include<stdio.h>
#include<math.h>
#define m 2
#define n 5
float M=1000000.0;
float A[m][n];
floatC[n];
floatb[m];
float seta[n];
intnum[n];
float z=0;
void input();
void print();
int duioudanchunxing1();
int duioudanchunxing2(int a);
void duioudanchunxing3(int a,int b);

void input()
{
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]);

}

intduioudanchunxing1()
{
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;
}

intduioudanchunxing2(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;
}

voidduioudanchunxing3(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[l][i]*temp3;
z=z+b[c]*temp3;

}

void print()
{
int i,j;
printf("n--------------------------------------------------------------------------n");
printf("t");
for(i=0;i<n;i++)
{
printf("%.3ft",-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("%.3ft",A[i][j]);
printf("%.3fn",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("RHSn");

while(1)
{
q=duioudanchunxing1();
if(q==-1)
{
printf("n所得解已经是最优解!n");
print();
printf("x(%d)=%.3ft",num[i],b[i]);
printf("z=%.3f",z);
break;
}
print();
p=duioudanchunxing2(q);
if(q==-1) break;
duioudanchunxing3(p,q);
}
}

本文标题:对偶单纯形法-对偶单纯形法:对偶单纯形法-基本内容
本文地址: http://www.61k.com/1133416.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1