§4 条件极值问题解法
本节讨论目标函数
) ( ) ,
(x1 x2 x f x f
y , , n
在一组不等式
0 )
(
j x
j g
g (或gi gj(x)0,j1,2,,m)
或等式
m j
g
gj j(x)0, 1,2,…,
约束条件下的极值问题解法.这种问题称为条件极值问题,当目标函数和约束条件关于自变量
都是线性时,称为线性规划问题,否则称为非线性规划问题.
条件极值问题就是要求在n维欧氏空间En的一个由不等式约束条件所限定的区域:
g j m
R x j(x)0, 1,2,…,
上求一点x*R,使得目标函数 f(x)达到极小值(或极大值) f(x*),即 )
* (
*) ( )
min f( f R
R x
x x
x
其中 y f(x) f(x1,x2,……xn),gj(x) gj(x1,x2,……xn) (j1,2,…,m)是定义在En的某
一开集X R上的具有一阶连续偏导数的实值函数.
因为在同样的约束条件下,极小和极大只是目标函数相差一符号,以后限于讨论极小的
情况.
若某一x(0)R,有
) 2
1 ( 0 )
( (0) j m
gj x ,,…,
则称x(0)为R的内点,若x(0)R,存在一个 j(1 jm) 使
0 ) (x(0) gj
则称x(0)为R的边界点.
[线性规划问题的可行解与极小可行解] 线性规划问题就是求目标函数
y c x
j N
j j
1(1)
在约束条件
xj 0 ( j1,2,…,N) (2a)
r N
ir r i
a x b
1(i1,…,p) (2b)
r N
ir r i
a x b
1( j p 1,…,pq) (2c)
k r kr N
r
b x
a
1(k p q 1,…,m) (2d) 下的极小值,其中有q个等式约束条件,其余是不等式约束条件.假定bi 0(i1,2,…,m).
对形如(2b)的约束条件,则引进松驰变量xn i 0,把它变为等式
r N
ir r N i i
a x x b
1
+ (i1,…,p)
对形如(2d)的约束条件,则引进松驰变量xn k 0,把它变为等式
r N
kr r N k k
a x x b
1
(k pq1,,m)
松驰变量并不出现在目标函数(1)中,它的引进并不影响问题的最优解,它把所有约束条
件(除了xj 0(j1,2,,N)外)化成统一的等式形式
b x
A (3) 式中x是n N m q维矢量,它包含所有原来的变量和松驰变量,b是m维常数矢量,而A
是m n 矩阵,因此(3)表示n个未知量的m个方程的线性方程组.
所以线性规划问题可以表述为如下三种等价形式:
1 求目标函数
y c x
j n
j j
1(4a)
在约束条件
j n
ij j i
a x b
1(i1,2,,m) (5a)
xj 0 ( j1,2,,n) (6a) 下的极小值,假定bi 0 (i1, ,…,2 m).
2 求目标函数
cx
y (4b) 在约束条件
b x
A (5b)
xj 0 (j1, ,…,2 m) (6b) 下的极小值,其中c(c1,c2,…cn)是一行矢量,x (x1,x2,…,xn)是一列矢量,A为m n 矩
阵(aij),b(b1,b2,…,bm)是一列矢量,假定bi 0(i 1, ,…,2 m).
3 求目标函数
cx
y (4c) 在约束条件
0 2
2 1
1p x p xnpn p
x … (5c)
xj 0 (j1, ,…,2 n) (6c) 下的极小值,其中pj(j1,2,…,n)是矩阵A的第j列矢量
b
p0 ,假定bi 0 (j1, ,…,2 m) cj称为目标函数(4)的价格系数.
定义1 满足条件(5)和(6)的矢量x (x1,x2,…,xn)称为线性规划问题的可行解.
定义2 若可行解x的分量中至多有m个xi 0,则称x为基本可行解.
定义3 若一个基本可行解x恰有m个分量xi 0,则称x为非退化的基本可行解.
定义4 使目标函数(4)达到极小值的可行解称为极小可行解(简称极小解).
集合 R
xAxb,x的 分 量 非 负
是一凸集,它有有限个顶点,若线性规划中目标函数(4)有极小值,则必可在其凸集R上某一
顶点达到.
假设线性规划问题是可行的,每一基本可行解都是非退化的,并且给定一基本可行解
)
( 10 20 0
0 x ,x …,xm
x 和与它关联的一组线性无关矢量p1,p2,…,pm则有
0 0
1 20 1
10p x p xm pm p
x …
0 0
1 20 1
10c x c x c y
x … m m
式是所有xi00,ci为目标函数的价格系数,y0为目标函数相应于给定解x0的数值.由于
pm
p
p1, 2,, 是线性无关的,存在x1j,x2j…,xmj满足
j m mj j
j x x
x1 p1 2 p2… p p ( j1, ,…,2 n) 并且定义
j m mj j
jc x c x c y
x1 1 2 2 … ( j1, ,…,2 n) 式中ci为相应于pi的价格系数.
定理 1 如果对任一固定的j,条件yj cj 0成立,那末可以构造一组可行解使得对
组中的任一可行解都有y y0,其中y的下限或者是有限的或者是无限的(y是目标函数相应
于可行解组中某一可行解的数值.)
定 理 2 如 果 对 任 一 基 本 可 行 解 x (x10,x20…,xm0) , 条 件 yj cj 0对 所 有
j1, ,…,2 n成立,那末x(x10,x20…,xm0)是一极小可行解.
[单纯形法] 根据以上两个定理解线性规划问题的单纯形法就是从已知的某一基本可行
解(它是满足约束条件的一切点即可行解所组成的凸集R的一个顶点)出发,确定这点是否使
目标函数达到极小值.如果不是,依次构造新的基本可行解(它们是凸集R的相邻顶点),其
相应的目标函数值小于或等于前面的数值.经过有限步(通常在m和2m之间)就可得到极小
解.所以单纯形法实际是凸集顶点的一个迭代方法.下面分两种情形叙述.
1 假设矩阵A的n个列矢量p1,p2,…,pn包含m个单位矢量并集中在一起组成一个m 阶单位矩阵,不妨设这些列矢量p1,p2,…,pm,命
m
m I
B(p1,p2,…,p ) (Im为m阶单位矩阵)
称为容许基底.由于B1Im,而且p0的所有元素都是非负的,因此有初始基本可行解
j
j p
x p
x0 0,
式中 x0 (x10,x20,…,xm0) (xi0 0) )
, ( 1j 2j mj
j x ,x …,x
x
列表如下:
表 1
i 基底 c c1 c2 … cl … cm cm1 … cj … ck … cn p0 p1 p2 … pl … pm pm1 … pj … pk … pn
1 p1 c1 1
x10 1 0 … 0 … 0 x1,m1 … x1j … x1k … x1n 2 p2 c2 x20 0 1 … 0 … 0 x2,m1 … x2j … x2k … x2n
l pl cl
0
xl 0 0 … 1 … 0 xl,m1 … xlj … xlk … xln
m pm cm xm0 0 0 … 0 … 1 xm,m1 … xmj … xmk … xmn
1
m y0 0 0 … 0 … 0
1 1
m
m
c
y …
j j
c y
… y c
k
k … y c
n
n
由于x0 p0,xj pj,因此表中xi0 bi,xij aij.表中
0 1
0 i i
m
i
x c
y
) 2
1 (
1
n j
x c
y i ij
m
i
j
,,…,
元素y0和yj cj在它们所在列的第m1行出现.对基底矢量yj cj总是等于零.有了表 1 后就
可对它进行如下的单纯形法迭代:
(1) 检 验 是 否 所 有 的 yj cj 0 . 如 果 所 有 yjcj 0(j1,2,…,n) , 那 末
( )
) ,
( 10 20 0 1 2
0 x ,x , xm b,b,…,bm
x 是极小解,相应的目标函数值为y0.
(2) 如果某个yj cj 0,则选择对应于
k k j j j
c y c
y )
max(
的矢量pk进入基底.
(3) 把对应于
lk l ik i
j x
x x
x0 0
0 min
(xil 0)
的矢量pl从基底中消去.如果所有的xik 0,那末目标函数值无界.
(4) 为了得到新解x0',新矢量 xj'和相应的yj'cj,对表 1 中行i1,…,m1和列
n
j0,1,, 的每一元素用下面的主元素(xlk)消去法公式进行变换 ) 1 2
1 (
' x il i m
x x x
x ik
lk lj ij
ij , ,,…,
' (j 012 n) x
x x
lk lj
lj ,,,…,
其中
y'0x'm1,0 y'jcj x'm1,j
每迭代一次就得到一新的基本可行解,重复步骤(1)~(4)直到求得极小解或者确定一无界
解.
对表 1 进行上述迭代一次后就得到下表:
表 2
i 基底 c c1 c2 … cl … cm cm1 … cj … ck … cn p0 p1 p2 … pl … pm pm1 … pj … pk … pn 1 p1 c1 x'10 1 0 … … … 0 x1',m1 … x1'j … 0 … x1'n
2 p2 c2 x20' 0 1 … x1'l … 0 x'2,m1 … x'2j … 0 … x2'n
l pk ck x'k0 0 0 … x2'l … 0 x'l1,m1 … x'lj … 1 … x'ln
m pm cm xm'0 0 0 … x'ml
…
1 x'm,m1…
x'mj…
0…
x'nj1
m y0' 0 0 …
l l
c y
' … 0
1
' 1
m
m
c
y
…
j j
c y
'
…
0…
n n
c y
'
2 假设矩阵A不包含一个m阶单位矩阵.这时可采用下面的人工基底法:
引进人工变量xnj 0( j1,2,,m)将线性规划问题的系统扩大为:
极小化
m n n
n n
nx x x x
c x
c
y 1 1… 1 2 … 满足条件
m m n n
mn m
n n
n n n n
b x + x
a x
a
b
= x
+ x
a x
a
b
= x
x a x
a
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
1 1
2 2
2 1
21
1 1
1 1
11
和
xj 0(j 1,…, ,n n1,…,nm),
其中为一未定的大的正数(不必指定的数值).矢量pn1,pn2,…,pnm形成扩大系统的一个基底(人工基底).
对扩大了的问题,第一个可行解为
( , , )
) , , ,
( 1,0 20 0 1 2
0 xn xn ,… xnm, b b bm
x
相应的目标函数值为 m i
i
b
y
1
0 .由于基底组成一个单位矩阵,所以
( )
)
( 1j 2j mj 1j 2j mj
j x ,x ,…,x a ,a ,…,a
x
ij m
i
j x
y
1
j ij m
i j
j c x c
y
1
(
j1,2,…,n)
列表如下:
表 3
i 基底 c
c
1c
2 … ck … cn … … p0 p1 p2 … pk … pn pn1 … pnl … pnn
1 pn1 xn1,0 x11 x12 … x1k … x1n 1 … 0 … 0
2 pn2 xn2,0 x21 x22 … x2k … x2n 0 … 0 … 0
l pnl xn l,0 xl1 xl2 … xlk … xln 0 … 1 … 0
m pnm xn m ,0 xm1 xm2 … xmk … xmn 0 … 0 … 1 m1
m2
0
i m
xn i
1
c1
i m
xi
11
c2
2 1
i m
i
x
…
…
ck
i m
xik
1cn
i m
xin
10 0
…
… 0 0
…
… 0 0