我正在試圖建立一個MSSP(多源最短路徑),但我缺乏如何構建相互轉化樹的知識,我正在尋找這個pdf。直到現在我創建了生成樹,因此創建了Plannar圖,但是因爲我不知道如何構建它的對偶。有沒有特定的算法/方法或任何可以幫助我解決這個問題的紙張?當我搜索並找不到有用的東西。創建一個平面圖的對偶圖
1
A
回答
1
如果你還沒有一個,你需要一個組合嵌入。有效的算法可以從關聯結構中獲得一個算法,但平面圖的自然來源通常具有自然嵌入。有很多方法來表示嵌入。我用相同的頂點逆時針順序將每個半邊的置換π映射到下一個半邊。每個(非孤立)頂點都與一個循環鏈接的輸入半邊鏈表相關聯。
讓rev是將每個半邊緣映射到另一半邊緣的排列,具有相反的頭部和尾部頂點。對偶圖的嵌入置換是π的組成,其次是rev。它以順時針順序將每個半邊緣映射到臉部的下一個半邊緣(或無限臉部上的逆時針方向,因爲您正在看它的背面)。如果你親自嘗試一些例子,這會更清楚。
從最初的根計算最短路徑後(我使用Dijkstra,除非MSSP實現比我的速度快得多,使用漸近更快的算法沒有太多相對改進),請執行深度優先搜索,其中屬於最短路徑樹的邊被忽略。 (另一種選擇是去參觀歐拉遊秩序的交錯樹的半邊緣,但這種做法似乎,雖然它會產生額外的對數時動態樹操作。)
相關問題
- 1. 試圖創建一個矩陣偶數的平方的名單,得到錯誤
- 2. 尋找一個插件來創建平面圖
- 3. 創建一個面板的圖像
- 4. 試圖創建一個奇數偶函數
- 5. 創建/一個視圖頁面
- 6. 如何創建一個平面UIActionSheet
- 7. 豬 - 創建一個從平面文件
- 8. 創建一個圖像對象數組
- 9. 試圖創建一個JavaScript對象
- 10. 創建一個位圖裏面的位圖
- 11. 我想知道如何用wpf創建地圖或平面圖
- 12. 從圖像創建一箇中心對齊的縮略圖
- 13. 試圖創建一個將兩個對象配對的ADT
- 14. 創建圖像去後面的另一
- 15. Java創建一個偶數ArrayList
- 16. 在桌子裏面創建一個Highcharts餅圖圖例
- 17. 試圖創建一個函數,找到無限的平均值
- 18. 試圖創建一個水平居中的菜單
- 19. 創建一個明智的折線圖與平均實際
- 20. Android - 創建一個類似Airbnb的水平圖像滑塊
- 21. 從另一個圖像創建平鋪的UIImage
- 22. 創建一個具有不平衡行和列的棋盤圖
- 23. 創建一個具有水平滾動視圖的xml嗎?
- 24. 試圖創建陣列,但創建一個對象
- 25. 試圖用相同的jquery創建多個水平條形圖
- 26. 創建一個圖像庫
- 27. Java - 創建一個圖像
- 28. 創建一個tiff圖像
- 29. 試圖創建一個框
- 30. 創建一個從圖
根據網上查到的論文我可以通過使用歐拉遊覽圖創建Plannar圖,因此我安排了代碼,以便每次更改都可以在log n中完成。就像動態樹一樣。如果你使用dijkstra,這意味着你會有n^2 * n^2的複雜性。是的,但我很難理解euler tour raph的操作將如何與鏈接/剪切樹一起工作。因爲它們可以用作交叉樹木。由於歐拉圖不能存儲有關路徑的信息。非常感謝幫助:) – 2013-03-09 09:01:10
1.在初始化過程中,我僅使用Dijkstra一次。 MSSP的漸近運行時間仍然是O(n log n)。對於平面圖有一個線性時間最短路徑算法,但是由於計算初始最短路徑樹只是整個運行時間的一小部分,即使該步驟的運行時間是零。 2.歐拉遊覽樹不適合,因爲它們不支持路徑操作。我的意思是你可以枚舉交叉樹的半邊而不使用堆棧。 – 2013-03-09 16:38:10
sry我誤解了你,非常感謝你的幫助:) – 2013-03-10 09:50:33