Recursive Search for All Possible Paths Between 2 Nodes
7 views (last 30 days)
Show older comments
czeslaw on 31 Jan 2018
Commented: Can Chen on 5 Jun 2020
I am trying to look if there is any existing function or codes that can help me to find all possible paths from a starting node to a target node. The only restrictions is that the traveller cannot travel to any previously travelled path or vertex. I imagine this will need a recursive function if the path has some branches to check all possible paths to destination in each intersection.
The ideal input format would be function(coordinates, NodeConnectivityMatrix, startnode, targetnode).
The ideal output format would contain sets of vectors with NodeIndices describing all possible paths.
Please any suggestion. Thank you.
Can Chen on 5 Jun 2020
Hi czeslaw, I work at MathWorks on graphs. If you have a few minutes, I would very much appreciate hearing more about your workflow using paths. Would you please contact me directly? Thanks.
Peter Cook on 1 Feb 2018
You should check out the graph class. https://www.mathworks.com/help/matlab/ref/graph.html
Most common graph operations are implemented
>> methods graph
Methods for class graph:
addedge centrality findnode maxflow plot subgraph
addnode conncomp graph minspantree reordernodes
adjacency degree incidence nearest rmedge
bctree dfsearch isisomorphic neighbors rmnode
bfsearch distances isomorphism numedges shortestpath
biconncomp findedge laplacian numnodes shortestpathtree
If need more graph methods than that and you have the python networkx library somewhere on your machine, you can create a nx graph like this and use whatever nx methods you want with dot notation:
g = py.networkx.Graph()
Find more on Graph and Network Algorithms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!