k-生成樹(k-SPANDING TREE)問題是這樣的:
輸入:無向圖G=(V,E)。
輸出:G的生成樹,其中所有節點度數不超過k。
如果該樹存在,請證明對任意k>=2:
(a)k-生成樹問題是搜索問題。
搜索問題要求:已知起始狀態和目標狀態;可以判斷是否達到目標狀態;狀態空間離散;每個狀態可以採取的合法行動和相應後繼狀態是確定的;環境靜態;路徑耗散函數已知。
起始狀態:空樹。過程:判斷G中每個節點是否點度小於等於k,若滿足則加入生成樹。目標狀態:添加完所有節點。G不變化,判斷要求已知,生成樹時間複雜度爲O(V)。
(b)k-生成樹問題是NP-完全的。
已證k-生成樹問題爲NP問題,該問題可以由NP完全問題Rudrata環路搜索問題歸約得:
k=2時,k-生成樹存在,則該生成樹顯然是圖的一條最長鏈,只比Rudrata環路少一條邊,實際爲一條Rudrata路徑。
k>2時,k-生成樹由2-生成樹組成。
所以k-生成樹問題是NP-完全的。