https://zhuanlan.zhihu.com/p/49752900
https://blog.csdn.net/u011561033/article/details/96895023
https://blog.csdn.net/Treasureashes/article/details/118098304
行生成(constraint generation)
行生成,又称为“割平面法”,在线性规划中等同于约束,又称为“延迟约束生成法”。可用于求解大规模线性求解规划问题。
行生成条件下,先考虑一部分约束子集下的最优解。
将该最优解带入整个线性规模模型中,判断其是否为可行解。如果是,该解便是最优解;如果不是可行解,判断其是违反了什么约束,再将违反的约束加入约束集中,再次迭代求解。
因此行生成解法的重点在于选择的割平面是否合适。
列约束
这篇文章对列约束的讲解特别详细,大家可以看看:
https://xijunlee.github.io/2017/10/12/%E4%BB%8E%E5%8D%95%E7%BA%AF%E5%9E%8B%E6%B3%95%E5%88%B0%E5%88%97%E7%94%9F%E6%88%90%E7%AE%97%E6%B3%95/
先把原问题(master problem)restrict到一个规模更小(即变量数比原问题少的)的restricted master problem,在restricted master problem上用单纯型法求最优解,但是此时求得的最优解只是restricted master problem上的,并不是master problem的最优解。此时,就需要通过一个subproblem去check在那些未被考虑的变量中是否有使得reduced cost rate小于零的呢(其具体的做法就是通过求解一个线性最大化问题,即求未被考虑的变量中的reduced cost rate的最大值)?如果有,那么我就把这个变量的相关系数列加入到restricted master problem的系数矩阵中。经过这样反复的迭代,直到subproblem中的reduced cost rate大于等于零,那么master problem就求到了最优解。
Column-and-row Generation(CRG)
column-dependent-rows(CDR)problem是一类特定的LP问题:
(1)生成列的同时也可能会生成相关的约束(linking constraints)(行),即存在与行和列同时相关的变量。
(2)相关联的约束太多,无法将这些约束直接包含在公式中。完整的约束集的显性描述只在整个变量集存在时可用。约束不全是显性的,也就是说,行的个数不可能在一开始就知道。
针对该类问题,可以采用Benders或者Dantzig–Wolfe方法分解成子问题,进行求解。
Benders分解算法通常对应行生成,而Dantzig-Wolfe分解算法对应列生成。
https://blog.csdn.net/kittyzc/article/details/81712257