我經常面臨通過強力檢查給定大小樹的某些屬性(圖形)的問題。你有這樣做的好手段嗎?理想情況下,我想只檢查一次同構類(但畢竟,速度是重要的)。遍歷給定大小的所有樹
位操作技巧是最歡迎的,因爲n通常小於32 :)
我通過所有(N-1)〜邊緣亞羣和檢查要求稍微更精細的算法比「循環喜歡如果它們在n個節點上形成樹「。
我經常面臨通過強力檢查給定大小樹的某些屬性(圖形)的問題。你有這樣做的好手段嗎?理想情況下,我想只檢查一次同構類(但畢竟,速度是重要的)。遍歷給定大小的所有樹
位操作技巧是最歡迎的,因爲n通常小於32 :)
我通過所有(N-1)〜邊緣亞羣和檢查要求稍微更精細的算法比「循環喜歡如果它們在n個節點上形成樹「。
這是Knuth的計算機編程藝術卷組合算法。如果我沒有記錯,那是一個練習。既然他有這樣的解決方案,我指你在那裏。
一些谷歌搜索引起了下面的算法描述:http://www.cs.auckland.ac.nz/compsci720s1c/lectures/mjd/treenotes.pdf。他們修改了一個枚舉根樹的算法來枚舉無根樹。
顯然其他人證明,這種只需要每棵樹分期常量時間,PDF顯示了一些性能測試證明這一點。
什麼樣的樹?你目前使用什麼算法來「穿越」樹?你在談論什麼同構論?這個問題非常含糊 – 2011-02-13 18:32:01
一般樹,即連接n個節點和n-1個邊的圖。同構我的意思是en.wikipedia.org/wiki/graph_isomorphism。我沒有穿過特定的樹 - 我想生成所有樹的列表。 – Erik 2011-02-13 18:52:38