赞
踩
论文地址: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,直到得到最优解。
CRG是为了解决CDR problem而产生的,CDR问题是一类特定的线性规划问题(LP),其特征有:
CRG可以通过合适的decomposition方法来分解成子问题,比如Benders decomposition或者Dantzig–Wolfe decomposition。
这种问题如果单纯通过列生成法来解决,当找到一个列并把它作为新列加入RMP时,将带入新的关联约束,此时Pricing model对新列的判定不一定仍然有效,因为PP中只有对对偶的部分描述(只有对列的部分)仍然可用。主要是因为无法确定哪一个变量是双重变量,既与行相关又与列相关。
此时,需要引入同时进行优化的row与column生成算法。
这个方法最初出现在Linear Programs with Column-Dependent-Rows中,可以被拓展用于multi-stage cutting stock、time-constrained routing等问题。
在CRG问题中,很重点的一点是,新的关联约束是公式有效性所需的结构约束,这是与branch-and-cut-and-price问题不同的地方。
branch-and-price:分支定价法是将column generation列生成算法集成到branch-and-bound分支定界法中。通过求解一个分离子问题得到的有效不等式,可以在分支价格树的节点上生成加强边界(strengthens LP relaxations)。
branch-and-cut-and-price:在这个算法中,通过分别求解分离和定价子问题,行和列被顺序地且彼此独立地生成。
而Simultaneous Column-and-Row Generation是同时生成行与列。
Master problem:
其中:
Short restricted master problem:
其中:
这些假设用中文描述都不是那么精确,下附英文版本可以对照来理解:
其中:
the objective is to cover all items j ∈ J by the sets k ∈ K at minimum total cost.
Relaxing the integrality restrictions:
The objective is to minimize the total number of stock rolls required.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。