迪克特斯拉 Dijkstra 最短路徑演算法

2021-10-23 19:09:24 字數 1486 閱讀 1402

在進行三維管線連通性分析時,需要運用到最短路徑演算法,主要思路為首先初始化圖,然後將查詢到的管點以及管線分別作為圖的頂點數以及邊數。

export default ,

clear: function () ;

this.pathmatirx = ;

this.shortpathtable = ;

},//初始化圖

init: function (points, lines) ,

path(start, end) ,

//建立圖

createmgraph: function (points, lines)

// console.log(g.vexs); //列印頂點

//無向圖構建

for (let i = 0; i < g.numvertexes; i++)

for (let i = 0; i < g.numvertexes; i++) else }}

}}

//有向圖構建

// for (let i = 0; i < g.numvertexes; i++) else

// if ((line.qddh === g.vexs[j] && line.zddh === g.vexs[i]))

// }

//// }

// }

// }

//鄰接矩陣初始化

// for (let i = 0; i < g.numvertexes; i++)

// }

// console.log(g.arc); //列印鄰接矩陣

},// 定義圖結構

mgraph: function (g) ,

dijkstra2: function (n)

this.shortpathtable[0] = 0;

final[0] = 1;

//初始化資料

for (let v = 0; v < g.numvertexes; v++)

min = infinity;

for (let w = 0; w < g.numvertexes; w++)

}// console.log("b " + shortpathtable, k, min);

final[k] = 1; //將目前找到的最近的頂點置位1

for (let w = 0; w < g.numvertexes; w++) }}

},printvn: function (start, end)

str = g.vexs[start] + str;

// console.log('最短路線:' + str);

arr.pop();

arr.push(start);

// console.log(arr);

return

}}

迪節特斯拉最短路徑演算法

最短路徑求取依靠的是鄰接矩陣 從點1出發 依次到其他各點的距離是 無窮大代表無法到達,其中1 2的距離最短 然後檢視2到達各點的距離 發現2 4距離為3然後更新1點到各點的距離 依次是0 1 12 1 3 無窮 無窮 然後查點4到達其餘個點的距離 然後 其到3點的距離為4,因為1 3 4 12故更新...

最短路之Dijkstra 迪傑斯特拉

一般用法 dijkstra 迪傑斯特拉 演算法是典型的單源最短路徑演算法,用於計算乙個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。dijkstra演算法是很有代表性的最短路徑演算法,在很多專業課程中都作為基本內容有詳細的介紹,如資料結構,圖論,運籌...

最短路徑演算法Dijkstra演算法(迪傑斯特拉演算法)

網路 dist i 表示當前找到的v0到i的最短距離 path i 表示v0到i i的前一節點 void dij mgraph g,int dist,int path,int v0 else visted v0 true dist v0 0 path v0 v0 for i 1 i 在當前距離記錄中...