zoukankan      html  css  js  c++  java
  • 求解二次规划问题——外点罚函数法/内点罚函数法

    外点罚函数法

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

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

    约束条件转换:

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

    算法步骤:

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

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

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

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

    内点罚函数法

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

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

    约束条件转化:

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

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

  • 相关阅读:
    spark基础(1)
    Homebrew的使用教程,镜像源的推荐,安装软件的方法
    Scala Trait(特征)
    P5308 [COCI2019] Quiz
    Vjudge contest 425291
    Vjudge contest 424925
    AT3558 Modern Painting
    Vjudge contest 425061
    Vjudge contest 423849
    Codeforces Round 704
  • 原文地址:https://www.cnblogs.com/niulang/p/9207568.html
Copyright © 2011-2022 走看看