演算法學習之路|差分約束系統

暖夏未眠丶發表於2018-02-26

摘要:
差分約束系統實際上是一種轉化,把某些問題轉化成最短路問題來進行求解

差分約束系統實際上是一種轉化,把某些問題轉化成最短路問題來進行求解
差分約束系統解決的問題是不等式的求解:
例如:
x2-x0<=3;
x4-x2<=2;
x3-x0<=5;
x1-x0<=4;
x3-x1<=1;
x4-x3<=1;
x3-x2<=3;
如果要求x4-x0的不等式解,顯然可用不等式倆倆相加的方法求,求出是:
x4-x0<=5,x4-x0<=6;x4-x0<=7這三個式子顯然最後求交集(ˇˍˇ) x4-x0<=5
我們可以這麼看,x0~x4為圖上五個點,xj-xi為i到j的距離這樣就建立了一個有向圖

顯然x0到x4的路徑有5,6,6,7四條最短的路為5
如若一個系統由n個變數和m個不等式組成,並且這m個不等式對應的係數矩陣中每一行有且僅有一個1和-1,其它的都為0,這樣的系統稱為差分約束( difference constraints )系統。
例如

如果還不清楚的話看看三角不等式:
給出三個不等式:
B - A <= c (1)
C - B <= a (2)
C - A <= b (3)
可以得到圖
我們發現min{b, a+c}正好對應了A到C的最短路,而這三個不等式就是著名的三角不等式。將三個不等式推廣到m個,變數推廣到n個,就變成了n個點m條邊的最短路問題了。
解的存在性
如果轉化的的圖中存在負權的迴路先讓就不會有解,因為負的迴路會一直迴圈下去直到無窮小,這樣就不可能有解
還有一種是兩點之間不可達,這樣最短路徑為無窮大,此時有無限個解

版權宣告:本文內容由網際網路使用者自發貢獻,版權歸作者所有,本社群不擁有所有權,也不承擔相關法律責任。如果您發現本社群中有涉嫌抄襲的內容,歡迎傳送郵件至:yqgroup@service.aliyun.com 進行舉報,並提供相關證據,一經查實,本社群將立刻刪除涉嫌侵權內容。
演算法學習之路|差分約束系統

用雲棲社群APP,舒服~

原文連結


相關文章