Column-and-row Generation 列和行生成算法(一)

论文地址: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 三个基本假设

  1. x变量的生成取决于y变量的生成。此外,每个x变量只与一组linking constraint相关联。
  2. 最小变量集(minimal variable set)是一组y变量,它触发一组x变量的生成以及假设1意义上的相关linking constraint。这一假设意味着,在将至少一个相关最小变量集中的所有变量添加到SRMP之前,SRMP的可行解不违反任何缺失linking constraint。
  3. 当一个新的约束被引入至这个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.
  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值