Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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

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
Algorithm 广度优先搜索的实现_Algorithm_Search_Memory_Path - Fatal编程技术网

Algorithm 广度优先搜索的实现

Algorithm 广度优先搜索的实现,algorithm,search,memory,path,Algorithm,Search,Memory,Path,我正在尝试用Javascript实现广度优先搜索(也是其他算法,但目前是bfs) 最后,我想在网格上应用所有搜索算法,找到从起点到目标节点的路径(我知道bfs在这方面不是特别擅长)。我已经做了一个实现,但问题是我没有提前得到整个树。我想给它一个startnode和endnode,并在此基础上找到它们之间的路径 我遇到的问题是,当我确定相邻的网格正方形时,它会返回所有的邻居,甚至是已经遍历的邻居。这将它转换为图形搜索而不是树搜索。解决这个问题的一种方法是记住所有路径,这样我就可以检查哪些邻居已经被

我正在尝试用Javascript实现广度优先搜索(也是其他算法,但目前是bfs)

最后,我想在网格上应用所有搜索算法,找到从起点到目标节点的路径(我知道bfs在这方面不是特别擅长)。我已经做了一个实现,但问题是我没有提前得到整个树。我想给它一个startnode和endnode,并在此基础上找到它们之间的路径

我遇到的问题是,当我确定相邻的网格正方形时,它会返回所有的邻居,甚至是已经遍历的邻居。这将它转换为图形搜索而不是树搜索。解决这个问题的一种方法是记住所有路径,这样我就可以检查哪些邻居已经被遍历了,因此不需要进一步检查。然而,正如我在一门关于搜索算法的课程中所学到的,bfs在当前深度级别上具有所有节点的内存使用率。如果我存储所有路径,那么它会消耗更多的内存,对吗

当我事先没有树状结构并且仍然避免循环时,是否可以只在内存中保存bfs正在搜索的当前深度的节点

我希望我已经说清楚了

提前感谢,, Stefan

如果您将“忘记”您访问的节点,您可能会遇到相同的问题-它不是最优的(可能找不到最优路径)也不完整(由于无限循环,即使存在,也可能找不到解决方案)

请注意:

  • 即使你只记得最深层次的节点——这对你仍然没有多大帮助——记住,例如,在二叉树中,一半的节点是叶子,所以空间复杂度仍然是巨大的
  • 只记住部分节点并不能保证最佳性,因为最终你会重新发现一个你已经忘记的顶点——到那时,你就进入了一个循环

如果您正在寻找更高效的内存算法,该算法既完整又优化,那么可能就是您所追求的算法。

您是在搜索树还是在搜索图?听起来你真的有一个图形,但是你想使用一个基于树的搜索算法——那是行不通的。