Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Artificial intelligence 通过地图寻找路径的算法_Artificial Intelligence - Fatal编程技术网

Artificial intelligence 通过地图寻找路径的算法

Artificial intelligence 通过地图寻找路径的算法,artificial-intelligence,Artificial Intelligence,给定一个多维数组,其中X是一面墙,*是目标位置。如何找到一条路径而不陷入循环 $map= array( array("X","X"," ","*"), array(" ","X"," ","X"), array(" "," "," "," "), array(" ","X","X"," ")); 首先,您需要一个函数,该函数为每个单元或节点提供有效的邻居 然后,为了找到通往目标的最短路径,我们应该这样做。如果从起始位置开始并展开节点直到达到目标,则始终

给定一个多维数组,其中X是一面墙,*是目标位置。如何找到一条路径而不陷入循环

$map=
array( array("X","X"," ","*"),
       array(" ","X"," ","X"),
       array(" "," "," "," "),
       array(" ","X","X"," "));

首先,您需要一个函数,该函数为每个单元或节点提供有效的邻居

然后,为了找到通往目标的最短路径,我们应该这样做。如果从起始位置开始并展开节点直到达到目标,则始终会找到最短路径(如果有)。或者,您可以从目标开始并展开,直到覆盖整个地图,并且对于每个起始位置,您将拥有到目标的最短路径(当然,这只有在目标不移动的情况下才有意义)

为了避免陷入循环,最重要的方面是保留已展开节点的列表(或集合、映射或其他内容)


对于更复杂的地图,或者当某些路径出现不同的“成本”时,您可能更愿意使用*或Dijkstra算法。

从何处开始?我敢肯定,这是一个图遍历算法会有帮助的地方。我错了,图遍历不是最优的,树遍历(BFS或DFS)在这里会更好。