上学期写的一篇解题报告,还是传上来备份一下...
算法:单纯形or对偶定理化为最小费用流
对偶定理:
max{cx | Ax≦b, x≧0}
min{yb | yA≧c, y≧0}
原题大意:
给出一个n个点m条边的有向拓扑正权图,使得每个点都至少被一条由1到n的路径经过,现要求尽可能增加边权,使得由1到n的最长路不会增大。
抽象模型——>线性规划
设修改图后1到i的最长距离为f[i](f[i]为未知元),i到j的原权值为w[i][j],1到n的原最长路径为G,则有
会单纯形的神犇下面就不用看了...直接单纯形爆搞就是了...
首先对我们要最大化的式子进行化简,有
然后再对约束条件变形,化为
由于我们不会单纯形,所以接下来要开始用对偶定理,第一步是把原式化为矩阵形式
中间那个(m+1)*n的矩阵,前m行描述的是每个f[i]-f[j]<=-w[i][j],最后一行描述的是f[n]<=G,用矩阵乘法理解应该就没问题了。
接下来对照对偶定理的式子进行变形,化为