数值优化(Numerical Optimization)学习系列-惩罚和增广拉格朗日方法(Augmented Lagrangian Methods)

原文地址为: 数值优化(Numerical Optimization)学习系列-惩罚和增广拉格朗日方法(Augmented Lagrangian Methods)

概述

求解带约束的最优化问题,一类很重要的方法就是将约束添加到目标函数中,从而转换为一系列子问题进行求解,最终逼近最优解。关键问题是如何将约束进行转换。本节主要介绍
1. 二次惩罚方法
2. 非平滑惩罚方法
3. 增广拉格朗日方法

二次惩罚方法

动机

带约束问题如果转换为目标函数加上一个对约束的惩罚项,则问题转换为一个无约束问题。
转换后的问题可以通过惩罚项的系数进行控制,一个比较常见的惩罚函数就是二次惩罚。

等式约束的最优化问题

等式约束问题可以表示为

min f(x)s.t ci(x)=0,iE
添加一个二次惩罚项,则有
Q(x;μ)=f(x)+μ2iEc2i(x)
其中 μ 是惩罚参数,直观上只要增加惩罚参数的值就可以逼近原始问题的最优解。
在实际中,对于某个惩罚参数 μ 只要几步无约束最优化问题,不需要寻找最优解。

一般化约束最优化问题

一般化约束最优化问题表示为

minf(x)s.tci(x)=0 iE     ci(x)0 iI
添加惩罚项系数结果为
Q(x;μ)=f(x)+μ2iEc2i(x)+μ2iI([ci(x)])2
其中 ci(x) 表示当该值大于0时,结果为0,否则为 ci(x)

二次惩罚项通用框架

这里写图片描述

1.参数 μ 的选择可以根据无约束问题的优化难度进行确定,如果很容易优化则可以 μk+1=μk ,否则可以选择 μk+1=μk
2. 定理:如果转换后的问题 Q(x;μk) 每一步都计算最优解,并且当 μk 时能够接近原始问题的最优解。

非平滑惩罚函数

有些惩罚函数是精确的,即惩罚项参数 μ 达到一定值时转换后的问题的最优解就是原始问题的最优解,其中l1惩罚项就是精确的,表示如下

ϕ1(x;μ)=f(x)+μiE|ci(x)|+μiE|ci(x)|

通用求解框架

这里写图片描述

增广拉格朗日方法

动机

增广拉格朗日方法在拉格朗日方法的基础上添加了二次惩罚项,从而使得转换后的问题能够更容易求解,不至于因条件数变大不好求。则转换后的问题为

L(x,λ;μ)=f(x)iEλici(x)+μ2iEci(x)2

在第K步迭代过程中,固定惩罚项参数 μ λk ,此时优化x,根据最优化条件有
xL=f(x)iE(λkiμkci(x))ci(x)=0

对比最优性条件,应该有 f(x)=0;λ=λkiμkci(x) ,从而很自然的可以将 λk+1=λkiμkci(x)

等式约束通用框架

这里写图片描述

实际应用

在实际中,增广拉格朗日方法可以很有效的处理边界约束和线性约束最优化问题。

总结

了解通过将约束转换为惩罚项添加到目标函数上的方法,了解增广拉格朗日方法的动机。


转载请注明本文地址: 数值优化(Numerical Optimization)学习系列-惩罚和增广拉格朗日方法(Augmented Lagrangian Methods)
增广拉格朗日法是一种用于求解带约束的最优化问题的方法。在该方法中,通过在拉格朗日方法的基础上添加二次惩罚,将原始问题转换为一个更容易求解的问题。转换后的问题可以表示为: (x,λ;μ)=f(x)−∑i∈λici(x)+μ2∑i∈ci(x)2 其中,f(x)是目标函数,ci(x)是约束函数,λ是拉格朗日乘子,μ是惩罚参数。增广拉格朗日法的目标是通过调整乘子和惩罚参数的值,使得转换后的问题的解逼近原始问题的最优解。 在MATLAB中,可以使用增广拉格朗日法来求解带约束的最优化问题。可以定义一个增广拉格朗日乘子法的函数,其中包括设置迭代次数、惩罚参数、乘子的初始值等。然后通过调用该函数,传入目标函数、约束函数等参数,即可求解最优化问题。 例如,在MATLAB中可以定义一个名为multphr的函数,其中包括迭代次数、惩罚参数、乘子的初始值等设置。然后可以调用该函数,传入目标函数、约束函数等参数,如下所示: answer=multphr(fun,hf,gfun,dfun,dhf,dgf,x0) 其中,fun是目标函数,hf是约束函数,gfun、dfun、dhf、dgf是相关的函数句柄,x0是初始值。函数multphr会根据设置的迭代次数、惩罚参数、乘子的初始值等进行迭代计算,最终得到最优解。 请注意,以上是一个示例,具体的实现可能会根据具体问题和需求进行调整。 #### 引用[.reference_title] - *1* *2* [数值优化Numerical Optimization学习系列-惩罚增广拉格朗日方法Augmented Lagrangian Methods)](https://blog.csdn.net/weixin_38208741/article/details/84085268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [大连理工优化方法增广拉格朗日方法MATLAB程序](https://blog.csdn.net/weixin_39675215/article/details/116080758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值