Algorithm BFS如何在无限棋盘上给出骑士到达目标的最小步数

Algorithm BFS如何在无限棋盘上给出骑士到达目标的最小步数,algorithm,data-structures,graph,breadth-first-search,knights-tour,Algorithm,Data Structures,Graph,Breadth First Search,Knights Tour,有一个问题,我们应该找出一个骑士在一个无限的棋盘上到达目的地所需的最小移动次数。BFS通过将一个移动到其所有8个相邻可达顶点中的一个来解决这一问题。我无法理解BFS算法是如何实现的。请解释一下BFS是如何在这里工作的。据我所知,这是一种蛮力方法,你可以尝试所有可能的动作,直到到达目的地 您可以将棋盘视为一个图形,其中每个单元格都是一个节点,边是骑士移动(L形),因此,例如(0,0)、(1,0)、(2,1)是节点,在(0,0)和(2,1)之间有一条边;但不在(0,0)和(1,0)之间 有了BFS,

有一个问题,我们应该找出一个骑士在一个无限的棋盘上到达目的地所需的最小移动次数。BFS通过将一个移动到其所有8个相邻可达顶点中的一个来解决这一问题。我无法理解BFS算法是如何实现的。请解释一下BFS是如何在这里工作的。

据我所知,这是一种蛮力方法,你可以尝试所有可能的动作,直到到达目的地

您可以将棋盘视为一个图形,其中每个单元格都是一个节点,边是骑士移动(L形),因此,例如(0,0)、(1,0)、(2,1)是节点,在(0,0)和(2,1)之间有一条边;但不在(0,0)和(1,0)之间

有了BFS,你可以这样探索:首先你看一步中你能到达的所有单元格,然后你看两步中你能到达的所有单元格,然后是三步等等。。。
通过这种方式,每当你到达一个新的单元格时,你可以确保它不能在少于你当前级别的移动中到达(否则它必须已经到达);这显然也适用于目标小区;因此,在使用BFS进行探索时,当您到达目的地时,您会停止并返回当前级别(即最小移动次数)

据我所知,这是一种蛮力方法,您会尝试所有可能的移动,直到到达目的地

您可以将棋盘视为一个图形,其中每个单元格都是一个节点,边是骑士移动(L形),因此,例如(0,0)、(1,0)、(2,1)是节点,在(0,0)和(2,1)之间有一条边;但不在(0,0)和(1,0)之间

有了BFS,你可以这样探索:首先你看一步中你能到达的所有单元格,然后你看两步中你能到达的所有单元格,然后是三步等等。。。
通过这种方式,每当你到达一个新的单元格时,你可以确保它不能在少于你当前级别的移动中到达(否则它必须已经到达);这显然也适用于目标小区;因此,在使用BFS进行探索时,当您到达目的地并返回当前级别(即最小移动次数)时,您将停止

您的意思是这是一种蛮力方法,应该计算从源到所有8个节点的路径以及从所有8个可用节点到所有其他8个节点的路径,并且应该找出Knight走过的所有路径中的最小路径。@Mahideep我不确定我是否理解您在这篇评论中提出的问题。但是使用蛮力,我的意思是每一个可能的移动都会被分析。你的意思是,这是一种蛮力方法,应该计算从源到所有8个节点的路径,以及从所有8个可用节点到所有其他8个节点的路径,并且应该找出骑士走过的所有路径中的最小路径。@Mahideep我不确定我是否理解你在这方面的要求评论。但是用蛮力,我的意思是每一个可能的动作都会被分析