我正在寻找一种算法,以在给定无向加权完整图中的最大成本的情况下找到具有最小成本和最大长度的两个节点之间的路径。权重是非负的。
就我现在的立场而言,我正在使用 DFS,而且速度非常慢(节点数量多且长度也最大)。我已经在 DFS 的每次迭代中丢弃了所有不可能的节点。
有人可以指出一个已知的算法来更好地处理这个问题吗?
澄清一下:理想情况下,算法应该搜索最小成本的路径,但如果这意味着访问更多节点,则允许增加成本。当它得出结论:在不超过成本限制的情况下不可能到达超过 n 个节点并且不可能以更少的成本到达 n 个节点时,它应该结束。
更新
图表示例。我们必须从 A 到 B。成本限制设置为 5:
这条路径(红色)没问题,但算法应该继续寻找更好的解决方案
这更好,因为虽然成本增加到 4,但它包含了 1 个节点
这里的路径包含 3 个节点,所以它比以前好很多,成本是可以接受的 5
最后,这个解决方案甚至更好,因为路径也包含 3 个节点,但成本为 4,比以前少。
希望图片比文字解释得更好