切割性質(cut property)
假設你把所有城鎮分成兩組,按你喜歡的任一條線,每邊至少有一個城鎮。在所有會跨越那條分界線的電纜中,看那條最便宜的。切割性質保證:那條最便宜的跨界電纜屬於某個最小生成樹。無論你怎麼畫線,你都能完全放心地納入它。正是這一個保證,使貪婪地建造 MST 變得安全。
精確地說:一個切割把頂點分成兩個非空集合 S 與它的補集。若一條邊的兩端點各在一個集合中,它就跨越這個切割。切割性質陳述:若邊 e 是跨越某切割的最小權重邊,則 e 被包含於某個 MST。證明是一個乾淨的交換論證。取任一 MST T。若 T 已用 e,完成。否則,把 e 加進 T 恰好造出一個環,而那個環必透過某條其他邊 f 第二次跨越切割(環離開 S 後必須返回)。既然 e 是最便宜的跨界邊,weight(e) <= weight(f)。交換:移除 f,加入 e。結果仍是生成樹,且總權重沒有增加——故它也是 MST,且含有 e。因此某個 MST 含有 e。
切割性質是兩個經典 MST 演算法背後的理論引擎。普林演算法直接套用它:生長中的樹構成切割的一側,而普林總是加入離開它最便宜的邊。克魯斯卡也用它:它接受的每條邊,都是跨越那條邊所連的兩個分量之間切割的最便宜邊。一個精確的提醒:這個性質保證最便宜的跨界邊在某個 MST 中,未必在每個 MST 中,而當多條跨界邊並列為最便宜時,不同的選擇可導致不同但同樣最佳的樹。相異的權重使安全邊唯一、MST 唯一。
切割 S = {A, B}、其餘 = {C, D}。跨界邊為 B-C (2)、A-C (3)、B-D (5)。最便宜的是 B-C (2),所以切割性質說 B-C 在某個 MST 中,可安全加入。無論你如何分割頂點,跨越分割最輕的邊永遠是安全的選擇。
跨越任一切割最便宜的邊是安全的;交換論證用它換掉 MST 所用的任一條較重的跨界邊。
切割性質保證最輕的跨界邊在某個 MST 中,而非每個 MST。權重打平時可能存在數棵相異的 MST;唯有全部相異的權重才迫使安全邊唯一、樹唯一。