这可能与计算认知科学有关,但是我对通用寻路算法(例如A *)所遵循的过程与人类在不同寻路情况下(给定相同信息)所使用的过程的比较感到好奇。这些过程是否相似?
这可能与计算认知科学有关,但是我对通用寻路算法(例如A *)所遵循的过程与人类在不同寻路情况下(给定相同信息)所使用的过程的比较感到好奇。这些过程是否相似?
Answers:
人们倾向于选择并非严格地最优,而是选择最短的解决方案。因此,您需要查看模糊(近似)算法,而不是A *。
我所知道的最接近人类思维的算法是与Reach修剪算法相当的Contaction层次结构。当我需要在地图上找到A和B之间的路径时,我会做一个快速概述,考虑是否有过河或其他东西,并寻找一些通用的方法,然后添加可以缩短路径的细节。
这里有很多注意事项。前两个摘录自Andreas Junghanns 出色的博士学位(现在回到德国柏林的工业界,很高兴将他列入我的朋友们之中:)):
广度优先搜索:如果您只是站在家具前,而有价值的东西(例如硬币或戒指)掉落并进入家具下方,以致您看不到它,那么您会从家具的开始略微摇动手看到物体消失的地方。如果找不到它,您可以走得更远,然后继续进行下去,直到找到它或失去耐心为止。这实际上是广度优先的搜索:首先,您考虑深度1处的所有未知位置,然后考虑深度2处,依此类推。
深度优先搜索:当寻找周围环境较远的东西时,您永远不会选择上述算法,而是会选择一个方向。一个例子是克里斯托瓦尔·科隆(Cristobal Colon)在寻求前往印第安人的路线时承诺向西走。好吧,他错了,但如今我们知道了。想象一下,科隆尝试进行广度优先的搜索,并沿着布尔戈斯的螺旋形运动,那里签署了雷耶斯·卡托利科斯和科隆之间的合同。相反,他指出了给定的方向,从未回溯。
我大学的一位教授(已去世的JoséCuena)的另一个例子是双向搜索:工程师在山区建造隧道时,是从两端同时开始,而在中间相遇时结束。原因很简单,如果它们仅从一端开始,则另一端很可能会有很大的偏差。从两端同时开始,可以最大程度地减小汇合点的偏差。
其他人以某种方式解决的一个非常有趣的问题是,人类是否可以运行任何算法,以及(从我的观点来看,更有趣的是)这些算法(或者,通常来说,我们构建人工智能的方式)是否模仿了我们的自然智能程序。