割點、割邊、雙連通分支

一、割點、割邊、雙連通分支概念


掛接點(Articulation point)就是割點(Cut Vertex)
橋(Bridge)就是割邊(Cut Edge)

割點:v爲割點,則去掉v後,圖的連通分支增加。
割邊:v爲割邊,則去掉v後,圖的連通分支增加。
割點形式化的定義:a是割點當且僅當存在兩個點u,v使得u到v的每條路徑都會經過a。(去掉a後,u到v沒有路徑)
邊雙連通分支:在連通分支中去掉一條邊,連通分支仍連通。
點雙連通分支:在連通分支中去掉一個點,連通分支仍連通。
我們這裏說的是點雙連通分支,因爲由定義“任何兩條邊都在一個公共簡單迴路,且在一個雙連通分支中沒有割點,因此是點雙連通分支。”。

割點應用場景:
給定一個計算機網絡,如果有一個計算機v壞掉了,那麼是否任何兩個計算機都能夠仍然連通?
遇到上述問題,是否能夠轉化成圖論問題呢?
其實這個問題就是看壞掉的計算機是否是割點,如果是割點,則一定存在兩個計算機u、v,u和v不連通。

雙連通圖定義:不存在割點。
雙連通分支定義:他是極大雙連通子圖,就是如果G是雙連通分支,則不存在G',G是G‘的子圖,且G’也是雙連通分支。


二、一些命題的證明


命題:兩個雙連通分支之間最多有一個公共點。

證明:假設雙連通分支C1、C2,且有兩個公共點v1、v2,因爲雙連通分支劃分非橋邊,所以v1與v2之間至少有兩條邊,因此假設v1與v2有兩條邊,如下圖:

首先聲明,e1、e2可能是個路徑,即由多條邊組成,但是我們假設e1與e2爲邊。
e1在C1中,因此e1與C1中任何一條邊都在一個簡單迴路中,同理,e2與C2中任何一條邊都在一個簡單迴路,因爲e1與e2在一個迴路,所以e1與C2中任何一條邊都在一個簡單迴路,e2與C1中任何一條邊都在一個簡單迴路,所以C1與C2合併。

命題:兩個雙連通分支之間的一個公共點是割點。

證明:如果公共點不是割點,則將A點去除後,C1與C2仍然連通,因此必然存在u與v使得(u,v)屬於E,因此當A存在時,u到A存在路徑,A到v存在路徑,u和v之間存在一條邊,因此(u,v)與C1中任何一條邊都在一個簡單迴路,(u,v)與C2中任何一條邊都在一個簡單迴路,所以C1與C2合併。


命題:割點一定屬於至少兩個雙連通分支。

證明:如果割點屬於一個雙連通分支,根據雙連通分支定義,去掉任何一個點都不會讓圖不連通,與割點的定義矛盾。

命題:在一個雙連通分支中至少要刪除兩個點才能夠使圖G不連通。

證明:雙連通分支定義。Trivial。

Equivalence relation:邊e1和e2是等價關係的當且僅當e1=e2或e1與e2在一個迴路中。
Equivalence Class:一個等價類中的兩條邊都是等價關係。

命題:對於根頂點u,u爲割點當且僅當u有至少兩個兒子。

首先說明一點,無向圖只有樹邊和反向邊。
=>
已知Gn的根是割點,如果Gn中該根s只有一個子女節點t,則去除了根節點後,其子女節點t仍然連接着分支,這與根s爲割點條件不符,因此根至少兩個子女。
<=
如果Gn中根有至少兩個子女,因爲無向圖只存在樹邊、反向邊,沒有交叉邊,因此當根去除後,分支之間不能連接,因此根爲割點。

命題:對於非根頂點u,u爲割點當且僅當u只要存在一個子頂點s,s的後裔(注意是後裔,不是真後裔)沒有指向u的真祖先的反向邊。

=>
已知Gn中某個非根節點v是割點,如果任何v的子頂點s,s或s的後裔指向v的真祖先的反向邊,我們考慮一個分支,假設反向邊爲(a,b),其中a爲v的子頂點,b爲v的真祖先,當v刪除後,因爲v的真祖先連通,v的子頂點之間連通,如果存在{a,b}的邊,則v的真祖先和v的子頂點也連通,與條件矛盾。

<=
如果存在一個子頂點s,不存在s或s的後裔指向v的真祖先的反向邊,則v的真祖先區域和v的子頂點區域不連通,因此v爲割點。


命題:對於非根頂點u爲割點,當且僅當存在相鄰子頂點,使得 low[v]>=d[u].

證明:
=>
因爲u爲割點,因此u有一個子頂點v,不存在v或v的真後裔頂點指向u的真祖先的反向邊。
因爲 low[v] = min { d[v], d[w]},其中對於v的後裔u,(u,w)爲反向邊。
因爲d[w]>=d[u],所以low[v]>=d[u].

<=
因爲low[v]>=d[u],所以 low[v] = min { d[v], d[w]}>=d[u],因爲d[v]>=d[u],所以d[w]>=d[u],所以w爲u的後裔。
所以不存在v,v或v的子頂點存在指向u的真祖先的反向邊,因此u爲割點。


命題:(u,v)是橋,當且僅當low[v]>d[u].

證明:
=>
已知(u,v)是橋,則此邊不在任何簡單迴路中,不失一般性,先訪問u,再訪問v,則low[v]=min { d[v], d[w]}, d[w]>d[u],所以low[v]>d[u].
<=
已知low[v]>d[u],所以d[w]>d[u],所以不存在v或v的子頂點,(v,w)爲反向邊,且w是u的後裔,所以(u,v)不屬於簡單迴路,所以是橋。


命題:雙連通分支的任意兩條邊位於同一個簡單迴路等價於雙連通分支中沒有割點。

證明:
如果存在割點u,設與u相鄰的點爲v1,v2,....vn,則因爲u去掉後,應該使得v1...vn中的至少其中一個頂點和u不連通,假設此點爲vi,但是根據雙連通分支的定義,(u,vi)位於簡單迴路,因此根據定義u和vi應該仍然連通,所以矛盾。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章