第十章 罚函数法与广义乘子法本章主要内容:外罚函数法 内罚函数法 广义乘子法教学目的及要求:了解外罚函数法、内罚函数法、广义乘子法。
教学重点:外罚函数法. 教学难点:广义乘子法. 教学方法:启发式.教学手段:多媒体演示、演讲与板书相结合. 教学时间:3学时. 教学内容:§10.1 外罚函数法考虑约束非线性最优化问题min ();()0,1,2,,,()0,1,2,,,i j f x g x i m h x j l ⎧⎪≥=⎨⎪==⎩s.t. (10.1.1)其中(),()1,2,,()1,2,,i j f x g x i m h x j l ==()和()都是定义在n R 上的实值连续函数.记问题(10.1.1)的可行域为S .对于等式约束问题min ();()0,1,2,,,j f x h x j l ⎧⎨==⎩s.t. (10.1.2)定义罚函数211(,)()()lj j F x f x h x σσ==+∑,其中参数σ是很大的正常数.这样,可将问题(10.1.2)转化为无约束问题 1min (,)nx RF x σ∈. (10.1.3) 对于不等式约束问题min ();()0,1,2,,,i f x g x i m ⎧⎨≥=⎩s.t. (10.1.4)定义罚函数221(,)()[max{0,()}]mi i F x f x g x σσ==+-∑,其中σ是很大的正数.这样,可将问题(10.1.4)转化为无约束问题2min (,)nx RF x σ∈. (10.1.5) 对于一般的约束最优化问题(10.1.1),定义罚函数 (,)()()F x f x P x σσ=+, 其中σ是很大的正数,()P x 具有下列形式:11()[()][()]mli j i j P x g x h x ϕφ===+∑∑.ϕ和φ是满足下列条件的实值连续函数:()0,0()0,0y y y y ϕϕ=≥⎧⎨><⎩当时,当时, ()0,0()0,0y y y y φφ==⎧⎨>≠⎩当时,当时.函数ϕ和φ的典型取法为()[max{0,}]y y αϕ=-, ()||y y βφ=,其中1α≥和1β≥是给定的常数,通常取作1或2.这样,可将约束问题(10.1.1)转化为无约束问题min (,)()()nx RF x f x P x σσ∈=+, (10.1.6) 其中σ是很大的正数,()P x 是连续函数.算法10-1(外罚函数法)Step1 选取初始数据.给定初始点0x ,初始罚因子10σ>,放大系数1α>,允许误差0ε>,令1k =.Step2 求解无约束问题.以1k x -为初始点,求解无约束问题min (,)()()nx RF x f x P x σσ∈=+, (10.1.11) 设其最优解为k x .Step3 检查是否满足终止准则.若()k k P x σε<,则迭代终止,k x 为约束问题(10.1.1)的近似最优解;否则,令1,:1k k k k σασ+==+,返回Step2.例1 用外罚函数法在平面23x y +=上求一点(,)P x y ,使得P 到定点(3,2)A 的距离近似最短,取310.5,2,10σαε-===.解 令22(,)(3)(2)f x y x y =-+-,问题可归为求解如下最优化问题22min (,)(3)(2);(,)230.f x y x y h x y x y ⎧=-+-⎨=+-=⎩s.t.引入罚函数 222(,,)(3)(2)(23)k k F x y x y x y σσ=-+-++-. 则原约束最优化问题相应的一系列无约束最优化问题为:min (,,)k F x y σ,其中110.5,2,1,2,k k k σσσ+===.解上述无约束问题,得31122(,),1515TT k k k k k k x y σσσσ⎛⎫++= ⎪++⎝⎭,同时216(,)(15)kk k k k P x y σσσ=+. 依次对1,2,k =用上述公式计算(,)T k k x y 和(,)k k k P x y σ,结果如下表所示.由迭代终止条件3216(,)10(15)k k k k k P x y σσσ-=<+可得原约束问题的近似最优解(保留4位有效数字)1212(,)(2.2002,0.4003)T T x y =.§10.2 内罚函数法对于不等式约束问题(10.1.4),其可行域S 的内部int {|,()0,1,2,,}n i S x x R g x i m =∈>=.为了保持迭代点始终含于int S ,我们引入另一种罚函数(,)()()G x r f x rB x =+,其中r 是很小的正数,()B x 是int S 上的非负实值连续函数,当点x 趋向可行域S 的边界时,()B x →∞.显然,罚函数(,)G x r 的作用是对企图脱离可行域的点给予惩罚,相当于在可行域的边界设置了障碍,不让迭代点穿越到可行域之外,因此也称为障碍函数. (,)G x r 的两种常用的形式为11(,)()()mi i G x r f x r g x ==+∑, 及1(,)()ln ()mi i G x r f x r g x ==-∑分别称为倒数障碍函数和对数障碍函数.算法10-2(内罚函数法或SUMT 内点法)Step1 选取初始数据.给定初始内点0int x S ∈,初始参数10r >,缩小系数(0,1)β∈,允许误差0ε>,令1k =.Step2 求解无约束问题.以1k x -为初始点,求解无约束问题min (,)()();int ,k k G x r f x r B x x S =+⎧⎨∈⎩s.t. (10.2.2)设其最优解为k x .Step3 检查是否满足终止准则.若()k k r B x ε<,则迭代终止,k x 为约束问题(10.1.4)的近似最优解;否则,令1,:1k k r r k k β+==+,返回Step2.算法10-3(求内罚函数法中初始内点的算法)Step1 选取初始数据.给定初始点0x ,初始参数10r >,缩小系数(0,1)β∈,令1k =.Step2 确定指标集.令{|()0,1,2,,}k i k I i g x i m =≤=,{|()0,1,2,,}k i k J i g x i m =>=.Step3 检验是否满足终止准则.若k I =∅,则int k x S ∈,迭代终止;否则,转Step4.Step4 求解无约束问题.以k x 为初始点,求无约束问题1min ()kk x S H x +∈的最优解1k x +,其中111()()()kkk i k i I i J i H x g x r g x ++∈∈=-+∑∑, {|()0,}k i k S x g x i J =>∈.令21,:1k k r r k k β++==+,返回Step2.§10.3 广义乘子法考虑只带等式约束的最优化问题(10.1.2).不难知道,问题(10.1.2)等价于问题21min ()();2()0,1,2,,,l j j j f x h x h x j l σ=⎧⎡⎤+⎪⎢⎥⎨⎣⎦⎪==⎩∑s.t. (10.3.1)其中0σ>.该问题的Lagrange 函数211(,,)()()()2l ljj jj j L x v f x h x v h x σσ===+-∑∑, 由于(,,)L x v σ中既有罚项21()2ljj h x σ=∑,又有乘子项1()lj jj v h x =-∑,故称为乘子罚函数.与外罚函数类似,若设{}k σ为严格单调递增且趋于无穷大的正数列,则我们可以把求解等式约束问题(10.1.2)转化为求解一系列的无约束问题2()11min (,,)()()()2nl lk kk k j jj x Rj j L x v f x h x vh x σσ∈===+-∑∑, (10.3.2)其中()()()12(,,,)k k k T k l v v v v =是第k 次迭代中采用的Lagrange 乘子,并且有定理10.3.1 设k x 是无约束问题(10.3.2)的最优解,则k x 也是问题min ();()(),1,2,,j j k f x h x h x j l⎧⎨==⎩s.t. (10.3.3)的最优解.记12()((),(),,())T l h x h x h x h x =.算法10-4(等式约束下的广义乘子法)Step1 选取初始数据.给定初始点0x ,初始乘子1v ,初始罚因子10σ>,放大系数1α>,允许误差0ε>,参数(0,1)γ∈,令1k =.Step2 求解无约束问题.以1k x -为初始点,求解无约束问题(10.3.2),设其最优解为k x .Step3 检查是否满足终止准则.若()k h x ε<,则迭代终止,k x 为等式约束问题(10.1.2)的近似最优解;否则,转Step4.Step4 判断收敛快慢.若1()()k k h x h x γ-≥,则令1k k σασ+=,转Step5;否则,令1:k k σσ+=,转Step5.Step5 进行乘子迭代.令(1)()(),1,2,,,:1k k j j k j k v v h x j l k k σ+=-==+,返回Step2.。