求解等式约束优化问题:
min f ( X )
s.t. h k ( X )=0( k =1,2,…,m)
需要导出极值存在的条件,这是求解等式约束优化问题的理论基础。对这一问题在数学上有两种处理方法:消元法(降维法)和拉格朗日乘子法(升维法),现分别予以介绍。
1.消元法
为了便于理解,先讨论二元函数只有一个等式约束的简单情况,即
min f ( x 1 , x 2 )
s.t. h ( x 1 , x 2 )=0
根据等式约束条件将一个变量 x 1 表示成另一个变量 x 2 的函数关系 x 1 = φ ( x 2 ),然后将这一函数关系代入到目标函数 f ( x 1 , x 2 )中消去 x 1 ,变成一元函数 F ( x 2 ),从而将等式约束优化问题转化成无约束优化问题。目标函数通过消元由二元函数变成一元函数,即由二维变成一维。所以消元法又称作降维法。
对 n 维情况
min f ( x 1 , x 2 ,…, x n )
s.t. h k ( x 1 , x 2 ,…, x n )=0( k =1,2,…,l)
由l个约束方程将 n 个变量中的前l个变量用其余 n -l个变量表示,即有
x 1 = φ 1 ( x 1+1 , x 1+2 ,…,xn)
x 2 = φ 2 ( x l+1 , x 1+2 ,…,xn)
…
x l = φ l( x l+1 , x l+2 ,…,xn)
将这些函数关系代入到目标函数中,从而得到只含x l+1 ,x l+2 ,…,x n 共n-l个变量的函数,这样就可以利用无约束优化问题的极值条件求解。
消元法虽然看起来简单,但是实际求解困难却很大。因为将l个约束方程联立往往求不出解来。即使能求出解,当把它们代入目标函数之后,也会因为函数十分复杂而难以处理。所以,以这种方法作为一种分析方法实用意义不大,而对某些数值迭代方法来说,却有很大的启发意义。
2.拉格朗日乘子法
拉格朗日乘子法是求解等式约束优化问题的另一种经典方法,它是通过增加变量将约束优化问题变成无约束优化问题,所以又称作升维法。
对于具有l个等式约束的n维优化问题
minf( X )
s . t . h k ( X )=0( k =1,2,…, l )
在极值点X*处有
把
l
个等式约束给出的l个
0,分别乘以待定系数
λ
k
(
k
=1,2,…,
l
)再和
相加,得
可以通过其中的l个方程
来求解l个 λ 1 , λ 2 ,…, λ l ,使得l个变量的微分d x 1 ,d x 2 ,…,d x l 的系数全为0,这样,式(2-20)的等号左边就只剩下n-l个变量的微分dx l+1 ,dx l+2 ,…,d x n 的项,即它变成
但d x l+1 ,d x l+2 ,…,d x n 应是任意量,则应有
式(2-22)和式(2-23)及等式约束 h k ( X )=0( k =1,2,…, l )就是点 X 达到约束极值的必要条件。
式(2-21)和式(2-23)可以合并写成
根据目标函数
f
(
X
)的无约束极值条件
(
i
=1,2,…,
n
),则上述问题的约束极值条件可以转换成无约束的函数极值条件。办法是,把原来的目标函数
f
(
X
)改造成为如下形式的新目标函数:
式中的 h k ( X )就是原目标函数 f ( X )的等式约束条件,而待定系数 λ k 称为拉格朗日乘子, F ( X , λ )称为拉格朗日函数。这种方法称为拉格朗日乘子法。
式(2-25)中显然多出了l个待定系数
λ
k
(可看成是新的变量),而
X
=(
x
1
,
x
2
,…,
x
n
)T有n个变量。结果共有n+l个变量。但是
可提供
n
个方程,再加上
l
个等式约束条件
h
k
(
X
)=0,共有n+l个方程,足以解出这n+l个变量。
由于
给出
h
k
(
X
)=0,所以这
n
+l个方程可以看成是通过下述条件给出的:
这样,拉格朗日乘子法可以叙述如下:
设 X * 是目标函数f(X)在等式约束 h k ( X )=0条件下的一个局部极值点,而巨在该点处函数的梯度▽ h k ( X * )=0(k=1,2,…,l)是线性无关的,则存在一个向量λ(在l个约束函数规定的集内),使得下式成立:
式中, λ T =( λ 1 , λ 2 ,…, λ l ),▽ h k ( X * ) T =(▽ h 1 ( X * ),▽h 2 ( X * ),…,▽ h l ( X * ))
为了说明拉格朗日乘子的物理意义,我们看函数 f ( X )= f ( x 1 , x 2 )的一个二维问题,巨只有一个约束条件 h ( X )= h ( x 1 , x 2 )=0时的简单情况。此时,式(2-25)的形式是
F ( X , λ )= f ( X )+ λh ( X )
由式(2-24)得
所以上式可以写成
式中的
是单位变量的目标值变化率,而
则是单位变量的约束值变化率,可以称
为优化效率或敏度系数。而巨从
可知,各变量的改变所导致的优化效率是相等的,巨等于一个常数λ。
对于机械优化设计问题,若目标函数f(X)是结构重量,约束条件是结构刚度或某点的变形,则
可以理解为结构重量的收益,而
可以理解为结构刚度的支出。则
就意味着单位结构的刚度支出所能获得的结构重量收益。这时的λ就反映结构刚度对其重量的优化率。
例2-2 用拉格朗日乘子法计算在约束条件 h ( X )= h ( x 1 , x 2 )=2 x 1 +3 x 2 -6=0的情况下, f ( X )= f ( x 1 , x 2 )=4 x 2 1 +5 x 2 2 的极值点。
解:改造的目标函数是 F ( X , λ )=4 x 2 1 +5 x 2 2 + λ (2 x 1 +3 x 2 -6),则
由
解得极值点坐标是
把它们代入
(即约束条件2
x
1
+3
x
2
-6=0),求得
所以得
即极值点 X * =(1.071,1.286) T
在约束条件下求得的函数极值点,称为约束极值点。在优化实用计算中常需判断和检查某个可行点是否为约束极值点,这通常借助于库恩-塔克(Kuhn-Tucker)条件(简称K-T条件)来迸行。
K-T条件可阐述为:如果 X (k) 是一个局部极小点,则该点的目标函数梯度▽ f ( X (k) )可表示成该点诸约束面梯度▽ g u ( X (k) )、▽ h v ( X (k) )如下线性组合:
式中, q 为在 X (k) 点的不等式约束面数; j 为在 X (k) 点的等式约束面数; λ u ( u =1,2,…, q )、 μ v ( v =1,2,…, j )均为非负值的乘子,亦称拉格朗日乘子。如果无等式约束,而全部是不等式约束,则式(2-27)中 j =0,第三项全部为零。
也可以对K-T条件用图形来说明。式(2-27)表明,如果 X (k) 是一个局部极小点,则该点的目标函数梯度▽ f ( X (k) )应落在该点诸约束面梯度▽ g u ( X (k) )、▽ h v ( X (k) )在设计空间所组成的锥角范围内。如图2-11所示,图2-11a中设计点 X (k) 不是约束极值点,图2-11b中的设计点 X (k) 是约束极值点。
图2-11 K-T条件的几何意义
以二维情况为例,将更形象地表明K-T条件。
图2-12所示为在设计点 X (k) 处有两个约束,图2-12a表示 X (k) 点处目标函数梯度▽ f ( X (k) )在该点两个约束函数梯度▽ g 1 ( X (k) )、▽ g 2 ( X (k) )组成的锥角Γ以外,这样在 X (k) 点邻近的可行域内存在目标函数值比 f ( X (k) )更小的设计点,故 X (k) 点不能成为约束极值点;而图2-12b表示 X (k) 点处▽ f ( X (k) )落在锥角Γ以内,则在该点附近邻域内任何目标函数值比 f ( X (k) )更小的设计点都在可行域以外,因而 X (k) 是约束极值点,它满足式(2-27)所示K-T条件
▽ f ( X (k) )- λ 1 ▽ g 1 ( X (k) )- λ 2 ▽ g 2 ( X (k) )=0( λ 1 ≥0, λ 2 ≥0)
图2-12 二维函数K-T条件图解
图2-13所示为在设计点 X (k) 处只有一个约束,图2-13a表示▽ f ( X (k) )和▽ g ( X (k) )的方向不重合,在 X (k) 邻近的可行域内存在目标函数值比 f ( X (k) )更小的设计点,故 X (k) 不能成为约束极值点;而图2-13b中由于▽ f ( X (k) )和▽ g ( X (k) )的方向重合,则-▽ f ( X (k) )- λ ▽ g ( X (k) )=0, λ >0,此即当 X (k) 点处约束面数 q =1时的K-T条件,显然 X (k) 点附近邻域内任何目标函数值比 f ( X (k) )更小的设计点都在可行域以外, X (k) 点是约束极值点。
图2-13 约束极值点存在的条件
必须指出,K-T条件用于检验设计点是否为约束极值点,对于“凸规划”问题,即对于目标函数 f ( X )为凸函数、可行域为凸集的优化问题,局部极值点与全域最优点相重合,如图2-12b、图2-13b皆为凸规划问题, X (k) 点符合K-T条件,必为全域最优点,但对于非凸规划问题则不然。图2-14a所示是目标函数为非凸函数、约束可行域为凸集,图2-14b所示是目标函数为凸函数、约束可行域为非凸集,这两种情况在可行域中均可能出现两个或更多的局部极小点,它们必须都满足K-T条件;但其中只有一个函数值最小的点 X (k) 是约束最优点。在工程优化设计问题中函数在全域上的凸性不一定存在,在许多情况下,凸性的判断亦难迸行。因此判断符合K-T条件的约束极值点是全域最优点还是局部极值点目前仍是优化研究的一个重大课题。但凸集、凸函数、K-T条件等在优化理论和实践中仍具有重要意义。亦须指出,用K-T条件检验约束极值点是指具有起作用约束的可行点。如图2-15所示,无约束极值点 X * 处 g u ( X * )均大于零( u =1,2,3,4),这一约束条件对 X * 都不起作用, X * 亦是约束极值点,但却不属于K-T条件的范围。
例2-3 用K-T条件检验点 X (k) =(2,0)T是否为目标函数 f ( X )=( x 1 -3)2+ x 2 2 +5在不等式约束: g 1 ( X )=4- x 2 1 - x 2 ≥0、 g 2 ( X )= x 2 ≥0、 g 3 ( X )= x 1 -0.5≥0条件下的约束最优点。
解:(1)计算 X (k) 点的诸约束函数值
g 1 ( X (k) )=4-2 2 -0=0
g 2 ( X (k) )=0
g 3 ( X (k) )=2-0.5=1.5>0
图2-14 非凸集定义域凸函数极值存在情况
图2-15 不属于K-T条件的约束极值点
X (k) 点是可行点,该点起作用的约束函数是 g 1 (X) 、 g 2 (X) 。
(2)求 X (k) 点的有关诸梯度
(3)代入式(2-27),求拉格朗日乘子
写成线性方程组
解得λ 1 =λ 2 =0.5,乘子均为非负,故满足K-T条件,即 X (k) =(2,0)T点为约束极值点。参看图2-16,亦得到证实。而巨,由于 f ( X )是凸函数,可行域为凸集,所以点 X (k) =(2,0)T也是约束最优点。
图2-16 例2-3图解