我正在寻找 Dijkstra 算法的实现,它也考虑了遍历的节点数量。
我的意思是,典型的 Dijkstra 算法会考虑连接节点的边的权重,同时计算从节点 A 到节点 B 的最短路径。我想在其中插入另一个参数。我希望算法也对遍历的节点数量给予一定的权重。
这样计算出来的从A到B的最短路径,在一定值下,不一定是最短路径,而是经过的节点数最少的路径。
对此有什么想法吗?
Cheers,
RD
Edit :
我很抱歉。我应该解释得更好。所以,可以说,从
(A,B) 是 A -> C -> D -> E -> F -> B 总共覆盖 10 个单元
但我希望算法能够得出路线 A -> M -> N -> B 总共覆盖 12 个单位。
因此,我想要的是能够对节点数量给予一定的权重,而不仅仅是连接节点的距离。
让我演示一下,向所有边添加常量值可以更改“最短”路线(边的总权重最小)。
这是原始图表(三角形):
A-------B
\ 5 /
2 \ / 2
\ /
C
从 A 到 B 的最短路径是经过 C。现在将常数 2 添加到所有边。最短路径变成了从 A 直接到 B 的单步(由于我们引入了使用附加边的“惩罚”)。
请注意,使用的边数(不包括您起始的节点)与访问的节点数相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)