差分約束學習筆記

來源:互聯網
上載者:User

         這幾天學了差分約束,總結一下。

        先從百度百科摘錄差分約束系統定義:

        如果一個系統由n個變數和m個約束條件組成,其中每個約束條件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),則稱其為差分約束系統(system of difference constraints)。亦即,差分約束系統是求解關於一組變數的特殊不等式組的方法。

        差分約束可以轉化話單源最短路求解。因為單源最短路徑滿足三角不等式d[v] <= d[u] + w(u, v), 這裡的 <= 可以為改 >= 只要改變一下初始化條件即可。

 

        差分約束題目有兩種,一種求最大值,另外一種求最小值。

       (1)當題目是求滿足給定不等式的最小值時,就是求圖的最長路。

        建圖方式如下:a – b >= c,對應於邊b –> a w(b, a) = c, 然後求最短路;判斷條件是:d[v] <= d[u] + w(u, v), 初始化d[]為-INF. 這樣求出的d[]就是滿足條件的最小值。原因很簡單,因為d[i] 是從-INF開始增大,根據不等式逐漸增大,當滿足所有不等式時,那麼d[i]肯定是最小的了。

       (2)當題目是求滿足給定不等式的最大值時,就是求圖的最短路。

        建圖方式如下:a – b <= c,對應於邊b –> a w(b, a) = c, 然後求最長路;判斷條件是:d[v] >= d[u] + w(u, v), 初始化d[]為INF.這樣求出的d[]就是最大值。原因和上面一樣,因為是從INF逐漸減小的,當滿足完所有條件時,就停止。那麼d[i]是最大的了。

 

       常見單源最短路徑方法有bellman_ford, spfa, Dijkstra

       bellman_ford演算法,適用於邊值負權的圖,還能判斷是否存在負權迴路,它是把所有的邊都鬆弛n-1次。演算法複雜度為O(VE),這個方法效率不高,在資料規模大時,往往會TLM。

       spfa演算法,是bellman_ford演算法的改進版。它通過一個隊列或棧,來儲存需要更新的頂點。它減去了bellman演算法很多不必要的鬆弛,因此它的效率比bellman要好,為O(ke)。

       Dijkstra演算法,它只適用於邊值為非負的圖上。它基於貪心,每次選取最短的邊。可以用heap來最佳化,在正權圖也可以考慮。

 

       體會:雖然bellman_ford不及spfa的效率,但它在判斷是否存在負權迴路比spfa方便。它能判斷不連通的圖,而spfa判斷不連通圖時有可能不準確,當開始的源點到達不了某些頂點時,那麼那些頂點就無法檢驗了。為此,spfa需要添加一個超源點來使得圖連通(還有一個方法:就是先把所有頂點入隊),而bellman不需要添加超源點, 因為它是對圖的每一條邊都進行n-1次鬆弛。有時候超源點不好添加,這時可以考慮用bellman。

       還有一點,當適用spfa添加超源點使得圖連通(超源點S0 到其他頂點距離都為0)時,用最短路求出的解, 除了滿足給定的不等式外,還會滿足下列的不等式:

        S1 – S0 <= 0

        S2 – S0 <= 0

        …

        Sn – S0 <= 0

也就是說S1 ~ Sn是 < 0 的,這個對不同問題,要具體分析。這些額外滿足的不等式,不能與題目要求的矛盾。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.