仅检查两个节点是否在图形中的给定距离(路径长度)内

时间:2016-11-06 11:28:42

标签: python graph nodes distance breadth-first-search

我正在尝试实现一个python函数,它检查两个给定节点(public String hexToBin(String hex) throws NumberFormatException { String bin = Integer.toBinaryString(Integer.parseInt(hex, 16)); int len = bin.size(); return len == 8 ? bin : "00000000".substring(len - 8) + bin; } start)是否在Graph中的某个距离内(让我们说dist = 4)。

一种粗略的方法是在两个节点之间找到最短路径(使用Breadth First Algorithm),然后检查最短路径的长度是否小于(或等于)规定距离(dist = 4) )。但这显然不是最好的解决方案,并且有很多开销。从这两个python函数开始,你能指导我如何修改这些函数来实现这样的功能吗?

正如我所提到的,我对找到的路径本身并不感兴趣。我们所有的兴趣在于两个节点是否 彼此之间的规定距离。 goalYES返回标记就足够了。

NO

1 个答案:

答案 0 :(得分:0)

您无需找到它们之间的最短距离。您所要做的就是在所需的dist之后切断您的bfs。如果您未在截止前访问目标节点,则开始与目标之间的距离大于dist。您也可以以类似的方式使用dfs。当深度大于dist时,切断搜索。此搜索方法称为深度限制搜索。