最短路徑演算法 最短路徑演算法視覺化

2021-10-12 18:23:09 字數 1713 閱讀 3022

個人圖論演算法大作業, 根據path finding修改,實現演算法:a*,dijkstra,spfa.

原始碼​github.com

程式介面

選單欄

內容欄 目前實現的演算法包含有:dijkstraa*spfa演算法, 首先建立單個頂點應包含的資訊, 其屬性包含如下:

// 頂點型別: 0 = start, 1 = finish, 2 = wall, 3 = empty, 4 = checked, 5 = finalpath

private int celltype = 0;

// 當前頂點到源點的距離(對角也設為1)

private int hops;

private int x;

private int y;

// 用於儲存父節點

private int lastx;

private int lasty;

// 用於計算h(x)

private double dtoend = 0;

接下來, 抽取出最短路徑演算法公共部分: 遍歷鄰接頂點, 回溯繪製最短路徑

// 回溯

public void backtrack(int lx, int ly, int hops)

solving = false;

}public arraylistexploreneighbors(node current, int hops) }}

}return explored;

}public void explore(node current, int lastx, int lasty, int hops)

// 確保父節點, 方便回溯

current.setlastnode(lastx, lasty);

// 設定源點到當前頂點的距離(g(x))

current.sethops(hops);

checks++;

// 若是終點, 直接回溯

if (current.gettype() == 1)

}

三個具體的演算法的是實現可以參考原始碼

350x350中a*演算法的執行過程

350x350中dijkstra的執行過程

執行時, 不能動態調整密度等條件

spfa演算法編寫有些問題尚未解決

最短路徑演算法 最短路

在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10000 n...

最短路徑演算法

floyd演算法 012345 001 54 1108 1 2 801 3 3 1035 45 302 5413520 floyd 演算法過程描述如下 首先 以邊集 初始化,得到所有的直接連通代價 依次考慮第 k個結點,對於 中的每乙個 i j 判斷是否滿足 s i j s i k s k j 如果...

最短路徑演算法

個人覺得下面 有代表性 最短路徑演算法原始碼 vb 本人載 開發gis,遊自編的最短路徑查詢程式,速度特快,3萬節點,35000條路全部遍歷,只需1秒。現將最短路徑的思路告訴大家,希望大家在優化,並用不同語言編制,我正在學delphi,準備用delphi做成庫,本例以由拓撲關係的arc info 檔...