我有相當小的(40-80節點)立方(3-規則)平面圖,我必須決定他們的哈密爾頓性。我知道的事實,這任務是NP完全,但我希望漸近指數時間的算法是仍然是在圖形大小我很感興趣,非常快查找立方平面圖中的哈密爾頓週期
6
A
回答
3
40個節點似乎是可行的。您正在選擇包含60個邊的40個。
讓我們嘗試一個深度優先搜索。
要開始,選擇一個頂點V.您將需要排除其3個入射邊緣中的一個。一次嘗試這三種可能性。當您選擇要排除的邊時,您將強制包含4條邊。在此之後,我們將調用被排除的邊的頂點「used」。
如果你可以重複這個過程10次,你會選擇所有40條邊,只搜索3^10(59049)個可能性。當然,在足夠的邊界被確定之後,你會用完「孤立」的頂點。
但是,我們現在有一個算法的想法。在每一步中,嘗試用最少的「已使用」鄰居來挑選一個頂點。實際上,挑選2個使用鄰居的頂點是最好的,因爲使用的邊是強制的。我不確定選擇1或0使用鄰居的頂點是次好的。嘗試兩種方式! (和3個使用的鄰居表示搜索失敗)
當我們完成拾取邊緣時,檢查它們是否形成單個週期。
你有幾個樣本圖嗎?我可能會嘗試一個簡單的實現。
2
從http://mathworld.wolfram.com/HamiltonianCycle.html: 「魯賓(1974)介紹一個高效的搜索程序,可以使用減少回溯和臆測的減法來找到圖中的一些或全部Hamilton路徑和電路。「
相關問題
- 1. 快速哈密頓週期計算
- 2. 如何找到不使用「禁止」邊的哈密爾頓週期數?
- 3. 下面的鏈接中是否有哈密爾頓電路圖?
- 4. 最短哈密爾頓路徑和bitmasking
- 5. 枚舉*所有*哈密爾頓路徑
- 6. 如何檢測圖是否是哈密爾頓的
- 7. 哈密頓電路
- 8. 查找圖表中的週期數(Python)
- 9. JGrapht:哈密爾頓循環程序返回getEdgeWeightException
- 10. 爲什麼TSP NP-hard而哈密爾頓路徑NP-complete?
- 11. 在給定開始點和結束點的圖中找到哈密爾頓路徑的數量
- 12. 安卓:活動週期和辛格爾頓
- 13. 尋找哈密頓電路TSP問題的問題
- 14. 曼哈頓圖中的峯檢測
- 15. 如何在java中生成哈密爾頓循環實現鄰接矩陣
- 16. 曼哈頓CodinGame中的IndexOutOfRangeException
- 17. 在blowfish加密哈希中查找salt
- 18. 查找本週星期一
- 19. 如何使用FFT查找周期函數的週期?
- 20. 查找有向圖中的所有周期
- 21. 查找圖實現中的所有周期
- 22. 在Python中查找前一週/上週的星期五
- 23. 曼哈頓距離的Python
- 24. 繪製一個具有1800個哈密爾頓路徑的7頂點簡單圖形
- 25. 查找給定週數的日期
- 26. 如何查找日期值的一週?
- 27. 查找本週的具體日期
- 28. 查找二維空間中的兩個最遠點(曼哈頓距離)
- 29. 以獨立於平臺的方式從IP地址查找MacAddress
- 30. 訪問播放辛格爾頓方法