外罚函数法计算机,罚函数法与障碍函数法

罚函数法与障碍函数法

a4c26d1e5885305701be709a3d33442f.png

罚函数法与障碍函数法是求解约束极小化问题的较好的算法,其基本原理是在原目标函数中加上一个罚(障碍)函数,而得到一个增广目标函数。罚(障碍)函数的功能是对非可行或企图穿越边界而逃离可行域的点赋予一个极大的函数值。可以作一个形象的比喻:在约束极小化问题中,约束条件是一条“法律”,凡是不服从这条“法律”的点被处以“罚款”的“经济制裁”,而且“罚款”的数额极高。这样,在对新的目标函数进行无约束极小化的过程中,就会迫使迭代点逐步逼近(当迭代点在可行域外时)或者不能离开可行域(当迭代点在可行域内时),这样所得的关于增广目标函数的无约束极小化的解就会逼近于原目标函数的约束极小化的解。也就是说,可以将约束极小化问题通过增广目标函数而化成无约束极小化问题,而后者可以用前几节所介绍的算法来求解。

一、罚函数法(外点法)

1.罚函数法的基本原理

定理4.12 设对给定的参数μ,F(X,μ)的无约束极小点为Xμ,

那么Xμ 成为

f(X)的约束极小点的充要条件是:Xμ是原问题的可行点。

证明 必要性显然成立,下面证明充分性。设原问题的可行域为D,

Xμ∈D,则由a(X)的构造可知:

a(Xμ)=0,

Xμ∈D

由于已知Xμ是F(X,μ)的无约束极小点,故存在Xμ的一个领域N(X,ε),使得

F(Xμ,μ)≤0,X∈D∩N(Xμ,ε)

所以 F(Xμ,μ)=

f(Xμ)+μa(Xμ)=f(Xμ)

F(X,μ)= f(X)+

μa(Xμ)=f(X)

因此 f(Xμ)≤f(X),当X∈D∩N(Xμ,ε)

表明,Xμ是原问题的约束极小点。

2.罚函数法算法

在用计算机求解F(X,μ)的无约极小点时,必须事先给μ的值,例如,令μ=μ0,才能求出F(X,μ)的极小点Xμ0。但是一般来说Xμ0不是原问题的可行点,由定理4.12,Xμ0不是原问题的极小点。这时,若增大μ的值为μ1,以Xμ0为初点求出F(X,μ1)的极小点Xμ1,可以证明Xμ1比Xμ0更接近于原问题的可行域。如此重复,可得序列{

Xμk},μk→+∞,当k→+∞,使Xμk趋于原问题可行点X*,由定理4.12,X*是原问题的极小点。

我们已知,Xμ是原问题可行点等价于μa(Xμ)=0。但是,往往只是当

μ→+∞时,才有μa(Xμ)=0,为使计算能在适当时候终止,可根据用户要求而事先确定一个小正数ε,当满足

0<μa(Xμ)≤ε

时,即可终止计算,这时,Xμ与原问题的精确极小点的误差已经可以被用户所接受。

罚函数法(外点法)算法过程是:

(1)取初点X0为非可行点,μ0>0(通常取μ01),ε>0,c>1(通常取c=10),k=0

(2)以Xk为出发点,求解无约束极小化问题:

minF(X,μk)=f(X)+μka(X)

设无约束极小点为Xμk。

(3)若μka(Xμk)≤ε,输出Xμ,计算停止,否则,转(4)

(4)μk+1=cμk,k=k+1,转(2)

(注:在通常的情况下,Xμk是外点,因此罚函数法又称之为外点法。)

二、障碍函数法(内点法)

1.障碍函数法(内点法原理)

设有纯不等式约束问题

min

f(X) (4-48)

s.t.

gi(X)≤0,i=1,2,…,m

(4-49)

设原问题内部非空,初始点X0选为内点。障碍函数法(内点法)构造的增广目标函数形为

F(X,γ)=f(X)+γB(X) (4-50)

其中,γ>0,B(X)>0(当X为内点),且当X在边界时,B(X)的值为无穷大。这样,可阻止F(X,γ)的极小点穿越边界,而必定被限制为可行点。

障碍函数B(X)有两种常见的构造方法:

(4-51)

(4-52)

障碍函数B(X)的这两种构造方法各有其优缺点;相对而言,(4-51)式结构较简单,但其导数(如果可导的话)复杂,更适用于不利用导数的无约束极小化算法;而(4-52)式虽然较复杂,但是导函数却相对较简单,因而更适用于利用导数的无约束极小化算法。

下面再讨论(4-50)式中障碍因子γ的结构。先看一个简单的例子,设原问题为:

min f(X)

s.t.–x+1≤0

其增广目标函数为

F(x,γ)=f(x)+γB(x)=x+γ(x–1)-1

当 时,不满足约束,舍去,所以有

而原问题的精确极小正好是x*=1。

在一般条件下,可以证明,F(X,γ)的无约束极小点Xγ恒为可行域的内点,且当γ→0+时,Xγ趋于原问题的约束极小点。

2. 障碍函数法(内点法)算法过程

(1)取X0为内点,γ0>0(通常,取γ0=0),障碍因子缩小系数d,0<d<1,k=0,ε>0;

(2)构造增广目标函数F(X,γk)=f(X)+γkB(X)

(3)以Xk为初始点,求解无约束优化问题

min F(X,γk)

设其无约束极小点为Xk+1;

(4)如果0<γkB(Xk+1)≤ε,输出Xk+1,计算停止;

否则,γk+1=dγk,k=k+1转(2)。

注:从理论上讲,Xk一定是可行域的内点,但是在实际计算过程中,由于步长是取离散数值,以及舍入误差等原因,使Xk有可能取为非可行点,在这种情况下,应选用优于Xk+1的内点来取代Xk。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值