最优化方法外罚函数法Matlab,最优化-罚函数法,乘子法

罚函数法:求解约束条件下的最优化问题罚函数法的思路就是改变函数f(x),将f(x) 变为F(x)使得F(x)在无约束条件下取得的最优解,正好符合我们的约束条件,且正好为f(x)在约束条件下的最优解先有最优化问题f(x), 可行区域是c(x) <= 0外罚函数法:对于F(x)在可行区域内仍是f(x),在可行区域外,对函数加上惩罚即可F(x) = f(x) c(x) <=0F(x)...
摘要由CSDN通过智能技术生成

罚函数法:

求解约束条件下的最优化问题

罚函数法的思路就是改变函数f(x),将f(x) 变为F(x)

使得F(x)在无约束条件下取得的最优解,正好符合我们的约束条件,且正好为f(x)在约束条件下的最优解

先有最优化问题f(x),   可行区域是c(x) <= 0

外罚函数法:

对于F(x)在可行区域内仍是f(x),在可行区域外,对函数加上惩罚即可

F(x) = f(x)   c(x) <=0

F(x) = f(x) + α/2 (c(x))2

可以改写为F(x) = f(x) + α/2 (max(c(x), 0)2)

对于一般的约束条件c1(x) <=0 ,,,,,,,cn(x) <= 0

F(x) = f(x) + α/2 (max(c1(x)2, ,,,,,,,cn(x)2,,0)

记(max(c1(x)2, ,,,,,,,cn(x)2,,0)为S(x)

可以看到,当α -> +∞时,F(x)在无约束条件下的最优解符合条件

算法流程:

选择递增序列 αk 此序列趋近于 +∞

选定初始点x0

对于第i次迭代,求解无约束最优化问题F(x) = f(x) + αi/2 (max(c1(x)2, ,,,,,,,cn(x)2,,0)标志

终止条件:  αi* S(xi) < e

此时将xi记为最优化问题的解

一般可用 αi= 2i作为序列

缺点:

当迭代次数较多时,αi会特别大,导致Hesse矩阵的条件数特别大,这就给求解无约束

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值