【发布时间】:2018-03-21 03:19:15
【问题描述】:
所以我有一个类似网格的图表。假设我想从 (1,1) 转到 (3,3)。假设所有边的权重相同,BFS 将清楚地返回多条路径(总成本相同)。有没有办法选择最大化转弯的路径(在最短的路径中)?
所以在示例中 (1,1) -> (1,2) -> (1,3) -> (2,3) -> (3,3) 和 (1,1) -> (1,2) -> (2,2) -> (2,3) -> (3,3) 具有相同的长度,但第二个将是更理想的路径。
我知道我可以生成所有路径然后过滤结果。但我想知道是否有办法在搜索中做到这一点。我正在考虑更改将邻居节点推入队列的顺序。但是我无法证明它会起作用。
感谢任何帮助、提示或指导!
【问题讨论】:
-
请参考 wiki 中的代码示例:en.wikipedia.org/wiki/Breadth-first_search
-
@FisNaN 感谢您的回复。我检查了您链接的页面。在我看来,唯一的代码示例只是一个常规的 BFS。它返回“最浅的目标”。我不明白它如何解决我的问题。我会尝试改写帖子。请澄清。
-
我想知道是否有办法调整权重以考虑转弯?我也喜欢你对队列排序的想法。我实际上不认为你可以用香草 BFS 做到这一点。
-
@BrianStinar 感谢您的意见!如果我们调整权重,是否可以保持原来的总成本?我想要的路径仍然必须是“最短的”。我希望我们可以在 BFS 内做些什么来实现这一目标。
-
一个。使用测试数据发布minimal reproducible example b。定量定义一个转弯(x 和 y 的变化?)
标签: graph-theory breadth-first-search