论文地址:Linear Programs with Column-Dependent-Rows
行生成算法与列生成算法
其实行生成算法(Row Generation/Constraint Generation)与列生成算法(Column Generation)单独的算法解释是有的:
浅析constraint generation(约束生成,行生成)和column generation(列生成)
然而当两个算法需要统一成一个算法(Column-and-row Generation,以下简称CRG)的时候,发现相关的中资料特别少,那我就来抛砖引玉吧。
行生成算法简单来说是不断地生成一个行(被违反约束行),根据加入到RMP(Restricted Master Problem)中,求解RMP,直到得到最优解。
而列生成算法是不断地生成一个列(可行的变量列),根据PP(Price Problem)判断是否加入到RMP中,求解RMP,直到得到最优解。
column-dependent-rows (CDR-problems)
CRG是为了解决CDR problem而产生的,CDR问题是一类特定的线性规划问题(LP),其特征有:
- 生成列的同时也可能会生成相关的约束(linking constraints)(行),即存在与行和列同时相关的变量。
- 相关联的约束太多,无法将这些约束直接包含在公式中。完整的约束集的显性描述只在整个变量集存在时可用。约束不全是显性的,也就是说,行的个数不可能在一开始就知道。
CRG可以通过合适的decomposition方法来分解成子问题,比如