在網絡科學研究中,魯棒性是一個重要課題。互聯網的前身ARPANET的一個目的就是為了構造能夠在部分節點或連邊失效時在剩余節點之間仍然能夠維持基本通信的網絡系統。
從圖論的術語看,這就歸結為如下問題:
如果在一個圖G中去除了一些節點或者連邊,那么圖G中的兩個給定頂點 s 和頂點 t 之間是否仍然存在路徑(即是否仍然屬於同一個連通片)?
這里先敘述圖論中的 Menger定理,該定理是為了回答如下問題:
如果要使頂點 s 和頂點 t 分離(即分別屬於不同的連通片),那么至少需要從圖G中去除多少個頂點?或者至少需要從圖G中去除多少條邊?
去除一個頂點對應着把以該頂點為端點之一的所有的邊也去除。
以去除頂點為例,求解這一問題的自然的蠻力方法如下:
不包括頂點 s 和頂點 t 的話,圖G中還有 N-2 個頂點。
首先看去除這 N-2 個頂點中的一個頂點是否有可能使得頂點 s 和頂點 t 分離,共有 N-2 種可能的去除方式;
如果不可能的話,那么再看去除這 N-2 個頂點中的兩個頂點是否有可能使得頂點 s 和頂點 t 分離,共有\(C_{N-2}^{2}\)種可能的去除方式;
這樣一直做下去,直到在某次去除 h 個頂點后使得頂點 s 和頂點 t 分離。
k 即為要使頂點 s 和頂點 t 分離所需去除的最少的頂點數目。
顯然,對於較大規模的圖,這一蠻力算法的計算量是非常大的。
而 Menger定理 給出了求解這一問題的一個有效方法,關於該定理的證明可參見圖論著作。
Menger定理
點形式
設頂點 s 和頂點 t 為圖 G 中兩個不相鄰的頂點,則使頂點 s 和頂點 t 分別屬於不同的連通片所需去除的 頂點 的最少數目等於連接頂點 s 和頂點 t 的獨立的簡單路徑的最大數目。
邊形式
設頂點 s 和頂點 t 為圖 G 中兩個不同的頂點,則使頂點 s 和頂點 t 分別屬於不同的連通片所需去除的 邊 的最少數目等於連接頂點 s 和頂點 t 的 不相交 的簡單路徑的最大數目。
解釋定理:
先對定理中的術語給出解釋。兩個頂點稱為是不相鄰的,是指這兩個頂點之間沒有邊直接相連。
如果頂點 s 和頂點 t 為相鄰頂點(即兩者之間有邊直接相連),那么即使把圖 G 中所有其他的頂點都去除也無法使這兩個頂點分別屬於不同的連通片。
這就是定理的點形式中假設兩個頂點不相鄰的原因。
連接頂點 s 和頂點 t 的兩條簡單路徑稱為是獨立的,是指這兩條路徑的公共頂點只有頂點 s 和頂點 t 。連接頂點 s 和頂點 t 的兩條簡單路徑稱為是不相交的,是指這兩條路徑沒有經過一條相同的邊(但可以有共同頂點)。
例如,在下圖中,至少要去除3個頂點(標記為實心圓點)才能使得頂點 s 和頂點 t 分別屬於不同的連通子圖,從頂點 s 到頂點 t 也恰好有 3 條獨立的簡單路徑(分別用不同線型標記)。
點割集( Vertex cutset)
使得一對頂點分屬於不同的連通片所需去除的一組頂點稱為這對頂點的點割集( Vertex cutset)。
邊割集( Edge cutset)
使得一對頂點分屬於不同的連通片所需去除的一組邊稱為這對頂點的邊割集( Edge cutset)。
極小割集(Minimum cut set)
包含頂點數或邊數最少的割集稱為極小割集(Minimum cut set)。
基於Menger定理,為了計算使頂點 s 和頂點 t 分離所需要去除的頂點的最少數目,我們只需要求出頂點 s 和頂點 t 之間所有的簡單路徑,而對於后者存在一個經典的有效算法---Dijkstra算法。
參考:
[1] 汪小帆,李翔,陳關榮.網絡科學導論[M].北京:高等教育出版社,2012