图论: 差分约束系统
2016-05-19 23:26
239 查看
差分约束系统
如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),
则称其为差分约束系统(system of difference
constraints)。亦即,差分约束系统是求解关于一组变量的
特殊不等式组的方法。
求解差分约束系统,可以转化成图论的单源最短路径(或最长路径)问题。
观察xj-xi<=bk,会发现它类似最短路中的三角不等式d[v]<=d[u]+w[u,v],即d[v]-d[u]<=w[u,v]。因此,
以每个变量xi为结点,对于约束条件xj-xi<=bk,连接一条边(i,j),边权为bk。我们再增加一个源点s,s与所
有定点相连,边权均为0。对这个图,以s为源点运行Bellman-ford算法(或SPFA算法),最终{d[
i]}即为一
组可行解。
其实我想总结的是:
怎么将实际问题中确定约束条件的符号, 来却定用最长路还是最短路.
1.
最短路: d[x] - d[y] >=
Z ==> d[y]
<= d[x]+(-Z)
spfa算法的判断条件变成:
if( dist[edges[e].v] >
dist[u]+edges[e].w )
dist[edges[e].v] = dist[u]+edges[e].w
连边 x->y 权值为-Z,
初始化为源点到个点的距离为INF(无穷大), 源点到源点为0
目的:
求出最短路满足它们与源点之间的相互差值最大.
2.
最长路: d[x] - d[y] >=
Z ==> d[x]
>= d[y]+Z
spfa算法的判断条件变成:
if( dist[edges[e].v] <
dist[u]+edges[e].w )
dist[edges[e].v] = dist[u]+edges[e].w
连边 y->x 权值为Z, 初始化为源点到个点的距离为-INF(无穷小), 源点到源点为0
目的:
求出最长路满足它们与源点之间的相互差值最小.
如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),
则称其为差分约束系统(system of difference
constraints)。亦即,差分约束系统是求解关于一组变量的
特殊不等式组的方法。
求解差分约束系统,可以转化成图论的单源最短路径(或最长路径)问题。
观察xj-xi<=bk,会发现它类似最短路中的三角不等式d[v]<=d[u]+w[u,v],即d[v]-d[u]<=w[u,v]。因此,
以每个变量xi为结点,对于约束条件xj-xi<=bk,连接一条边(i,j),边权为bk。我们再增加一个源点s,s与所
有定点相连,边权均为0。对这个图,以s为源点运行Bellman-ford算法(或SPFA算法),最终{d[
i]}即为一
组可行解。
其实我想总结的是:
怎么将实际问题中确定约束条件的符号, 来却定用最长路还是最短路.
1.
最短路: d[x] - d[y] >=
Z ==> d[y]
<= d[x]+(-Z)
spfa算法的判断条件变成:
if( dist[edges[e].v] >
dist[u]+edges[e].w )
dist[edges[e].v] = dist[u]+edges[e].w
连边 x->y 权值为-Z,
初始化为源点到个点的距离为INF(无穷大), 源点到源点为0
目的:
求出最短路满足它们与源点之间的相互差值最大.
2.
最长路: d[x] - d[y] >=
Z ==> d[x]
>= d[y]+Z
spfa算法的判断条件变成:
if( dist[edges[e].v] <
dist[u]+edges[e].w )
dist[edges[e].v] = dist[u]+edges[e].w
连边 y->x 权值为Z, 初始化为源点到个点的距离为-INF(无穷小), 源点到源点为0
目的:
求出最长路满足它们与源点之间的相互差值最小.
相关文章推荐
- ACM: 图论题 poj 1275 差分约束题
- ACM: 图论题 poj 1236 强连通
- ACM: 图论题 poj 1149 网络流问题
- ACM: 图论题 poj 1201 差分约束
- ACM: 搜索题 poj 1020
- ACM: 图论题 poj 3308 最大流问题
- Android的自定义控件起步
- ACM: 图论题 poj 3177 同 3352
- dos批处理中%~dp0%的说明
- ACM: 图论题 poj 2186 强连通分量
- ACM: 博弈题 poj 1143 状态压缩
- 本周学习的代码(数构 深度 广度 优先遍历)
- [原创]关于设置linux中vim 显示行号
- ACM: 动态规划题 poj&nb…
- ACM: 图论题 poj 3…
- 兴趣学习: opencv 实现画图程序
- 兴趣学习: opencv -- 视频读写, 鼠…
- ACM: 动态规划题 poj 2923
- ACM: 动态规划题 poj&nb…
- ACM: 动态规划题 poj 3093 0-1背包