我希望您能够帮忙翻译以下编程相关内容:我想要找到两个顶点之间的最短路径,并有一个额外的限制条件:最多可以访问n个顶点。该图是有向的,连通的,权重为非负数,可能包含循环。
例如:
- 从0到2的最短路径,当n=2时为18
- 从0到3的最短路径,当n=3时为22
- 从0到3的最短路径,当n=4时为9
目前我已经实现了Dijkstra算法来获得简单的最短路径,我的想法是保持当前访问的顶点计数器,如果超过n,则返回一步或多步并尝试另一条路径... 但据我所知,Dijkstra不能用于回溯,如此处所述。
另一个想法是以某种方式将每个节点之间的每条路径存储在表中。但我不太确定Dijkstra如何发现权重为18的路径0->2,因为它实际上不是最短路径...
有人有什么想法来解决这个问题吗?