關節點

關節點是指在某圖中,如果刪除頂點V以及V相關的邊後,圖的一個連通分量分割為兩個或兩個以上的連通分量,則稱頂點V為該圖的一個關節點。

英文對照,定義及套用,求解算法,定義,算法要點,

英文對照

articulation point;articulare;

定義及套用

在某圖中,若刪除頂點V以及V相關的邊後,圖的一個連通分量分割為兩個或兩個以上的連通分量,則稱頂點V為該圖的一個關節點。一個沒有關節點的連通圖稱為重連通圖。
在重連通圖中,任意一對頂點之間至少存在兩條路徑,則再刪去某個頂點即相關各邊後也不破壞圖的連通性。若在圖的連通圖上刪去k個節點才能破壞圖的連通性,則稱K為此圖的連通度。
他們常常在通信網路的圖或航空網中套用,K越大,系統越穩定,反之,戰爭中若要摧毀敵方的運輸線,只須破壞其運輸網中的關節點即可。

求解算法

利用深度優先搜尋便可以求的圖的關節點,本由此可判別圖是否重連通。
從任一點出發深度優先遍歷得到優先生成樹,對於樹中任一頂點V而言,其孩子節點為鄰接點。由深度優先生成樹可得出兩類關節點的特性:
(1)若生成樹的根有兩棵或兩棵以上的子樹,則此根頂點必為關節點。因為圖中不存在連線不同子樹頂點的邊,若刪除此節點,則樹便成為森林。
(2)若生成樹中某個非葉子節點V,其某棵子樹與V的祖先節點無連線,則V為關節點。因為刪去v,則其子樹和圖的其它部分被分割開來

定義

low[v] 設對連通圖G=(V,E)進行先深搜尋的先深編號為dfn[v],產生的先深生成樹為S=(V,T),B是回退邊之集。對每個頂點v,low[v]定義如下
low[v]=Min{dfn[v],Min{low[w]|w是v的一個子女},Min{dfn[x]|(v,x)是一條回邊}}//dfn數組記錄頂點的深度優先數
算法: 求無向圖的雙連通分量
輸入:連通的無向圖G=( V, E )。L[v]表示關於v的鄰接表
輸出:G的所有雙連通分量,每個連通分量由一序列的邊組成。

算法要點

1.計算先深編號:對圖進行先深搜尋,計算每個結點v的先深編號dnf[v],形成先深生成樹S=(V,T)。
2.計算low[v]:在先深生成樹上按後根順序進行計算每個頂點v的 low[v], low[v]取下述三個結點中的最小者:
(1) dfn[v];
(2) dfn[w],凡是有回退邊(v,w)的任何結點w;
(3) low[y],對v的任何兒子y。
3.求關節點:
(1)樹根是關節點,若且唯若它有兩個或兩個以上的兒子(第一類關節點);
(2)非樹根結點v是關節點若且唯若v有某個兒子y,使low[y]≥dnf[v](第二類關節點)。
求雙連通分量的算法――同先深搜尋算法(略)

相關詞條

熱門詞條

聯絡我們