求解二次规划问题——外点罚函数法/内点罚函数法

外点罚函数法

做法就是在可行域之外设置障碍,可解决等式和不等式约束问题,但求出的最优解往往不在可行域内。

将约束条件转化成函数表达式的一部分,使新的函数式变为无约束的二次规划问题:

约束条件转换:

 将等式和不等式转换后的式子融合:

算法步骤:

1 确定初始点x0,初始罚银子Mk(可取M1=1),设置精确度

2 用解析法或者其他方法求解驻点,得到x

3 当Mk*p(x)<精确度将此x作为最优解,若不满足将持续增大Mk

(很多算例上直接在算出驻点表达式后,将Mk趋近无穷来求解)

内点罚函数法

 做法就是在可行域内部设限制,靠近边缘的域设置较大的障碍,边缘的障碍无穷大,用来解决不等式约束问题,算出的解必在可行域内部

同外点法一样将约束条件转化为函数的一部分,使之成为无约束二次规划问题:

约束条件转化:

倒数障碍函数和对数障碍函数(使用其中的一种就可以)

算法步骤:和外点法类似,但当前解不满足精度要求时,rk会缩小,甚多算例将rk趋近0来求解函数最小值

原文地址:https://www.cnblogs.com/niulang/p/9207568.html