如何在图表中找到路径中最长的步骤

时间:2018-01-28 01:57:23

标签: algorithm graph

我有一个关于这个场景的问题,比如说给你一个顶点列表,每个人都用重量作为它们之间的距离来连接,而不是找到它的最短距离(因为每个人都连接起来,最短的路径是微不足道的),我希望有一条路径,使相邻顶点之间的最大距离最小化。 例如,我们有4个顶点位置:

A:(0, 0), B (20, 0), C(5, 5), D(15, 5)

目标是从A到B,路径应该是A - > C - > D - > B,而它不是最短路径,但最长步长是10(C-- > D)小于A - > B是20,是否有任何算法可以找到这样的路径并返回此路径中的最大步骤?

2 个答案:

答案 0 :(得分:1)

仅仅因为所有内容都与原始问题中的其他内容相关联并不意味着您无法设置并解决仅存在某些边缘的问题。如果你只保留长度最多K的边,仍然找到从A到B的路径,你知道有一条从A到B的路径,最长边最多为K.如果你找不到这样的路径,你知道没有这样的道路。

因此,通过运行二分搜索,您可以找到最小的K,使得从A到B的路径使用长度最多为K的边,但是没有使用长度小于K的边的A到B的路径。 K的值是路径上的最大步距,您可以通过从A到B的路径并查看其边缘的长度来找到它的位置(当然,您可能会在路径上找到两条长度恰好为K的边缘)。

答案 1 :(得分:0)

我认为目标不明确,但您可能需要对启发式算法进行深入研究。