matlab求解非线性整数规划_拉格朗日松弛求解整数规划浅析(附Python代码实例)...

本文介绍了拉格朗日松弛作为解决大规模整数规划的有效方法,强调了它相较于直接松弛0,1变量的优越性。文章详细阐述了拉格朗日松弛的基本思想、为何使用、迭代算法及其收敛性分析,并提醒读者在实施时注意次梯度算法的步长选取、约束松弛、子问题简单性和可分性。最后,给出了一个实际的二次整数规划问题的求解实例和相关代码参考。" 79673680,5856632,判断四点构成正方形的算法,"['算法', '几何计算', '坐标系统', '编程挑战']
摘要由CSDN通过智能技术生成

fc7e4625123d6761d947307df32966d8.png

拉格朗日松弛是一种常见的求解大规模整数规划/混合整数规划的有效方法。目前网络上关于拉格朗日松弛的解读多数是从拉格朗日松弛求解非线性规划问题的角度着手,很少有关于拉格松弛求解整数规划的内容。另一方面在实践层面上拉格朗日松弛方法 有着诸多需要注意的问题,而教科书理论证明往往为了proof的漂亮很少讨论这些缺陷和问题。

我在博士阶段先后两次修了Nonlinear programming的课程,主讲老师是Peter Luh老师(陆宝森老师)。陆老师是研究拉格朗日松弛求解整数规划领域的前驱者,我十分有幸和陆老师讨论交流过很多问题,后边自己也动手实践过拉格朗日松弛算法,并发表了相关的paper,因此这里我把一些经验分享出来。

0 大规模整数规划/混合整数规划的 decomposition method 简介

由于大规模整数规划/混合整数规划往往是NP-hard的,所以我们很难直接对这些问题求解。每当遇到这些复杂问题的时候,一个基本思路就是对复杂的优化问题进行分解(decomposition)。谈到整数规划问题的分解主流的就三种方法:

1 Benders decomposition (主要思想是行生成+割平面方法)

2 Dantzig-Wolfe decomposition (主要思想其实就是列生成)

3 Lagrangian decomposition (主要思想是 Lagrangian relaxation)

前两种方法今天不是我们的主角,下面我们主要介绍 Lagrangian relaxation

1 拉格朗日松弛求解整数规划问题基本思想回顾

1.1 把约束放到目标上去 达到化繁为简的目的

这个我们就不具体讲了,因为基本上教科书上都会讲到。

1.2 尽量松弛掉linked/coupling constraints 让不可分问题变为可分问题

有如下优化问题

(A1)

(A2)

(A3)

决策变量有两大类

,约束(A1)和约束(A2)分别只和
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值