论文地址: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方法来分解成子问题,比如Benders decomposition或者Dantzig–Wolfe decomposition。
这种问题如果单纯通过列生成法来解决,当找到一个列并把它作为新列加入RMP时,将带入新的关联约束,此时Pricing model对新列的判定不一定仍然有效,因为PP中只有对对偶的部分描述(只有对列的部分)仍然可用。主要是因为无法确定哪一个变量是双重变量,既与行相关又与列相关。
此时,需要引入同时进行优化的row与column生成算法。
Simultaneous Column-and-Row Generation for Large-Scale Linear Programs with Column-Dependent-Rows
这个方法最初出现在Linear Programs with Column-Dependent-Rows中,可以被拓展用于multi-stage cutting stock、time-constrained routing等问题。
在CRG问题中,很重点的一点是,新的关联约束是公式有效性所需的结构约束,这是与branch-and-cut-and-price问题不同的地方。
与其它算法(branch-and-X)的区别
branch-and-price:分支定价法是将column generation列生成算法集成到branch-and-bound分支定界法中。通过求解一个分离子问题得到的有效不等式,可以在分支价格树的节点上生成加强边界(strengthens LP relaxations)。
branch-and-cut-and-price:在这个算法中,通过分别求解分离和定价子问题,行和列被顺序地且彼此独立地生成。
而Simultaneous Column-and-Row Generation是同时生成行与列。
generic mathematical formulation of CDR-problems
Master problem:
其中:
- 约束MP-y和MP-x都是显性的。
- 约束MP-yx是非显性的,即使是先验的,也是指数级的多。
Short restricted master problem:
其中:
- 初始集:
- 约束集:
- 新的列变量:
- 新的约束集:
Three main assumptions 三个基本假设
- x变量的生成取决于y变量的生成。此外,每个x变量只与一组linking constraint相关联。
- 最小变量集(minimal variable set)是一组y变量,它触发一组x变量的生成以及假设1意义上的相关linking constraint。这一假设意味着,在将至少一个相关最小变量集中的所有变量添加到SRMP之前,SRMP的可行解不违反任何缺失linking constraint。
- 当一个新的约束被引入至这个column-and-row generation中时,对任意的k,存在一个关于i的constraint,以下面的形式:
这些假设用中文描述都不是那么精确,下附英文版本可以对照来理解:
示例1:quadratic set covering model (QSC) 二次集合覆盖问题
其中:
- columns k and l
- three linking constraints for each pair of y−variables
- a large number of y−variables
the objective is to cover all items j ∈ J by the sets k ∈ K at minimum total cost.
- A is a binary | J | × | K | matrix of set memberships
- F is a symmetric positive semidefinite | K | × | K | cost matrix
Relaxing the integrality restrictions:
- P := K × K is the set of all possible pairs
- Ajk = 1, if item j is covered by set k; and 0, otherwise.
示例2:multi-stage cutting stock (MSCS) 多阶段木材下料问题
The objective is to minimize the total number of stock rolls required.
- the set of intermediate and finished rolls are denoted by I and M
- The set of cutting patterns K for the first stage constitute the columns of C
- the columns of B are formed by the set of cutting patterns N for the second stage
- The matrix D establishes the relationship between the cutting patterns in the first and the second stages.