最优传输系列是基于Computational Optimal Transport开源书的读书笔记
3.5 网络单纯形法
有了3.4节里的西北角算法,我们现在有能力枚举可能为最优解的传输,离解决Kantorovich relaxation又更近一步了。
在3.5小节里,我们迈出这至关重要的一步,介绍网络单纯形法(Simplex method),终于可以从头到尾解决最优传输问题了。
3.4里提到,最优传输属于线性规划问题,所以它的可行集是一个高维多面体
单纯形法的本质思想在于,从可行多面体的一个顶点出发,每一步都到达一个离最优更接近的顶点,逐步达到最优。
单纯形的最差复杂度是指数级的,不过它的平均复杂度却非常高效,一般在多项式时间内找到最优解。
那么,在具体介绍之前,这里给出单纯形法的总体结构:
如果加入后图中存在环,方程组可能无解
3.5.1 检查最优解
对于一个可行解P,如果与P对应的Kantorovich对偶问题解,也是可行的,那么P和即为最优解
找到对应的十分简单,只需满足这个条件:
注意P中最多有条不为零的传输,也就是说,需要解的方程组里最多只能有个方程,所以解一定是不唯一的。
于是我们设一些自由变量为零,得到一个解。
上图为一个可行的解
下图中即为解F§的过程,可以看到设为零,即可让方程组有唯一解
此时如果中所有元素都满足,那么我们就已经找到最优解了。
不过因为方程组只保证存在流量的路径满足以上条件,在方程组的范围外很有可能存在,那么不符合条件。
这时,把不满足条件的边加入到方程组中,使得它也符合条件,这样向最优解更进一步。
3.5.2 单纯形法-迭代
如果加入后,方程组里仍然不存在环,那么只需要重新解一遍方程组,回到第二步检查是否得到了最优解。这种情况下,本质上只是减少了一个自由变量,P本身不需要改变,只是改变它的对偶解
如果存在环,那么必须将环移去,否则方程组可能无解
拆开一个环的过程十分容易理解:新加入的边在P中并没有质量,那么只需将环“旋转”,把零质量“转”到另一条边,再把该边去除,环即不复存在
图3.5:这里加入边后,出现环
经过旋转过程,最小质量边被移除,它的质量转移给。
将环移除后,只需再次解方程组,回到第二步
3.5.3给出了对迭代改进的证明,确定每次迭代只会得到更优的结果
经过3.5.3证明,每次迭代只可能离最优解更进一步,网络单纯形法一定会达到最优。
单纯形法中图操作的具体实现有不同的方式,这篇论文中对高效图操作有详细的介绍。
这样,我们终于有了完整的解决最优传输的方法,达到了学习的一个里程碑。