日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

【转】 差分约束系统详解(转化为最短路) (概念)

發(fā)布時(shí)間:2023/12/1 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】 差分约束系统详解(转化为最短路) (概念) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

---恢復(fù)內(nèi)容開(kāi)始---

轉(zhuǎn)自:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html

?

差分約束系統(tǒng)中:

?

如果求未知數(shù)的最大值,那么按小于等于建圖后求最短路即可。(因?yàn)榍笞疃搪肥怯蔁o(wú)窮向下約束而得到的,所以得到的一定是最大值)。

?

如果求未知數(shù)的最小值,那么按小于等于建圖后求最長(zhǎng)路即可。

?

注意所有數(shù)據(jù)的關(guān)系,不能漏掉關(guān)系,還有與附加源點(diǎn)的關(guān)系。

?

如果是按大于等于建圖:

?

求最大值,建圖后求最長(zhǎng)路;

?

求最小值,建圖后求最短路。

?

因?yàn)榇笥诘扔诮▓D后,相當(dāng)于未知數(shù)都 * -1了,所以求出結(jié)果后需要 * -1。


①:對(duì)于差分不等式,a - b <= c ,建一條 b 到 a 的權(quán)值為 c 的邊,求的是最短路,得到的是最大值?
②:對(duì)于不等式 a - b >= c ,建一條 b 到 a 的權(quán)值為 c 的邊,求的是最長(zhǎng)路,得到的是最小值?
③:存在負(fù)環(huán)的話(huà)是無(wú)解?
④:求不出最短路(dist[ ]沒(méi)有得到更新)的話(huà)是任意解?

一直不知道差分約束是什么類(lèi)型題目,最近在寫(xiě)最短路問(wèn)題就順帶看了下,原來(lái)就是給出一些形如x-y<=b不等式的約束,問(wèn)你是否滿(mǎn)足有解的問(wèn)題

好神奇的是這類(lèi)問(wèn)題竟然可以轉(zhuǎn)換成圖論里的最短路徑問(wèn)題,下面開(kāi)始詳細(xì)介紹下

比如給出三個(gè)不等式,b-a<=k1,c-b<=k2,c-a<=k3,求出c-a的最大值,我們可以把a(bǔ),b,c轉(zhuǎn)換成三個(gè)點(diǎn),k1,k2,k3是邊上的權(quán),如圖

由題我們可以得知,這個(gè)有向圖中,由題b-a<=k1,c-b<=k2,得出c-a<=k1+k2,因此比較k1+k2和k3的大小,求出最小的就是c-a的最大值了

根據(jù)以上的解法,我們可能會(huì)猜到求解過(guò)程實(shí)際就是求從a到c的最短路徑,沒(méi)錯(cuò)的....簡(jiǎn)單的說(shuō)就是從a到c沿著某條路徑后把所有權(quán)值和k求出就是c -a<=k的一個(gè)

推廣的不等式約束,既然這樣,滿(mǎn)足題目的肯定是最小的k,也就是從a到c最短距離...

理解了這里之后,想做題還是比較有困難的,因?yàn)轭}目需要變形一下,不能單純的算..

首先以poj3159為例,這個(gè)比較簡(jiǎn)單,就是給出兩個(gè)點(diǎn)的最大差,然后讓你求1到n的最大差,直接建圖后用bellman或者spfa就可以過(guò)了

稍微難點(diǎn)的就是poj1364,因?yàn)樗o出的不等式不是x-y<=k形式,有時(shí)候是大于號(hào),這樣需要我們?nèi)プ冃我幌?#xff0c;并且給出的還是>,<沒(méi)有等于,都要變形

再有就是poj1201,他要求出的是最長(zhǎng)距離,那就要把形式變換成x-y>=k的標(biāo)準(zhǔn)形式

注意點(diǎn):

1. 如果要求最大值想辦法把每個(gè)不等式變?yōu)闃?biāo)準(zhǔn)x-y<=k的形式,然后建立一條從y到x權(quán)值為k的邊,變得時(shí)候注意x-y<k =>x-y<=k-1

?? 如果要求最小值的話(huà),變?yōu)閤-y>=k的標(biāo)準(zhǔn)形式,然后建立一條從y到x的k邊,求出最長(zhǎng)路徑即可

2.如果權(quán)值為正,用dj,spfa,bellman都可以,如果為負(fù)不能用dj,并且需要判斷是否有負(fù)環(huán),有的話(huà)就不存在

?

?

?

轉(zhuǎn)自:http://www.cnblogs.com/pony1993/archive/2012/09/01/2666996.html

---恢復(fù)內(nèi)容結(jié)束---

在一個(gè)差分約束系統(tǒng)(system of difference constraints)中,線性規(guī)劃矩陣A的每一行包含一個(gè)1和一個(gè)-1,A的其他所有元素都為0。因此,由Ax≤b給出的約束條件是m個(gè)差分約束集合,其中包含n個(gè)未知量,對(duì)應(yīng)的線性規(guī)劃矩陣A為m行n列。每個(gè)約束條件為如下形式的簡(jiǎn)單線性不等式:xj-xi≤bk。其中1≤i,j≤n,1≤k≤m。

例如,考慮這樣一個(gè)問(wèn)題,尋找一個(gè)5維向量x=(xi)以滿(mǎn)足:

?

?

這一問(wèn)題等價(jià)于找出未知量xi,i=1,2,…,5,滿(mǎn)足下列8個(gè)差分約束條件:

x1-x2≤0

x1-x5≤-1

x2-x5≤1

x3-x1≤5

x4-x1≤4

x4-x3≤-1

x5-x3≤-3

x5-x4≤-3

????該問(wèn)題的一個(gè)解為x=(-5,-3,0,-1,-4),另一個(gè)解y=(0,2,5,4,1),這2個(gè)解是有聯(lián)系的:y中的每個(gè)元素比x中相應(yīng)的元素大5。

?
引理:設(shè)x=(x1,x2,…,xn)是差分約束系統(tǒng)Ax≤b的一個(gè)解,d為任意常數(shù)。則x+d=(x1+d,x2+d,…,xn+d)也是該系統(tǒng)Ax≤b的一個(gè)解。

?

約束圖

???在一個(gè)差分約束系統(tǒng)Ax≤b中,m X n的線性規(guī)劃矩陣A可被看做是n頂點(diǎn),m條邊的圖的關(guān)聯(lián)矩陣。對(duì)于i=1,2,…,n,圖中的每一個(gè)頂點(diǎn)vi對(duì)應(yīng)著n個(gè)未知量的一個(gè)xi。圖中的每個(gè)有向邊對(duì)應(yīng)著關(guān)于兩個(gè)未知量的m個(gè)不等式中的一個(gè)。

???給定一個(gè)差分約束系統(tǒng)Ax≤b,相應(yīng)的約束圖是一個(gè)帶權(quán)有向圖G=(V,E),其中V={v0,v1,…,vn},而且E={ (vi,vj) : xj-xi≤bk是一個(gè)約束}∪{ (v0,v1) , (v0,v2) , … , (v0,vn) }。引入附加頂點(diǎn)v0是為了保證其他每個(gè)頂點(diǎn)均從v0可達(dá)。因此,頂點(diǎn)集合V由對(duì)應(yīng)于每個(gè)未知量xi的頂點(diǎn)vi和附加的頂點(diǎn)v0組成。邊的集合E由對(duì)應(yīng)于每個(gè)差分約束條件的邊與對(duì)應(yīng)于每個(gè)未知量xi的邊(v0,vi)構(gòu)成。如果xj-xi≤bk是一個(gè)差分約束,則邊(vi,vj)的權(quán)w(vi,vj)=bk(注意i和j不能顛倒),從v0出發(fā)的每條邊的權(quán)值均為0。

??
定理:給定一差分約束系統(tǒng)Ax≤b,設(shè)G=(V,E)為其相應(yīng)的約束圖。如果G不包含負(fù)權(quán)回路,那么x=( d(v0,v1) , d(v0,v2) , … , d(v0,vn) )是此系統(tǒng)的一可行解,其中d(v0,vi)是約束圖中v0到vi的最短路徑(i=1,2,…,n)。如果G包含負(fù)權(quán)回路,那么此系統(tǒng)不存在可行解。

?

差分約束問(wèn)題的求解

???由上述定理可知,可以采用Bellman-Ford算法對(duì)差分約束問(wèn)題求解。因?yàn)樵诩s束圖中,從源點(diǎn)v0到其他所有頂點(diǎn)間均存在邊,因此約束圖中任何負(fù)權(quán)回路均從v0可達(dá)。如果Bellman-Ford算法返回TRUE,則最短路徑權(quán)給出了此系統(tǒng)的一個(gè)可行解;如果返回FALSE,則差分約束系統(tǒng)無(wú)可行解。

???關(guān)于n個(gè)未知量m個(gè)約束條件的一個(gè)差分約束系統(tǒng)產(chǎn)生出一個(gè)具有n+1個(gè)頂點(diǎn)和n+m條邊的約束圖。因此采用Bellman-Ford算法,可以再O((n+1)(n+m))=O(n^2+nm)時(shí)間內(nèi)將系統(tǒng)解決。此外,可以用SPFA算法進(jìn)行優(yōu)化,復(fù)雜度為O(km),其中k?為常數(shù)。

轉(zhuǎn)載于:https://www.cnblogs.com/xuyanqd/p/8762762.html

總結(jié)

以上是生活随笔為你收集整理的【转】 差分约束系统详解(转化为最短路) (概念)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。