拉格朗日松弛(lagrangian relaxation) - An Overview

拉格朗日松弛是优化问题中的一种常用方法,尤其在处理复杂约束时。它通过将约束转化为惩罚项加入目标函数,形成易于求解的下界问题。对于整数或混合整数规划,拉格朗日松弛可提供原问题的下界,并通过修复算法得到上界。文章介绍了如何应用拉格朗日松弛进行约束放松,以及在存在耦合约束时的拉格朗日分解策略,强调了其在实际问题中的实用性和理论与实践之间的差距。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拉格朗日松弛(lagrangian relaxation) - An Overview


1. Application

Relaxation is a commonly used method in integer or mixed integer programming. The author’s understanding of relaxation is that it relaxes requirements for some complex constraints or variables and preserve some of the original problem. In this way it can get a bound for the original problem.

Lagrangian Relaxation is applied to relax the complex contraints, which are added into the objective function as a penalty. And the relaxed problem becomes an easier problem with simple constraints that can be solved swiftly. Or it can be divided into simple sub-problems with polynomial time algorithm that can be applied.

So it should be known that the lagrangian relaxation obtains a lower bound of the original minimum problem, that is, an infeasible solution quite possibly.

Therefore, after getting the optimal solution of lagrangian relaxation problem, we still need a heuristic algorithm to repair the obtained infeasible solution into a feasible solution, which can help get a upper bound of the original problem.

2. Constraints relaxation

Assume that we have the following problem:

Z I P = m i n c T x + d T y A x ≥ b B x ≥ d x ∈ Z + Z_{IP} = min \quad c^{T}x + d^{T}y\\ Ax \geq b\\ Bx \geq d\\ x\in \mathbb{Z^{+}} ZIP=mincTx+dTyAxbBxdxZ+

It has 2 constraints, and we can apply lagrangian relaxation by add the constraint A x ≥ b Ax \geq b Axb to the objective function.

And we get the lagrangian relaxation problem.
Z L R ( λ ) = m i n c T x + λ T ( b − A x ) B x ≥ d x ∈ Z + Z_{LR}(\lambda) = min \quad c^{T}x + \lambda^{T}(b-Ax)\\ Bx \geq d\\ x\in \mathbb{Z^{+}} ZLR(λ)=mincTx+λT(bAx)BxdxZ+

λ \lambda λ is called the lagrange multiplier.

It should be noticed that the constraint decides whether λ \lambda λ is positive or negative.

We can understand λ T ( b − A x ) \lambda^{T}(b-Ax) λT(bAx) as the penalty function. Here A x ≥ b Ax \geq b Axb, and b − A x ≤ 0 b - Ax \leq 0 bAx0. So λ \lambda λ is positive. Then, λ T ( b − A x ) \lambda^{T}(b-Ax) λT(bAx) is negative, the LR is the lower bound of the original problem.

Similarly, if the penalty function transformed from a constraint is positive, λ \lambda λ should be negative. If the penalty function is zero, there is no demands on λ \lambda λ.

And obviously, here we have

Z L R ( λ ) ≤ Z I P Z_{LR}(\lambda) \leq Z_{IP} ZLR(λ)ZIP

For every λ \lambda λ, there is a lagrangian relaxation problem Z L R ( λ ) Z_{LR}(\lambda) ZLR(λ). So we need to find the best λ \lambda λ to make the Z L R ( λ ) Z_{LR}(\lambda) ZLR(λ) big enough, which leads us to the dual problem Z D = m a x λ ≥ 0 Z L R ( λ ) Z_{D} = max_{\lambda \geq 0}Z_{LR}(\lambda) ZD=maxλ0ZLR(λ).

Here subgradient algorithm is usually applied to solve the dual problem and update Lagrange multipliers.

3. Lagrangian Decomposition

For some problems with linked/coupling constraints, for example

Z I P = m i n c T x A x ≥ b x = y B y ≥ d x , y ∈ Z + Z_{IP} = min \quad c^{T}x \\ Ax \geq b\\ x=y\\ By \geq d\\ x,y \in \mathbb{Z^{+}} ZIP=mincTxAxbx=yBydx,yZ+

Here constraint x = y x=y x=y links x x x and y y y.

So if we relax this constraint, we can get,

Z L R ( λ ) = m i n c T x + λ T ( x − y ) A x ≥ b B y ≥ d x , y ∈ Z + Z_{LR}(\lambda) = min \quad c^{T}x + \lambda^{T}(x - y)\\ Ax \geq b\\ By \geq d\\ x,y \in \mathbb{Z^{+}} ZLR(λ)=mincTx+λT(xy)AxbBydx,yZ+

We can divide it into 2 sub-problems,

Z L R 1 ( λ ) = m i n c T x + λ T x A x ≥ b x ∈ Z + Z_{LR1}(\lambda) = min \quad c^{T}x + \lambda^{T}x\\ Ax \geq b\\ x \in \mathbb{Z^{+}} ZLR1(λ)=mincTx+λTxAxbxZ+

Z L R 2 ( λ ) = m i n − λ T y B y ≥ d y ∈ Z + Z_{LR2}(\lambda) = min -\lambda^{T}y\\ By \geq d\\ y \in \mathbb{Z^{+}} ZLR2(λ)=minλTyBydyZ+


4. Conclusion

Lagrangian relaxation is a practical, simple and widely used method in problems, such as the (capacitated) facility location problem. However, as any of the method, there is alway huge gap between theory to practice.

For more detailed theory learning for beginners:
1. 整数规划的拉格朗日松弛(理论分析+Python代码实现) - 王源
2. 拉格朗日松弛-刘林冬

For code implementation learning, I strongly recommend that readers refer to the below articles:
1. 使用拉格朗日松弛求解约束最短路径问题 ( Matlab) - Mingrui Yu
2. Lagrange Relaxation求解TSP ( Java) - 数据魔术师

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值