如何根据两条边之间的角度遍历图形

时间:2015-07-28 10:34:51

标签: algorithm graph breadth-first-search

基于两条边之间的角度,我遇到了关于Graph遍历的问题。我想总结一下这个问题,给出5个顶点a,b,c,d,e和边(a, b)(b, c)(c, d)(d, e)

如果我想基于计算两条边之间的角度来遍历图形,例如angle((a, b), (b, c))。如果我的角度大于10度,我应该停在b并再次开始这个过程。

在具体的编程结构中,我需要考虑采取哪些步骤来解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,当angle((a,b),(b,c))返回的值超过某个阈值(在您的示例中为10)时,您应该停止遍历图表。

这意味着,有效地,此节点(b)无法通过连接两条边((a,b)(b,c))来提供帮助。它可能对其他一组边有用,但该特定连接不可用。

我的建议是交换边和节点的角色。 G中的每个边都成为G'中的一个节点,G中的每个节点都成为G' 的边缘,如果{{1}的值返回低于阈值的值。

angle()上,您现在可以运行BFS,DFS或您喜欢的任何其他算法。完成后,使用反向转换来"翻译"你的答案回到原来的图表中。