繁体   English   中英

在有向完整加权图中访问所有顶点的最短路径

[英]Shortest path that visits all vertices in a directed complete weighted graph

给定:完整的有向加权图。 所有权重均为正。 是否有任何简单的方法(启发式方法?)来找到访问所有顶点的最短路径(按权重)? 顶点数大约为25。此问题似乎与非对称旅行推销员很接近,但是我并不需要将此路径作为循环。

我建议使用K最短路径方法:

http://www.mathworks.com/matlabcentral/fileexchange/32513-k-shortest-path-yen-s-algorithm

我认为这是您最好的选择...这是一个示例:假设您有8个节点,并且需要以尽可能短的路径从节点1到达节点8。 假设所有节点都相互连接(即,节点1连接到节点2:8,依此类推)。 您将必须根据自己的问题生成“成本矩阵”。

costMatrix = rand(8);
[shortestPath, cost] = dijkstra(costMatrix,1,8);

% Alternatively, return the 10 shortest paths from point 1 to 8:
[shortestPaths, costs] = kShortestPath(costMatrix,1,8,10);

成本矩阵中的位置(i,j)是从节点i到节点j的成本。 如果costMatrix(i,j) = inf; 节点i和节点j之间没有连接。

在研究了隐藏的马尔可夫模型之后,我发现了许多潜在的问题-排放矩阵很难定义,并且您可能会遇到在单个“路线”中两次或多次输入“状态”的问题。 使用k最短路径时,不会发生此错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM