我在使用Dijkstra的算法返回从A到E的最优路径时遇到问题,在下图中的转折损失为0.25:
我的实现返回路径ABDE (因为到D的最短距离沿曲线计算为3.05,而不是沿直线计算为3.25 ),其总成本为1+ 0.25 + 1.8 + 0.25 +1= 4.3。
然而,路径ABCDE是总成本为1+1+ 0.25 +1+1= 4.25的最优路径。我如何修改我的实现来解决这个问题呢?现在,我要做的就是,如果du + w(u,v) + 0.25
发布于 2018-04-14 19:18:25
Dijkstra的算法不适用于转弯惩罚。如果要使用Dijkstra算法,则必须消除转向惩罚,例如,通过将图转换为具有边和边成本的原始节点/到达方向对的图,这些边和边成本结合了原始问题的转向惩罚。
https://stackoverflow.com/questions/49835234
复制