Dantzig-Wolfe分解

适用场景

Dantzig-Wolfe分解的适合用于求解一些具有特定结构的LP & MILP

原始问题

Dantzig-Wolfe分解_第1张图片

其中,第一个等式约束为conflicting constrain,剩余的约束都是独立的blocks。

Minkowski-Weyl’s representation theorem

采用这一定理,可以将多面体中的任意一个点都用多面体的extreme points及extreme rays表达

 

Dantzig-Wolfe分解_第2张图片

利用上面的定理重新表达x,就可以将原始问题转换为下面的形式:

在这个形式中,变量数目大大增加,但是约束数目有一定程度减小(不再需要原来x属于某个多面体的约束)

master problem

Dantzig-Wolfe分解_第3张图片

Master probelm的对偶问题

Dantzig-Wolfe分解_第4张图片

由于大部分变量的值都可能为0,因此可以只选择一部分变量构建优化问题(此时变量数目就可以大大减少,且未选择的变量的值看做是0),就得到了下面的restriced master problem:

Restricted Master probelm

Dantzig-Wolfe分解_第5张图片

Dantzig-Wolfe分解_第6张图片

1.为什么求解子问题(RMP)就可以求解出原问题?

----由于RMP的目标函数值是原问题的目标函数的上界,因此最小化RMP也就可以逐步缩小原问题的上界,逐渐逼近原问题的解。

2.当求出子问题RMP的primal solution(lambda)及dual solution(pi)时,如何得到原问题的解?

----由于RMP相当于将原问题MP中的一些变量取为0,因此,将lambda补上一些0之后(补0的数目等于不在RMP中的原问题的变量个数)得到的lambda*,对原问题同样可行。也就是说子问题的primal solution对于原问题可行。

若子问题的dual solution(pi)对于原问题的对偶问题也可行的话,就证明存在一个primal solution及dual solution,使得原问题(MP)及原问题对偶问题(DMP)均可行,则得到原问题的最优解。因此,接下来主要需要检查,子问题的dual solution(pi)对于原问题的对偶问题是否可行?

若想知道某个解pi对于原问题的对偶问题是否可行,只需要证明原问题的所有变量在这个解处计算出的reduced cost均大于等于0。当出现某个变量的reduced cost小于0,则说明这个解对于原问题的对偶问题不可行。就将这个变量加入到subproblem中。

若所有变量的reduced cost都大于等于0,则说明解pi对于原问题的对偶问题也可行,由于lambda*对于原问题已经可行,此时就可以得到lambda* 与 pi分别是原问题及原问题对偶问题的最优解。

你可能感兴趣的:(优化)