问题
已知一系列不等式
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪Xi1−Xj1≤d1Xi2−Xj3≤d2Xi3−Xj3≤d3...Xik−Xjk≤dk{Xi1−Xj1≤d1Xi2−Xj3≤d2Xi3−Xj3≤d3...Xik−Xjk≤dk
需要求解Xn−X1Xn−X1的最大值,即求最小D,使得Xn−X1≤DXn−X1≤D
分析
移项
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪Xi1≤d1+Xj1Xi2≤d2+Xj3Xi3≤d3+Xj3...Xik≤dk+Xjk{Xi1≤d1+Xj1Xi2≤d2+Xj3Xi3≤d3+Xj3...Xik≤dk+Xjk
而最短路中
把X看作结点dis值,dkdk看作边权,从ii到连接权值为dd的边,使得,正好满足X的关系
实现
当求Xn−X1Xn−X1最大值时,建立最短路模型,将所有不等式划为Xi≤Xj+dkXi≤Xj+dk型式,从jj到连接权值为dkdk的边(可能为负)。
当求Xn−X1Xn−X1最小值时,建立最长路模型,将所有不等式划为Xi≥Xj+dkXi≥Xj+dk型式,从jj到连接权值为dkdk的边。
无解情况:
1.有负权环(正权环),说明关系存在矛盾,无解
2.不存在路径,说明1与n没有关系,答案为无穷大