内点法的基本原理以及举例计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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倍。