我正在尝试编写(或扩展现有的)图搜索算法,考虑到无法保证节点将被连接,该算法将让我找到最接近目标节点的路径。
为了提供一个实际的应用,假设我需要从安大略省的布兰普顿到安大略省的汉密尔顿。我知道在我的起点我可能的选择是本地交通、GO 巴士或步行。我知道步行是到达目的地最不受欢迎的方式,所以我先看看 GO 巴士。我知道我可以将 GO 带到靠近汉密尔顿的一个点,但是在那一点上,GO 巴士转向另一个方向,在最近的点是我别无选择的地方(除了步行,但算法只会考虑步行对于短距离,否则它将认为该路线不可行)
使用同样的例子,如果算法发现我可以到达那里的方式更长但让我更接近目标节点(或可能在目标节点),这将是一个更高的加权路径(权重不在它的搜索过程中非常重要,只有当结果交付时,它才会按升序列出离目的地最近的路径)。例如,一辆 GO Bus 可以让我距离目的地节点 3 公里,而 3 辆公共交通巴士可以让我距离目标节点 500m
所以我的问题有两个方面:1)我应该从什么算法开始做类似的事情 2)我如何以编程方式解释如果节点不连接也没关系,这样它就不会只是从节点 A 跳转到节点 R。会从头开始并向后工作来完成这个
编辑:我忘了问如何瞄准最佳近似解决方案,因为特别是对于一个大图,这个问题可能会有数百万个解决方案。
谢谢,迈克尔