拉格朗日松弛是一种常见的求解大规模整数规划/混合整数规划的有效方法。目前网络上关于拉格朗日松弛的解读多数是从拉格朗日松弛求解非线性规划问题的角度着手,很少有关于拉格松弛求解整数规划的内容。另一方面在实践层面上拉格朗日松弛方法 有着诸多需要注意的问题,而教科书理论证明往往为了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 让不可分问题变为可分问题
有如下优化问题
决策变量有两大类