内点法的基本原理以及举例计算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、内点法

1. 基本原理

内点法的特点是将构造的新的无约束目标函数——惩罚函数定义在可行域内,并在可行域内求惩罚函数的极值点,即求解无约束问题时的探索点总是在可行域内部,这样,在求解内点惩罚函数的序列无约束优化问题的过程中,所求得的系列无约束优化问题的解总是可行解,从而在可行域内部逐步逼近原约束优化问题的最优解。。

内点法是求解不等式约束最优化问题的一种十分有效方法,但不能处理等式约束。因为构造的内点惩罚函数是定义在可行域内的函数,而等式约束优化问题不存在可行域空间,因此,内点法不能用来求解等式约束优化问题。

对于目标函数为

min ()f X

s.t. ()0u g X ≤ (u=1,2,3,…m )

的最优化问题,利用内点法进行求解时,构造惩罚函数的一般表达式为

()()

11

(,)()()m

k k u u

X r f X r

g X ϕ==-∑ 或者 ()

()

()

[]1

1

(,)()ln ()

()ln ()m

m

k k k u

u

u u X r

f X r

g X f X r

g X ϕ===+=--∑∑

而对于()f X 受约束于()0(1,2,

,)u g X u m ≥=的最优化问题,其惩罚函数的一般形式为

()

()

11

(,)()()m

k k u u

X r f X r

g X ϕ==+∑ 或

()()

[]1

(,)()ln ()m

k k u

u X r f X r

g

X ϕ==-∑

式中,()

k r

-----惩罚因子,是递减的正数序列,即

()()()()()01210k k r r r r r +>>>>>>

>

()lim 0k k r →∞

=

通常取()

1.0,0.1,0.01,0.001,

k r

=。

上述惩罚函数表达式的右边第二项,称为惩罚项,有时还称为障碍项。

说明:

当迭代点在可行域内部时,有()0u g X ≤(u =1,2,3,4,…m ),而()

0k r

>,则惩罚

项恒为正值,当设计点由可行域内部向约束边界移动时,惩罚项的值要急剧增大并趋向无穷大,于是惩罚函数的值也急剧增大直至无穷大,起到惩罚的作用,使其在迭代过程中始终不

会触及约束边界。

2. 内点法的迭代步骤

(1)取初始惩罚因子(0)

0r

>,允许误差0ε>;

(2)在可行域D 内取初始点()

0X ,令1k =;

(3)构造惩罚函数()

(,)k X r

ϕ,从(1)k X -点出发用无约束优化方法求解惩罚函数

()(,)k X r ϕ的极值点()()k X r *;

(4)检查迭代终止准则:如果满足

()()1571()()1010k k X r X r ε-**---≤=-

()()()134

21(,)(,)1010(,)

k k k X r X r X r ϕϕεϕ-**---*

-≤=- 则停止迭代计算,并以()

()k X r

*

为原目标函数()f

X 的约束最优解,否则转入下一步;

根据情况,终止准则还可有如下的形式:

()()1()()k k f X f X ε--≤

()

11

()m

k u u

r

g X ε=≤∑ 或

()

1

ln ()

m

k u

u r

g X ε=≤∑

5)取()

()()()10

,(),1k k

k

r

Cr X X r k k +*===+,转向步骤3)。

递减系数0.10.5C =-,常取0.1,亦可取0.02。

采用内点法应注意的几个问题: (1)初始点()

0X 的选取

初始点()

0X

必须严格在可行域内,满足所有的约束条件,避免为约束边界上的点。

如果约束条件比较简单,可以直接人工输入;若问题比较复杂,可采用随机数的方式产生初始点()

0X

,具体方程参照复合形法介绍。

(2)关于初始惩罚因子(0)r 的选择。实践经验表明,初始惩罚因子(0)r 选的恰当与否,会显著地影响内点法的收敛速度,甚至解题的成败。

若()

0r

值选得太小,则在新目标函数即惩罚函数()

(,)k X r

ϕ中惩罚项的作用就会很小,

这时求()

(,)k X r ϕ的无约束极值,犹如原目标函数()f X 本身的无约束极值,而这个极值点

又不大可能接近()f X 的约束极值点,且有跑出可行域的危险。相反,若()

0r 值取得过大,

则开始几次构造的惩罚函数()

(,)k X r ϕ的无约束极值点就会离约束边界很远,将使计算效率

降低。可取()

0r

≈1~50,但多数情况是取()0

1r =。

通常,当初始点()

0X

是一个严格的内点时,则应使惩罚项()

()0011

()m

u u r

g X

=∑在新目标函数()

(,)k X r

ϕ中所起的作用与原目标函数()0()f X 的作用相当,于是得

()

()()

001()

1()m u u f X r

g X

==∑

倘若约束区域是非凸的且初始点()

0X 亦不靠近约束边界,则()

0r

的取值可更小,约为上式算

得值的0.1~0.5倍。

相关文档
最新文档