Artificial intelligence 通过地图寻找路径的算法
给定一个多维数组,其中X是一面墙,*是目标位置。如何找到一条路径而不陷入循环Artificial intelligence 通过地图寻找路径的算法,artificial-intelligence,Artificial Intelligence,给定一个多维数组,其中X是一面墙,*是目标位置。如何找到一条路径而不陷入循环 $map= array( array("X","X"," ","*"), array(" ","X"," ","X"), array(" "," "," "," "), array(" ","X","X"," ")); 首先,您需要一个函数,该函数为每个单元或节点提供有效的邻居 然后,为了找到通往目标的最短路径,我们应该这样做。如果从起始位置开始并展开节点直到达到目标,则始终
$map=
array( array("X","X"," ","*"),
array(" ","X"," ","X"),
array(" "," "," "," "),
array(" ","X","X"," "));
首先,您需要一个函数,该函数为每个单元或节点提供有效的邻居 然后,为了找到通往目标的最短路径,我们应该这样做。如果从起始位置开始并展开节点直到达到目标,则始终会找到最短路径(如果有)。或者,您可以从目标开始并展开,直到覆盖整个地图,并且对于每个起始位置,您将拥有到目标的最短路径(当然,这只有在目标不移动的情况下才有意义) 为了避免陷入循环,最重要的方面是保留已展开节点的列表(或集合、映射或其他内容)
对于更复杂的地图,或者当某些路径出现不同的“成本”时,您可能更愿意使用*或Dijkstra算法。从何处开始?我敢肯定,这是一个图遍历算法会有帮助的地方。我错了,图遍历不是最优的,树遍历(BFS或DFS)在这里会更好。