floyd-warshall

    0熱度

    1回答

    如何找到任意頂點之間沿所有可能路徑的最小邊權重的最大值(u,v)? 我在考慮Floyd-Warshall的修改? i.e. Path 1: s - a - b - c - d - t with weights 1 - 5 - 6 - 10 - 9 最低邊緣權重爲1 Path 2: s - x - y - z - w - t with weights 3 - 9 - 8 - 6 - 7 最低

    1熱度

    1回答

    我正在實施Floyd-Warshall algorithm。 我有大約50個節點的全圖,我想找到所有節點之間的最大路徑。 該算法返回的路徑可以是任意長度1 < x < 50,我需要這個長度最多是3-4個邊長,我怎樣才能改變算法呢?

    0熱度

    1回答

    我想用Floyd的算法通過98個路標(位於每個迷宮頂點)的迷宮生成最快路徑矩陣。算法運行時,它填充兩個矩陣 - 距離矩陣(兩個節點之間距離最優的距離)和路徑矩陣(下一個節點爲任意兩個節點之間的最優路徑)。 距離矩陣用在先前的代碼中生成的鄰接矩陣來初始化。我還生成一個數據結構,其中包含指向每個航點的四個可能的相鄰航點的指針,但我沒有使用這個數據結構來生成航線矩陣。 這裏是我的C#代碼: // In

    9熱度

    3回答

    我已經實現了Floyd Warshall算法,它的工作原理,但問題是我不知道如何找到所有未定義的路徑。我在網上搜索過,但我只能找到如何檢測圖表是否有負循環的答案。 vector< vector <int> > floyd_warshall(vector< vector<int> > d, int n){ for(int i = 0; i < n; i++) d[i][i] = 0;

    21熱度

    2回答

    我一直在研究這三個,我在下面陳述他們的推論。有人能告訴我,我是否足夠精確地理解了它們?謝謝。 Dijkstra算法只用於當你有一個單一來源,你想知道,從一個節點到另一個最小的路徑,但在案件未能像this 弗洛伊德 - 沃肖爾的算法時使用所有節點中的任何節點都可以成爲源節點,因此您希望最短距離能夠從任何源節點到達任何目標節點。這僅當有負向週期 (這是最重要的一個失敗。我的意思是,這是一個我至少肯定:

    0熱度

    1回答

    我想實現弗洛伊德的算法。我認爲我的代碼存在問題,我無法弄清楚。輸出是不同的,他們只是缺少一些小的東西。在我的代碼中,我還包括一個輸入,輸出和原始輸出。我會很感激任何小小的幫助。 #include<stdio.h> #define maxVertices 12 #define INF 55 int min(int a,int b){ return (a<b)?a:b; } voi

    1熱度

    2回答

    我實現了Floyd-Warshall算法。根據他們的矩陣,我可以得到正確的結果,關於兩地之間的最短路徑和距離。我的問題是如何打印從i到j的最短距離。我做了一些研究,我發現了一個這樣的算法。任何人都可以解釋我該怎麼做,或者它是如何工作的,或者說任何其他建議? PrintShortestPath(P,i,j){ if(i==j) print i else if (P[i][j]==

    1熱度

    1回答

    對於Floyd-Warshall算法,循環的順序是k,i和j。如果我搞砸了循環的順序,並不小心把它寫成i,k和j,會發生什麼?該程序不能工作的方式是什麼?謝謝!

    0熱度

    1回答

    我一直在嘗試一個星期才能找到適合我正在開發的遊戲的路徑。我使用Floyd Warshall算法的this implementation。我相信我已經成功地縮小問題是在這個循環中: for(int k = 0; k < nodes.length; k++) for(int i = 0; i < nodes.length; i++) for(int j = 0; j < node

    2熱度

    1回答

    基本上使用Floyd-Warshall算法的要點是確定連接圖中兩個節點之間的最短路徑。我試圖做的是,而不是簡單地找到最短的路徑,我想要的最短路徑也是一個重量。 舉例來說,這是一個簡單的實現了弗洛伊德 - Warshall算法的: #include <stdio.h> main() { int dist[10][10],succ[10][10],n,i,j,k; int n