配色: 字号:
第二章 线性规划的对偶性理论
2022-11-23 | 阅:  转:  |  分享 
  
第二章 线性规划的对偶性理论

与灵敏度分析

§1 对偶问题

对偶理论是线性规划的内容之一。任何

一个线性规划都有一个伴生的线性规划,称

之为原规划对偶规划问题。下面通过实例引

出对偶问题,然后给出对偶线性规划的定

义。

上一章例1提出的线性规划问题为:某

工厂生产Ⅰ,Ⅱ型两种型号的计算机,每生

产一台Ⅰ型和Ⅱ型计算机所需的原料、工时

和提供的利润以及资源的限制量如下表:

资源 产品 I II 总量

原料 2 3 100

工时 4 2 120

利润 6 4

试确定获利最大的生产方案。

该问题的线性规划数学模型为:

12max64Zxx=+

12

12

12

23100

42120

,0

xx

xx

xx

+≤?

? +≤?

? ≥?



假如现在工厂自己不生产产品Ⅰ、Ⅱ,

而将可利用的资源都出让给其他企业,试确

定这些资源的最低可接受价格。

最低可接受价格是指按这种价格转让

资源比自己生产产品Ⅰ、Ⅱ合算的价格。

设 12,yy为这两种资源的价格,为了使工

厂出让资源合算,显然应该使出让原来生产

一台Ⅰ的资源所得的收入不低于自己生产

一台产品Ⅰ的利润,即 12246yy+≥,对于产

品Ⅱ,同样可以建立类似的约束条件

12324yy+≥.

显然在满足这两个约束的前提下,价格

越高,该工厂越合算,但价格太高,接受方

面又不会愿意购买。因此,我们需要确定的

价格是使工厂合算的最低价格,故应建立目

标函数:

12min10 120Wyy=+

12

12

12

246

324

,0

yy

yy

yy

+≥?

? +≥?

? ≥?



原来: 12max64Zxx=+

12

12

12

23100

42120

,0

xx

xx

xx

+≤?

? +≤?

? ≥?



工厂决策者所面临的两个问题的数学

模型都是线性规划,它们在结构上具有某种

对称性,称后一个线性规划为原规划的对偶

问题。

定义:称线性规划

min

() 0

WYb

YACD

Y

=

≥?

? ≥?

为原规划问题

max

() 0

ZCX

AXbL

X

=

≤?

? ≥?

的对偶规划问题。

§2 对偶理论

本节将进一步讨论线性规划问题的对

偶问题的性质

性质 1(对称性)对偶问题(D)的对偶是

原问题(L)

性质 2 若原问题第i个约束为等式,则其对

偶问题中第i个变量为自由变量;反之,若原

问题的第j个变量是自由变量,则其对偶问

题的第j个约束为等式。

线性规划的原问题与对偶问题的变换规则为:

原问题(或对偶问题) 对偶问题(或原问题)

目标函数max Z

变量 00

n?

?≥?

?≤

?

??



无约束



目标函数minW

约束条件

n?

?≥?

?≤

?

?=?





约束条件

m?

?≤?

?≥

?

?=?



变量 00

m?

?≥?

?≤

?

??



无约束



例1 试求下述线性规划原问题的对偶问题

1234min235Zxxxx=+?+

1234

134

234

1234

35

224

6

0,,0,

xxxx

xxx

xxx

xxxx

+?+≥?

? +?≤?

?++=

?

?≤≥? 无约束



解:原问题的对偶为:

123max546Wyyy=++

12

13

123

123

123

22

3

325

1

0,0,

yy

yy

yyy

yyy

yyy

+≥?

?+≤

?

?++≤??

? ?+=

?

≥≤?? 无约束



线性规划原问题与其对偶问题不仅有

形式上的对称性,而且它们的解之间也有紧

密的联系。

性质3(弱对偶性)设 ,XY分别是原问题(L)

和对偶问题(D)的任一可行解,则CXYb≤ .

性质4 设X是原问题的可行解,Y是对偶问

题的可行解,且CXYb= ,则X,Y是各自问

题的最优解.

性质5 若原问题

max

() 0

ZCX

AXbL

X

=

≤?

? ≥?

有最优解,则对偶问题也有最优解,且它们

的最优值相等.

这里 1BYbCXCBb?==Q , 1BYCB?∴= 是

对偶问题的最优解。

对偶最优解 Y 实际是原问题松弛变量

检验数的相反数。

§3 对偶问题的经济意义—影子价格

在单纯形算法中,设 1 ,0BNXBbX?==是

最优解,最优值 1BZCBb??= ,取

1

12(,,)BmYCByyy

?==L ,

则Y是对偶最优解.

下面讨论 (1,2,)iyim= L 的经济意义:

设 ib有单位增量 1ib?=,其它参数不变,

则 1((0,0,,0))TBiiiZZC bbZyb?+?=+?=+?LL ,

即 iiiZyby?=?=

所以 iy表示在原问题已取得最优解的情

况下,第 i种资源改变一个单位时总收益的变

化值,也可以说 iy是对第i种资源的一种价格

估计。这种价格估计并不是第i种资源的实际

价值或成本,而是由该企业在生产产品的收

益来估计所用资源的单位价值,称为影子价

格。

由于影子价格是指资源增加时对最优

收益的贡献。所以,也称为资源的机会成本

或边际成本。它表示资源在最优产品组合

时,具有“潜在价值”或“贡献”,资源的影子

价格是与具体的企业及产品有关的,同一种

资源,在不同企业,或生产不同产品对应的

影子价格并不相同。

从对偶问题引出的实例中,可以看出,

影子价格也是企业出让资源的最低价格,企

业按这种价格出让资源与用这种资源自己

生产获得的收益是相等的。

影子价格是经济学中重要概念,将一个

企业拥有资源的影子价格与市场价格相比

较,可以决定是购入还是出让该种资源。当

某资源的市场价格低于影子价格时,企业应

买进资源,用于扩大生产;而当市场价格高

于影子价格时,则企业的决策者应将已有的

资源卖掉。这样获利会更多。在考虑一个地

区或一个国家某种资源的进出口决策中,资

源的影子价格是影响决策的一个重要因素。

利用单纯形表求解线性规划,在求解最

优解的同时,很容易得到问题的各种资源的

影子价格。某资源的影子价格,就是该资源

对应的约束条件所加松弛变量在最优表中

的检验数的相反数。

§4 对偶单纯形法

在单纯形法中,原问题的最优解满足:

(1)是基本解

(2)可行( 1 0BXBb?=≥)

(3) 1 0BCC AYAC??≤?≥.即对偶解可行

单纯形法是从满足(1)( 2 )的一个基

可行解出发,转换到另一个基可行解,一直

迭代到(3)得到满足,即对偶解可行为止。

而对偶单纯形法则是从满足(1)( 3 )

的一个对偶可行解出发,以基变量值是否全

非负为检验数,连续迭代直到(2)得到满

足,即原问题的基解可行为止。

两种算法结果是一样的,区别是对偶单

纯形法的初始解不一定可行,只要求所有检

验数都非正,在保证所得解始终是对偶可行

解的前提下,连续迭代到原问题的基解可

行,从而取得问题的最优解。

对偶单纯形法计算步骤如下:

步骤 1:确定原问题(L)的初始基 B,使所

有检验数 1 0jjBjCCBPs ?=?≤,即 1BYCB?=

是对偶可行解,建立初始单纯形表。

步骤2:检查基变量的取值,若 1 0BXBb?=≥,

则已得到最优解,计算停;否则求

{ }111min()()0()ilBbBbBb???<= ,确定单纯形

表第L行对应的基变量为旋出变量。

步骤3:若所有 0lja ≥ ,则原问题无可行解,

计算停;否则,计算

}{min/0/jljl klkaaaqss=<=

(这里注意q的符号),确定对应的 KX 为旋

入变量。

步骤 4:以 lka 为主元作(L,K)旋转变换,

得新的单纯形表,转步骤2.

可以证明,按上述方法进行迭代,所得解始终是对偶可行

解。

例2 用对偶单纯形法求解下列问题

1234min1281612Zxxxx=+++

123

124

1234

242

2243

,,,0

xxx

xxx

xxxx

++≥?

? ++≥?

? ≥?



解:令ZZ=? ,则问题可变为:

1234max1281612Zxxxx=????

1235

1246

123456

242

2243

,,,,,0

xxxx

xxxx

xxxxxx

???+=??

????+=??

? ≥?



取 56(,)BPP= 为初始基,易见所有检验数

0js≤,从而可建立单纯形表,计算结果如

下:



C 128161200????

BC BX

1Bb?

123456XXXXXX

0

0

5

6

X

X

2

3

?

?

214 0 1 0

22 0 0 [4] 1

???

??

s 12816120 0????

0

12?

5

4

X

X

2

3/4

? 4 0 1 0

1/21/2 0 1 0

[1

1

]

/4

???

s 62 160 0 3????

8

12

?

?

2

4

X

X

2

1/4?

2 1 4 0 -1 0

1102 11 -

2] 4[ 2 ??



s 2 08 02 3????

8

12

?

?

2

1

X

X

2

1/2

0 1-4 4 1 1

1 04 -21 1/2

?

?

s 0 0 0 44 2???

最优解: 12341,1,0,min142XXXXZ=====

如果选 3X进基,

2314

31,,0,min14

28XXXXZ=====

本例如果用单纯形法计算,确定初始基

可行解时需引入两个人工变量,计算量要多

于对偶单纯形法。

一般情况下,如果问题能够用对偶单纯

形法计算,计算量会少于单纯形法。但是,

对偶单纯形法并不是一种普遍算法,它有一

定的局限性,不是任何线性规划问题都能用

对偶单纯形法计算的。当线性规划问题具备

下面条件时,可以用对偶单纯形法求解:

(1)问题标准化后,价值系数全非正

(2)所有约束全是不等式

§5 灵敏度分析

在线性规划问题中,目标函数,约束条

件的系数以及资源的限制量等都当做确定

的常数,并在这些系数值的基础上求得最优

解。但是实际上,这些系数或资源限制量并

非一成不变的,它们是一些估计或预测的数

字,比如价值系数随着市场的变化而变化,

约束系数随着工艺的变化或消耗定额的变

化而变化,计划期的资源限制量也是经常变

化的。当这些系数发生变化时,最优解会受

到什么影响?最优解对哪些参数的变动最

敏感?搞清楚这些问题,会使我们在处理实

际问题时,具有更大的主动性和可靠性。

分析线性规划模型的某些系数或限制

的变动对最优解的影响,被称作灵敏度分

析。

灵敏度分析主要解决两个问题:

(1)这些系数在什么范围内变化时,原先

求出的最优解或最优基不变?即最优解相

对参数变化的稳定性。

(2)如果系数的变化引起了最优解的变化,

如何用最简便的方法求出新的最优解。

下面分别介绍各类参数变化的灵敏度分析

5.1 目标函数中价值系数C的分析

分别就非基变量和基变量的价值系数

两种情况来讨论:

1、设非基变量 jX 的价值系数 jC ,有增

量 jC? ,其它参数不变,求 jC? 的范围使原最

优解不变。由于 jC 是非基变量的价值系数,

因此它的改变仅仅影响检验数 js 的变化,而

对其它检验数没有影响。

由 1 0jjjBjjjCCCBPCss?=+??=+?≤

知,当 jjC s?≤? 时,原最优解不变。

2、设基变量 BrX (r行)的价值系数 BrC

有增量 BrC? ,其它参数不变,求 BrC? 的范围

使原最优解不变。由于 BrC 是基变量的价值系

数,因此它的变化将影响所有非基变量检验

数的变化。

由新的非基变量检验数:

1

1

[(00)]

(00)

0

jjBBrj

jBrj

jrjBr

CCCBP

CBP

aC

s

s

s

?

?

=?+?

=??

=??≤

LL

LL

当max0min0jjrjBrrj

r rj

aCaaass????????>≤?≤
????????

时,原最优解不变。

例3 已知第一章例1的最优解及最优值如下:

C 6 4 0 0

BC BX

1Bb?

1X 2X 3X 4X

0

0

3

4

X

X

100

120

2

[4]

3

2

1

0

0

1

s 6 4 0 0

4

6

2

1

X

X

20

20

0

1

1

0

1/2

1/4?

1/4

3/8

?

s 0 0 1/2? 5/4?

(1)求使原最优解不变的 2C? 的变化范围

(2)若 1C变为12,求新的最优解

解(1): 2C 即 1BC ,是基变量价值系数,用非

基变量的检验数与单纯形表 2X 所在行相应

元素相比得:

2

5124

11C

??≤?≤

? ,即 215C?≤?≤,

最优值不变

(2): 1

5 142

3148 C

??≤?≤

? ,

即 110 23 C?≤?≤, 18 83 CC≤+?≤原 .

1C不在这个变化范围内,所以最优解发生了

变化。

将 1 12C = 代入原最优解,重新计算检验

数及最优值

C 12 4 0 0

BC BX

1Bb?

1X 2X 3X 4X

4

12

2

1

X

X

20

20

0

1

1

0

[1/2]

1/4?

1/4

3/8

?

s 0 0 1/2? 7/2?

0

12

3

1

X

X

40

30

0

1

2

1/2

1

0

1/1

1/4

?

s 0 2? 0 3?

新的最优解: 132430,40,0.XXXX====

最优值: 360Z = .

5.2 资源系数b的分析

设 rb有增量 rb? ,其它参数不变,则 rb的

变化将影响基变量所取的值,但对检验数没

有影响,记新的基变量为 BX , 则

1()

BXBbb

?=+? ,这里 (0,,,0)T

rbb?=?LL,

只要 0BX ≥ ,最终表中检验数不变,则最优

基不变。由此可知,当 rb? 所满足的范围为:

11111

0

()

0

rBbbBbBbBbB b

?????

??

??

??

+?=+?=+???

??

??

??

M

M



1 1

1

0

0

r rr

ir irrr r

mr mrr

ab a

Bbbab a

ab a

?

???????

??????

????

????==???? ?

????

??????

???? ? ????

M MM

M M M



若 1()0,1,2,,irirBbabim? +?≥=L .由此可

得 1(),1,2,,ir riabBbim??≥?=L .



1()

0,;iir r

ir

Bbab

a

??

>?≥

1()

0,.iir r

ir

Bbab

a

??


于是得到

11()()

max0min0.iiirirr

i ir

BbBbaba

aa

??????

>≤?≤
????



结果说明, rb? 的变化范围是由原基变量

的相反数与 1B? 的第 r 列元素的比值所确定

的。

如果 rb? 不在上述变化范围内,则变化后

的基变量所取值 BX 肯定会出现负分量。但由

于 rb? 不影响检验数的变化,因此可以用 BX

取代原最优解 1BXBb?= ,以该解为初始解,

用对偶单纯形法继续求解。

例 4 已知线性规划问题的初始解及最优解见例 3.

(1)求 1b? 的范围,使原初始基不变;(2)若 1b变

为200,,试求新的最优解

C 6 4 0 0

BC BX

1Bb?

1X 2X 3X 4X

0

0

3

4

X

X

100

120

2

[4]

3

2

1

0

0

1

s 6 4 0 0

4

6

2

1

X

X

20

20

0

1

1

0

1/2

1/4?

1/4

3/8

?

s 0 0 1/2? 5/4?

解:(1)由已知单纯形表,

11

11

2024,

13 20

48

BBb??

???

????==

??????

???



所以 11 1

1

20 2 0

201

4

BbBbb??

??

????+?=+?≥

??????

???

??



根据公式 1202011

24

b??≤?≤

?

,即 14080b?≤?≤ .

由此也可知b的范围60180b≤≤ .

(2) 1 200b = ,超出了原始基的范围,所以最

优解也发生了变化。

1

11

2007024

131205

48

BXBb?

???

??????===

???????????

???





C 6 4 0 0

BC BX

1Bb?

1X 2X 3X 4X

4

6

2

1

X

X

70

5?

0

1

1

0 ]

/2

[

1

1/4?

1/4

3/8

?

s 0 0 1/2? 5/4?

4

0

2

3

X

X

60

20

2

4?

1

0

0

1

1/2

3/2?

s -2 0 0 -2



5.3 系数矩阵A的分析

分4种情况讨论系数矩阵的变化

1.增加一个新变量的分析(增加一个列)

设 1nX +是新增加的变量,其对应的系数

列向量为 1nP +,价值系数为 1nC +,试讨论原最

优解有无改变?级如何尽快地求出新的最

优解。

如果原问题增加一个新变量,则系数矩

阵增加一个列,注意到新增加的列在以B为

基的单纯形表中应变为 1 1nBP? +,所以可先计

算 1 1nBP? +及 1111nnBnCCBPs ?+++=? ,若 1 0ns + ≤ ,

则原最优解不变。反之,将 1 1nBP? +增添到原

最优表的后面,用单纯形法继续求解。

例5 设第一章例1的原线性规划问题中考虑

生产Ⅲ型计算机,已知生产每台Ⅲ型计算机

所需原料4个单位,工时3个单位,可获利

润8个单位。试问该厂是否应该生产Ⅲ型计

算机?如果生产,应该生产多少?

解:设生产Ⅲ型计算机 3x′台,由原最优基的

1B?可得

1

3

115

4244

1313

488

BP?

?????

??????′==

???????

????? ??

????



( )1333

5

9484,6

1 4

8

BCCBPs

?

??

??′′′=?=?=

??

????

??



因为 3 0s ′ > ,所以安排生产Ⅲ型计算机有利,将

1

3BP

? ′增添到原最优表的后面,并用单纯形表继续

计算,结果如下:

C 6 4 0 0 8

BC BX

1Bb?

1X 2X 3X 4X 3X ′

4

6

2

1

X

X

20

20

0

1

1

0

1/2

1/4?

1/4

3/8

? [5/4]

1/8

s 0 0 1/2? 5/4? 9/4

8

6

3

1

X

X

′ 16

18

0

1

5/4

1/10

2/5

3/10

1/5

2/5

? 1

0

s 0 9/5? 7/5? 4/5? 0

最优解:

1233418,0,0,16,0.XXXXX

′=====

最优值: 236.Z ? =



2.增加一个新的约束条件的分析(增加一行)

设 1,111,2 1,1mmmnnmaXaXaXb++++++≤L 是

新增加的约束条件,试分析原问题最优解有

无变化?

将原有最优解代入新约束条件中,如果

满足新约束条件,则原最优解不变。反之,

则需进一步求出新的最优解。考虑到单纯形

算法中,每步迭代得到的单纯形表对应的约

束方程组都与原方程组等价。因此,可以将

新的约束方程组

1,111,2 1,11mmmnnnmaXaXaXXb++++++++=L

增添到原最优表的下面,变化后的单纯形表

增加一个行,一个列,新约束对应的基变量

是 1nX +,在单纯形表中,由于增加了新约束,

原基变量对应的列向量可能不再是单位列

向量。所以用初等行变换将表中基变量对应

的列向量变为单位列向量。变换后,原最优

表的检验数不变,但基变量 1nX +所取的值一

般要变了。若 1110,nmXBb?++=≥则已得到最优

解。反之,若 1110,nmXBb?++=<则用对偶单纯

形法继续求解。

例 6 设第一章例 1 的原线性规划问题中增加一道

加工工序,需要在另一台设备上进行。已知每台Ⅰ,

Ⅱ型产品在该设备上加工工时分别为2,3个单位,

计划期内该设备总台时为90单位。试分析原最优

解有无变化?如果有变化,求出新最优解。

解:新工序对应的约束条件为 122390.xx+≤将原

问题最优解 1220xx==代入该约束左端,显然不

满足约束条件,因此原最优解不再是最优解。

将 1252390.xxx++=填到原最优表下面,用

初等变换及对偶单纯形算法,计算如下:



C 6 4 0 0 0

BC BX

1Bb?

1X 2X 3X 4X 5X

4

6

0



2

1

5

X

X

X



20

20

90



0

1

2



1

0

3



1/2

1/4

0

?

1/4

3/8

0

?



0

0

1



s 0 0 1/2? 5/4? 0

4

6

0



2

1

5

X

X

X



20

20

10?



0

1

0



1

0

0



1/2

1/

1

4

[]

?

?



1/4

3/8

0

?



0

0

1



s 0 0 1/2? 5/4? 0

4

6

0



2

1

3

X

X

X



15

22.5

10



0

1

0



1

0

0



0

0

1



1/4

3/8

0

?



1/2

1/4

1

?

?



s 0 0 0 5/4? 1/2?

由此得最优解:

1234522.5,15,10,0.XXXXX=====

最优值: 195.Z ? =

3.改变某非基变量的系数列向量分析

设非基变量 jx 的系数列向量 jP′,试分析

原最优解有何变化?

该变化只影响单纯形表的第j列及其检

验数。因此,可以先计算 1 jBP? ′ 及

1

jjBjCCBPs

?′′=? .若 0

js

′ ≤ ,则最优解不变。

反之,若 0js ′ > ,则以 1 jBP? ′替代原最优表的

第j列,用单纯形表继续求解。

4.改变基变量的系数列向量的分析

设基变量 jx 的系数列向量为 jP′,试分析

原最优解有何变化?

显然, jP的变化将导致B的变化,因而

原最优表的所有元素都将发生变化,似乎只

能重新计算变化后的模型。但是,经过认真

分析,还是可以利用原最优解来计算新最优

解的。

我们可以将 jx 看作新增加的变量,用

1

jBP

? ′替代原最优表的第j列(单位列向量),

然后利用初等行变换将表中的 1 jBP? ′恢复到

原来的单位列向量,并重新计算检验数。则

变化后的单纯形表有以下几种情况:

①基变量取值全非负,且检验数全非

正,已得到新的最优解

②基变量取值全非负,但存在正检验

数,该解是基可行解,可以用单纯形法继续

求解

③存在取负值的基变量,但检验数全非

正,该解是对偶可行解,可以用对偶单纯形

法继续求解

④存在取负值的基变量,且存在正的检

验数,该解既不是基可行解,又不是对偶可

行解,对于这种情况,我们将表中取负值的

基变量 BiX 对应的行还原成约束方程,用-1

乘方程两端,再在方程左端加一个人工变量

1nX +,用该方程替代原单纯形表的第i行,其

对应的数值为 1()iBb?? ,其价值系数为 M? 。

可以用单纯形表继续求解。

例7 第一章例1的原问题中,如果 1X 的系数

列向量变为 84????

??

,试分析原问题最优解有何

变化。

解: 1 1

11 3

824

1134

248

BP?

?????

????′ ??==

?? ???????

? ????

,用

3

1

2

??

??

?????取代

原最优表的第1列,再用初等行变换将该列变为原

来的单位列向量,结果如下:

C 6 4 0 0

BC BX

1Bb?

1X 2X 3X 4X

4

6

2

1

X

X

20

20

3

1/2?

1

0

1/2

1/4?

1/4

3/8

?

s 0 0 1/2? 5/4?



C 6 4 0 0

BC BX

1Bb?

1X 2X 3X 4X

4

6

2

1

X

X

140

40?

0

1

1

0

1

1/2

? 2

3/4?

s 0 0 1 2/7?

该解既不是基可行解,又不是对偶可行

解,将表中第二行乘以-1,并用人工变量 5X

取代 1X ,重新计算检验数,然后利用单纯形法

继续运算,结果如下:

C 6 4 0 0 -M

BC BX

1Bb?

1X 2X 3X 4X 3X ′

4

M?

2

5

X

X

140

40

0

1?

1

0

1

1/2?

2

5/4

0

1

s 6-M 0 4 2M? 3 84 M ? 0

4

0

2

4

X

X

100

3

160

3



8

3

4

3?

10

1

3

2

3?

01

8

3

4

3

?



s 14/3? 0 4/3? 0 -M+32/3

由此计算:

24135

100160,,0.

33XXXXX=====

最优值: 4003Z?=

献花(0)
+1
(本文系太好学原创)