1. 程式人生 > >差分約束和最短路徑

差分約束和最短路徑

差分約束系統   

  (1)在一個差分約束系統中,線性規劃矩陣A的每一行包括一個1和一個-1,其它所有項皆為0。由Ax≤b給出的約束條件形式上是m個涉及n個變數的差額限制條件(difference constraints),每個約束條件是以下簡單的線性不等關係:。其中1≤i,j≤n,i≠j,並且1≤k≤m。

  (2)一個滿足下列條件的5維向量x=(x i )的問題:

  

  上述矩陣與下面的8個差分約束條件的變數x1,x2,x3,x4,x5的取值問題等價:

  

  問題可能的答案有:x=(-5,-3,0,-1,-4)、 x’=(0,2,5,4,1)等多組可行解。可以發現這兩個答案有著一定的關聯關係。x’ 中的每個元素對應的比x中的每個元素大5。

  (3)給出一個簡答的引理

  設向量x=(x1,x2......xn)為差分約束系統Ax≤b的一個解,設d為任意常數,則x+d = (x1+d, x2+d......xn+d)也是該差分約束系統的一個解

約束圖

  (1)在一個Ax≤b的差分約束系統中,將m╳n的矩陣A看成是一張有n個結點和m條邊構成的圖的鄰接矩陣的轉置。對於i=1,2,…,n,圖中的每個結點v i 對應n個未知變數x i 中的一個,圖中的每條有向邊對應m個不等式中的一個。

  (2)對給定的差分約束系統Ax≤b,其對應的約束圖是一個帶權重的有向圖G=(V,E),這裡

  

  說明:  

  a.結點集合:約束圖中引入一個額外的結點v0,從其出發可以達到其他所有結點。因此結點集合V由代表每個變數xi的結點vi和額外的結點v0組成。  

  b.邊集合:邊集合E包含代表每個差分約束的邊,同時包含v0到其他所有結點的邊(v0,vi),i=1,2,…,n。

  c.邊的權重:如果xj-xi≤bk是一個差分約束條件,則邊(vi,vj)的權重為ω(vi,vj) = bk,而從v0出發到其他結點的邊的權重為0。

  

  (4)如圖所示是上述例子的約束圖。每個結點的vi中的數值是σ(v0, vi)的值,該系統的一個可行解是x=(-5,-3,0,-1,-4)

  

  

  (5)給出一個定理:

  給定差分約束系統Ax≤b,設G=(V,E)是該差分約束系統所對應的約束圖。

  a. 如果圖G不包含權重為負值的迴路,則是該系統的一個可行解。

  b. 如果圖G包含權重為負值的迴路,則該系統沒有可行解.

  (6)求解差分約束系統

  上述定理可以得到,使用Bellman-ford演算法來求解差分約束系統。因為約束圖中包含從源結點v0到所有其他結點的邊,任何權重為負值的環路都可以從結點v0到達。如果Bellman-ford返回True值,則最短路徑權重給出差分約束系統的一個可行解。繁殖,如果Bellman-ford返回FALSE,則差分約束系統沒有可行解。