1. 程式人生 > >一些最小生成樹的性質

一些最小生成樹的性質

   1、換掉一條邊並且保證結果是樹記為一次操作,樹AB是無向圖的兩個生成樹,則A可以通過若干次操作變成B

證:把樹看作邊的集合,如果B中有一條A沒有的邊,則把這條邊加到A上,A產生一個圈中至少有一條是B中沒有的邊,把這條邊刪掉,則A仍然是生成樹,也就是說,我們可以隨便加一條B有而A沒有的邊,總可以找到一條合適的邊刪掉。A,B集合相同的邊多了一條,重複這個過程直到A=B

它告訴我們任何兩棵生成樹都可以通過不斷換邊得到。(重要的是換邊的過程中始終保持是樹。)

2、如果無向圖的邊權都不相同,則最小生成樹是唯一的。

但是其逆命題不成立。

即如果無向圖的最小生成樹唯一,則無向圖的邊權是可能有相同的。例子,比如原圖本身就是一棵樹,並且有兩條邊的邊權相等。

3、A,B是同一個無向連通圖的兩棵不同的最小生成樹,則A可以通過若干次(1)中定義的換邊操作,並且保證每次結果仍然是最小生成樹,最終轉換成B

 4、對於一個連通無向圖的生成樹,只考慮它的邊權,形成的有序邊權列表中,最小生成樹是有序邊權列表字典序最小的。

5、一棵樹不是最小生成樹,則一定存在一個(1)中描述的操作,使得操作之後,它的總權值減小。

6、如果一棵生成樹,任何邊都在某棵最小生成樹上,則它不一定是最小生成樹。

反例:考慮一個長為2,寬為1的矩形。構造一個無向圖,節點就是矩形頂點,邊就是矩形的邊,邊權就是矩形邊長。顯然,原圖有兩棵最小生成樹(“兩寬與一長”),所有邊都在某棵最小生成樹上,但是有兩棵生成樹不是最小生成樹(“兩長與一寬”)。