【发布时间】:2014-08-07 11:37:51
【问题描述】:
我对图表有疑问。我的图表如下所示:
真正的问题是:我想找到两点之间“转弯”最少的路径。这是一个例子:
在这张图片中,我画了一个简单的 3x3 图形,红点和蓝点之间最短的路径是绿线,因为它只有一圈,而粉线有 3 圈。
我想相应地权衡图形的边缘,然后使用 Dijsktra 的算法找到合适的路径
【问题讨论】:
-
你有什么代码可以展示吗?
-
如果您将水平边称重为 1,将垂直边称重为 0.999,我认为您只需“转一圈”即可获得路径。但这只是我的直觉
-
类似于 vivoconunxino 的想法,用A* search 启发式 h1(x,y) = ax + y 和/或 h2(x,y) = x + ay。其中一个
-
使用基于边缘的算法并引入转弯成本函数
-
我找到了解决方案。简单边的成本为 1,转弯边的成本为 2*(H+W) ,其中 H 是图形的高度,w 是宽度。谢谢大家;)
标签: algorithm graph language-agnostic dijkstra