首页 > 其他 > 详细

差分约束

时间:2020-01-20 14:34:41      阅读:80      评论:0      收藏:0      [点我收藏+]

What is Difference Constrains System?

差分约束系统<\(V, C\)>:

  • \(V\)为系统中的变量集合
  • \(C\)为系统中约束集合,即一组不等式,每一条约束的形式如 \(x_i-x_j \leq b_{i,j}\), \(x_i,x_j \in V, b_{i,j} \in R\)
    写成矩阵的形式,则每一列有且仅有一个1和-1,其余为零:
    \[ \left( \begin{matrix} 1 & -1 & 0 & 0 \0 & -1 & 1 & 0 \0 & 1 & -1 & 0 \\end{matrix} \right) \left( \begin{matrix} x_i \ x_j \ x_k \ x_l \\end{matrix} \right) \leq \left( \begin{matrix} b_{i,j} \ b_{k,j} \ b_{j,k} \\end{matrix} \right) \]

求解差分约束系统

求解差分约束系统<\(V, C\)>的解就是求满足所有不等式\(C\)的一个关于\(V\)集合的解,由于不等式往往存在多解。

通常利用有向图的最短路径、最长路径算法来求解差分约束的解。为何可以这样呢?以图论的最短路径算法为例,在求解最短路径的时候往往会有松弛操作:
\[ Dis[v] > Dis[u] + weight(u, v) \quad then \quad Dis[v] = Dis[u] + weight(u, v) \]
那么松弛完后\(Dis[v] \leq Dis[u] + weight(u, v)\) (这也是最短路的一个结论),移一下项变成\(Dis[u]-Dis[v] \leq weight(u,v)\) 满足约束的形式\(x_i-x_j \leq b_{i,j}\)。所以可以通过最短路径算法求解\(\leq\)类型的差分约束系统,图的顶点集\(V^{'} \Rightarrow V\),图的边集\(E^{'} \Rightarrow C\),最终求解出的\(Dis[i] \Rightarrow x_i\)。同理,最长路径算法则可以解决\(\geq\)类型的差分约束系统。

差分约束

原文:https://www.cnblogs.com/GorgeousBankarian/p/12217377.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!