dijkstra

    5熱度

    5回答

    我已經實現了一個簡單的Dijkstra算法,用於查找帶有Java的.osm地圖上的最短路徑。 從.osm文件創建的圖形中的路徑查找效果很好。但是,如果用戶的當前位置和/或目的地不是該圖的節點(只是原始座標),我們如何將這些座標「鏈接」到圖上以使尋路工作成功? 簡單直接的解決方案「找到離當前位置節點最近並畫出一條直線」似乎並不現實。如果我們有像附圖所示的情況怎麼辦? (UPD) 這裏的問題是,在我們

    2熱度

    6回答

    我只是想確保這會工作。你能找到使用Dijkstra算法的最佳路徑嗎?你是否必須首先將距離初始化爲-1,然後更改鬆弛子程序以檢查它是否更大? 這是針對沒有任何負面權重的問題。 這實際上是該問題: 假設給出一個電話網,它是一個曲線圖 ģ其頂點代表交換機中心和其邊緣代表通信的兩個中心之間 線的圖。邊緣由其帶寬最低的帶寬邊緣標記。給出一個算法,給定一個圖和兩個開關中心 和b,將輸出a和b之間路徑的最大帶寬

    2熱度

    5回答

    我想不出一個具體負面的實例。你不能在兩座房子之間有一個負距離,你不能回到過去。你什麼時候有一個負邊緣重量的圖表? 我發現Bellman Ford算法最初用於處理ARPANET中的路由,但是又無法想象在哪裏遇到負重的路由,這似乎不可能。我可能只是在想這個問題,這是一個簡單的例子嗎?

    3熱度

    2回答

    我對Dijkstra算法中對最近鄰居的確定感到失落。我得到了奇怪的結果如下 首先,這是我的網絡文件的內容,代表7個節點之間的距離: http://pastebin.com/PUM5qT6D (第一列1-7的數字不包括在內) 現在對於我的代碼: > infinity = 1000000 invalid_node = -1 > startNode = 0 > > #Values to assig

    3熱度

    2回答

    我有了找到最短路徑(Dijkstra算法)的程序,我已經決定使用指針結構數組,我不斷收到此錯誤: In function ‘void insertNode(Node**, int)’ : TDA.cpp:14: error: cannot convert ‘Node**’ to ‘int*’ in assignment 這裏是我的代碼: struct Node{int distance, newD

    0熱度

    1回答

    好的,我已經改變了我的代碼了一點,但是我對變量名應該傳遞給我的nearestNeighbour函數感到困惑。這兩個功能正常工作: infinity = 1000000 invalid_node = -1 startNode = 0 #Values to assign to each node class Node: def __init__(self): self.

    -1熱度

    2回答

    我試圖構建一個最短路徑程序,並且對圖有一個問題。你應該先畫圖嗎?我還將如何定義哪些節點是鄰居?

    3熱度

    1回答

    我已經奮鬥了一整天理解Dijkstra算法,並沒有顯著的結果執行。我有一個城市矩陣和他們的距離。我想要做的是給出一個起點和一個終點,找到城市之間的最短路徑。 例子: __0__ __1__ __2__ 0 | 0 | 34 | 0 | |-----|-----|-----| 1 | 34 | 0 | 23 | |-----|-----|-----| 2 | 0 | 23

    5熱度

    3回答

    在過去的幾天裏,我試圖實現這個算法。到目前爲止,我設法創建了一個動態二維數組,並插入節點之間的距離,這是一個刪除節點之間路徑的函數,它告訴我兩個節點之間是否存在路徑。 現在我想實現一個函數,它返回從節點A到節點B的最短路徑。我知道dijkstras算法是如何工作的,並且我已經閱讀了wiki上的僞代碼,但是沒有能夠編寫我自己的任何代碼。我真的被困在這裏。 我一直在想如何代碼應該看起來像什麼,應該發生

    0熱度

    1回答

    我一直在研究一個小程序,該程序使用OpenMP來計算給定圖形中每個頂點的最短路徑,以拆分多個線程之間的計算,而不是一次只執行一個頂點。雖然我目前的實現工作,但我想讓它能夠從格式爲「vertex1 vertex2 weight」的文件中讀取圖形數據,因此圖形不會被硬編碼到程序中。 來源是這裏:http://pastebin.com/bkR7QysB 編譯如下: g++ -fopenmp GraphT