Dantzig-Wolfe分解

参考资料:Introduction to Linear Programming, Dimitris Bertsimas etc

这篇博客是个人笔记的电子版(●ˇ∀ˇ●),希望之后的自己也能看懂吧

在这本教材的Dantzig-Wolfe分解章节中,作者主要列举了两个小例子,结合坐标图,解释这种分解算法的过程,非常推荐看原书的讲解。

大家小心,我要开始胡诌了......


  • 学习体会
    Dantzig-Wolfe分解主要是针对大型线性规划问题的一种精确算法。其思想是,对于一些有特殊结构(约束矩阵的一部分是由对角分块矩阵构成,另一部分是耦合约束(coupling constraints),具体的样式可以参考下图的(6.10))的线性规划问题,将原大规模矩阵分解成 主问题+若干子问题 求解。
    为了便于理解,可以把主问题视为一个中心,把子问题视为若干小部门,小部门向中心反馈信息(信息指的是,能够改进目标函数值的进基变量和对应的列),中心收到信息后会更新自己的信息库(目标函数、约束矩阵、基等)并求解,得到对偶信息;中心将这个对偶变量的值下发到小部门,以便于小部门更新他们的目标函数。
    其实质是列生成,但值得注意的是"如何引入列生成算法":Dantzig-Wolfe分解算法用到了线性规划问题解的表示定理(线性规划问题可行域中的任一点可以表示成极点的凸组合+极射线的非负组合 ),从而将原问题(决策变量为x)转化为等价问题(决策变量为组合系数λ、θ)。如此一来,转化后的问题有更少的约束(更重要的是,转换后的约束有上述的特殊结构,这是我们希望看到的)、更多的变量(因为线性规划问题的极点、极射线是很多,在实际场景中很难全部找到,其实也没必要全部找到------这就启发我们使用列生成算法)。以原问题是最小化问题为例,简单说说子问题的构造:目标函数是主问题(Master)的非基变量的检验数(minimize its reduced cost),约束是上述特殊结构约束矩阵中的对应分块。子问题主要是想检查还有没有更好的变量可以进基,从而进一步减小主问题的目标函数值。(注:这里说的主问题,具体指的是限制性主问题(restricted master problem),二者的区别在于后者只有部分列,前者有全部列)。
    有意思的是,在计算过程 中,这种算法给出的可行解可能并不是极点(而是极点的凸组合);但最优解还是会落到极点上啦。
    另外,本章最后还给出了一个定理------关于该分解算法求得的最优值下界,证明过程特别巧妙!
  • 小提示
    学这个算法之前,最好把单纯形法中的概念弄清楚,比如:reduced cost(检验数及其计算、如何选择进基变量), dual variable, simplex multiplier, 最小比值原则选择出基变量、reduced cost与dual variable之间的关系等等。


例子6.2


例子6.3


如何启动这个算法

这个算法需要一个主问题的初始基可行解来启动。

如果没有,那么参照"两阶段法"的思路,引入辅助变量(人工变量),构造辅助主问题。

通过求解辅助问题,判断主问题是否可行,如果可行,找到初始基可行解。

  • Dantzig-Wolfe分解算法优势在于:相比于直接在原问题上做revised simplex method,这种算法很节省计算内存。

关于解的下界,定理证明

写出主问题的对偶问题,

根据"z是主问题的可行解对应的目标函数值",找到主问题的可行解对应的对偶变量值(q,r1,r2);

虽然这个对偶变量值(q,r1,r2)能够使得" q T b 0 + r 1 + r 2 = z q^Tb_0+r_1+r_2=z qTb0+r1+r2=z"成立,但是并不一定是 主问题的对偶问题 的可行解;

这里有一个很重要的点是,我们已经假设 子问题i的最优值zi是有限的,于是可以找到合适的r1,r2使得 这个对偶变量值(q,r1,r2) 对 主问题的对偶问题 可行。

然后,根据原问题与对偶问题之间的弱对偶定理,写出原问题最优解下界的不等式。

相关推荐
sell-cloud10 小时前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国12 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI12 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区13 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris14 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy15 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V15 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI15 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技15 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据15 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化