在分配期间,我想找到给定长度的最长圆形路径。使用下图作为示例。我们想找到给定长度的最长可能的圆形路径。
例如,对于长度 3,最长的圆形路径是 DBED 或 EDBE。
我提出了一种查找最长路径的方法,即 Dijkstra 的修改版本。区别在于:
而不是 min 是在每一步中搜索最大值。
当步长为 1 时,算法停止并返回起点,并将从最后一点的距离添加到总路径长度。
以每个节点为起点进行。
我已经检查了 6 个节点和长度最多为 5 个节点的算法并且它有效,但我无法检查它是否适用于像 100 这样的更大数字。
我的教授说 Dijkstra 不是您要寻找的那个问题,并且找到哈密顿电路的算法会更有效。我相信他是对的,正如Dijkstra 的算法修改人们指出的那样,在很多线程中,Dijkstra 的算法无法找到最长的路径。
但是,尽管 Dijkstra 确实不是我想要的;上述情况是一个非常特殊的情况,因为所有节点都已连接,并且修改后的版本检查每个点作为起始点以及给定长度的圆形路径。
最后,我的问题是为什么修改后的版本找不到正确的解决方案,只有这个特殊情况。