演算法(讀書筆記) 4 3最小生成樹

2021-07-11 05:55:38 字數 623 閱讀 4431

加權圖是一種為每條邊關聯乙個權值或是成本的圖模型。

最小生成樹。給定一副加權無向圖,找出它的一顆最小生成樹。

定義:圖的最小生成樹是它的一副含有其所有頂點的無環連通子圖。一副加權圖的最小生成樹(mst)是它的一顆權值(樹種所有邊的權值之和)最小的生成樹。

一些約定:

1.只考慮連通圖

2.邊的權重不一定代表距離

3.邊的權重可能是0或者負數

4.所有邊的權重都各不相同。如果不同邊的權重可以相同,最小生成樹就不一定唯一了。存在多顆最小生成樹的可能性會使部分演算法的證明變得更加複雜。

命題j(切分定理):在一副加權圖中,給定任意的切分,它的橫切邊中的權重最小者必然屬於圖中的最小生成樹。

切分定理是解決最小生成樹問題的所有演算法的基礎。更確切的說,這些演算法都是貪心演算法的特殊情況:使用切分定理找到最小生成樹的一條邊,不斷重複直到找到最小生成樹的所有邊。

命題k(最小生成樹的貪心演算法):將含有v個頂點的任意加權連通圖中屬於最小生成樹的邊標記為黑色:初始狀態下所有邊均為灰色,找到一種切分,它產生的橫切邊均不為黑色。將它權重最小的橫切邊標記為黑色。反覆,直到標記了v-1條黑色邊為止。

最小生成樹演算法

由帶權的連通圖生成的數的各邊加起來稱為生成樹的權,把權值最小的生成樹稱為最小生成樹 minimum spanning tree 簡稱為mst 構造最小生成樹的方法就是利用mst性質,一條一條地選擇可以加入的邊。下面介紹兩種用於構造最小生成樹的演算法,其中第一種演算法稱為prim演算法,第二種演算法稱...

最小生成樹演算法

乙個最簡單的最小生成樹 圖結構練習 最小生成樹 time limit 1000ms memory limit 65536k 有n個城市,其中有些城市之間可以修建公路,修建不同的公路費用是不同的。現在我們想知道,最少花多少錢修公路可以將所有的城市連在一起,使在任意一城市出發,可以到達其他任意的城市。輸...

演算法 最小生成樹

前言 最小生成樹是在乙個給定的無向圖中求一棵樹,這棵樹包含無向圖中的所有頂點,且樹中的邊都來自無向圖中的邊,並且要滿足整棵樹的邊權之和最小。1 最小生成樹是樹,其邊數等於頂點數減1,且不會有環 2 對於給定的圖最小生成樹可以不唯一,但是邊權之和一定是唯一的。3 其根節點可以是這棵樹上的任何乙個節點,...