フィルターのクリア

random path between two nodes in undirected graph

7 ビュー (過去 30 日間)
Sara
Sara 2021 年 8 月 14 日
コメント済み: Walter Roberson 2021 年 8 月 15 日
I have a graph which consists of nodes and I need a fast algorithm that generates a random path between two nodes. I designed several algorithms from scratch for this but can't seem to get it right.
Either the algorithm gets stuck in loops, or when I keep record of the visited nodes it sometimes gets stuck between visited nodes. Another problem I encountered is that my algorithm was too unstable in performance.
So my question is; does anyone know a fast and stable algorithm for a random path between two reachable nodes in an undirected graph?
  2 件のコメント
Matt J
Matt J 2021 年 8 月 14 日
We need to see your code in order to say what might be wrong with it.
Walter Roberson
Walter Roberson 2021 年 8 月 15 日

サインインしてコメントする。

回答 (1 件)

Chunru
Chunru 2021 年 8 月 15 日
編集済み: Chunru 2021 年 8 月 15 日
% Generate a graph
s = [1 1 1 2 2 3 3 4 5 5 6 7];
t = [2 4 8 3 7 4 6 5 6 8 7 8];
G = graph(s,t);
h=plot(G)
h =
GraphPlot with properties: NodeColor: [0 0.4470 0.7410] MarkerSize: 4 Marker: 'o' EdgeColor: [0 0.4470 0.7410] LineWidth: 0.5000 LineStyle: '-' NodeLabel: {'1' '2' '3' '4' '5' '6' '7' '8'} EdgeLabel: {} XData: [0.9303 0.2543 1.0175 1.7647 -0.2543 -0.9303 -1.7647 -1.0175] YData: [1.4997 -0.4532 -1.8135 0.0124 0.4532 -1.4997 -0.0124 1.8135] ZData: [0 0 0 0 0 0 0 0] Show all properties
% find all paths between two nodes
p = allpaths(G, 2, 5); % nodes 2 and 5
npath = length(p);
% random path
idx = randi([1 npath], 1);
p{idx}
ans = 1×4
2 1 8 5
highlight(h,p{idx},'NodeColor','g','EdgeColor','g')

カテゴリ

Help Center および File ExchangeUndirected Graphs についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by