給定一個具有n個頂點的帶權無向圖,我面臨的問題是找到一個最小權重的路徑,它將每個頂點連接到一條線。 起初,我認爲這是找到最小生成樹 的問題,但事實並非如此。在生成樹的情況下,頂點處可能存在分支 或度數可能大於2。我需要找到的是一個線性路徑,即除了結束頂點之外的所有頂點的度數恰好爲2。 開始和結束頂點可以是n個頂點中的任何一個。算法在一個連接所有頂點的圖中找到最小權重的線性路徑
我的是即
first chose any vertex, maintain a sum
check all its neighbors such that the cost of reaching it is
least among all the neighbors
mark this neighbor as visited
add the cost to sum
repeat the procedure above until all the points have been visited.
貪婪的方法,我將不得不對所有的頂點爲出發點做到這一點。 我不確定這個算法是否正確,並且它的複雜度很高。 什麼應該是更好的方法來解決這個問題?
路徑的權重不一定是1.我必須找到最小權重的線性路徑。需要探索的點數不大,可能不會超過100. – praveen 2012-02-01 08:27:51
@ praveen-爲了減少這個問題,我們只需要證明Hamiltonian Path的任何實例都可以被編碼爲這個問題的一個實例。在這裏,我們不需要使用問題的完整表達性,並且可以使用問題的更弱版本對其進行編碼。 – templatetypedef 2012-02-01 08:30:06