
运筹系列28:网络单纯形法
network program可以看做是最小费用流问题的数学模型。定义有向图 G = ( V , E ) G=(V,E) G=(V,E), V V V用行表示, E E E用列表示,从 i i i到 k k k有边的话,则有一列的第 i i i行是1,第 k k k行是-1。 x j x_j xj表示第 j j j条边上的流量,如下图:
对于这类问题,如果存在一条path,那么 Σ \Sigma Σ方向*边 = e 终 点 − e 起 点 e_{终点}-e_{起点} e终点−e起点,其中 e e e表示单位向量。 定理:每一个连通图都有一个伸展树(包含所有节点的树) 定理:树的 A A A的列相互线性独立,秩为(节点数-1)。
根节点衍生出的伸展树和 e w e_w ew构成一组基 B B B。我们回忆一下单纯形法的出入基过程: 每次将负数残差 c N T − c B T B − 1 N c^T_N-c^T_BB^{-1}N cNT−cBTB−1N最小(绝对值最大)的非基变量 x i x_i xi替换为基变量,同时将 ( B − 1 b ( B − 1 N ) i ) j (\frac{B^{-1}b}{(B^{-1}N)_i})_j ((B−1N)iB−1b)j最小值对应的基变量 x j x_j xj替换为非基变量。 有3个地方用到 B − 1 B^{-1} B−1: y T B = c B T y^TB = c^T_B yTB=cBT B x = N q Bx= N_q Bx=Nq B x = b Bx=b Bx=b 这三个地方都可以用上面的图快速求解,不需要再存储 B − 1 B^{-1} B−1。以 y T B = c B T y^TB = c^T_B yTB=cBT为例:
我们有:
相当于从 y 2 y_2 y2出发遍历树。
发布日期:2021-05-08 09:44:32
浏览次数:22
分类:精选文章
本文共 1132 字,大约阅读时间需要 3 分钟。
1. network program问题
详情可参考
我们常常遇到的Assignment、Transportation、Maximum flow、Shortest path等问题都具有特殊的结构,可以用network program来建模。具体来说,network program指的是如下问题: min c T x \min c^Tx mincTx A x = b Ax= b Ax=b l ≤ x ≤ u l\le x\le u l≤x≤u 其中 A ∈ − 1 , 0 , 1 n × m A\in {-1,0,1}^{n\times m} A∈−1,0,1n×m,并且每一行只有一个1和一个-1。 下面是一个例子:

2. 求解方法
选择一个根节点,添加虚拟变量 w w w和单位向量,如下:



发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月05日 20时28分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我用wxPython搭建GUI量化系统之最小架构的运行
2021-05-10
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2021-05-10
selenium+python之切换窗口
2021-05-10
重载和重写的区别:
2021-05-10
搭建Vue项目步骤
2021-05-10
账号转账演示事务
2021-05-10
idea创建工程时错误提醒的是architectCatalog=internal
2021-05-10
SpringBoot找不到@EnableRety注解
2021-05-10
简易计算器案例
2021-05-10
在Vue中使用样式——使用内联样式
2021-05-10
Explore Optimization
2021-05-10
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
2021-05-10
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2021-05-10
解决数据库报ORA-02289:序列不存在错误
2021-05-10
map[]和map.at()取值之间的区别
2021-05-11
成功解决升级virtualenv报错问题
2021-05-11
【SQLI-Lab】靶场搭建
2021-05-11
【Bootstrap5】精细学习记录
2021-05-11