Dijkstra(或其他最短路径算法),其中终端节点可以是起始节点

0 algorithm dijkstra shortest-path graph-algorithm

Dijkstra的传统*实现并不能很好地处理这种情况.我想我已经提出了一些可行的解决方案,但它们并不是特别优雅**.这是标准解决方案的已知问题吗?

这是假设非平凡的解决方案,即类似A-> B-> C-> A的路径,而不仅仅是A-> A.

*当我说传统时,我的意思是将每个节点标记为已访问.

**存储每个节点的访问次数,并根据终端节点是否为起始节点的终止条件.

Pet*_*vaz 7

将A拆分为两个节点,称为START和GOAL.

对于任何边A-> x,添加边START-> x

对于任何边y-> A添加边y-> GOAL

保持所有其他边缘不变.

然后使用普通的Dijkstra来求解从START到GOAL的路径