圖的搜尋與分解

雙連通性(biconnectivity)

若沒有任何單一故障能弄垮一個網路,它就是穩固的。雙連通性是這個想法的精確版本:一張無向圖是雙連通的,若你刪掉任何一個頂點後它仍保持連通——沒有任何單點故障。等價地說,任兩個頂點之間至少有兩條頂點不相交的路徑,所以即使一整條路線斷了,另一條獨立的路線仍然存活。它是容錯網路背後的結構保證:你總能繞過任何一個壞掉的節點重新導向。

雙連通性恰是關節點的不存在:一張連通圖(至少三個頂點)是雙連通的,當且僅當它沒有割點。深層理由是一個經典定理(精神上是門格爾定理):沒有割點意味每對頂點都由兩條不共用任何中間頂點的路徑相連,這正是「兩條獨立路線」的形式意義。更一般地,任何圖都分解成雙連通分量——各自雙連通的極大子圖——它們恰在關節點處接合,那裡有兩個或更多雙連通區塊共用單一個頂點。這個區塊結構由偵測關節點的同一趟 low-link DFS 找出:當你發現某頂點是割點時,你用一個邊的堆疊剝下在那裡結束的一個雙連通區塊的邊。所以同一趟 O(n + m) 走訪一次就產出關節點、橋與雙連通分解。

知道雙連通結構便告訴你網路在哪裡強、在哪裡脆:區塊是能在任一節點失去後存活的有韌性核心,而接合它們的關節點是脆弱處。這在設計通訊與運輸網路、平面性測試,以及某些獨立處理區塊的圖演算法中都很重要。誠實的細則。雙連通性(對一個頂點移除的韌性)是頂點口味的概念;它邊口味的表親是 2-邊連通性(對一條邊移除的韌性,即沒有橋)——兩者相關卻不相同,因為一張圖可以 2-邊連通卻有一個割點。而單一條邊或單一個頂點是定義通常特別處理的退化情況,所以套用這個詞時務必查清小圖的慣例。

單一個環 a-b-c-d-a 是雙連通的:刪掉任一個頂點,其餘三個仍以一條路徑相連,且每對頂點都有兩條路線(順時針與逆時針)。但共用一個頂點 x 的兩個三角形「不是」雙連通——x 是割點,移除 x 就把兩個三角形分開。那兩個三角形是兩個雙連通區塊,在 x 處接合。

沒有割點就是雙連通;關節點正是雙連通區塊接合之處。

雙連通性(沒有割點)是頂點概念;2-邊連通性(沒有橋)是邊概念——一張圖可以有其一而無另一。兩者都出自同一趟 low-link DFS,但別把這兩種保證混為一談。

又稱
2-connectivitybiconnected components雙連通雙連通分量