Search 此图上DFS生成的解决方案路径是什么
使用此图上的DFS,节点按以下顺序访问(对于多个后续节点,节点按字母顺序推送到“前沿”): S->A->E->D->F->G 访问顺序也是解决方案路径吗?如果是,为什么不是S->A->E->G,因为G也是E的后续节点Search 此图上DFS生成的解决方案路径是什么,search,graph-algorithm,depth-first-search,Search,Graph Algorithm,Depth First Search,使用此图上的DFS,节点按以下顺序访问(对于多个后续节点,节点按字母顺序推送到“前沿”): S->A->E->D->F->G 访问顺序也是解决方案路径吗?如果是,为什么不是S->A->E->G,因为G也是E的后续节点 PS:我不熟悉算法,所以如果我显然不理解这个概念,请让我知道。我假设它同时考虑了启发式和边缘成本,以确定下一个要访问的节点 从S开始,它考虑了三种可能性: A = 9 + 13 = 21 B = 14 + 14 = 28 C = 15 + 15 = 30 D = 2 + 8 =
PS:我不熟悉算法,所以如果我显然不理解这个概念,请让我知道。我假设它同时考虑了启发式和边缘成本,以确定下一个要访问的节点 从S开始,它考虑了三种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
然后它选择A并查看其从A到E的唯一可用路径
从E中,我们有两种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
然后选择D,现在有两种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
这是一个平局,因此取决于算法是如何设置的,你给它的解决方案是F,然后有两种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
然后它转到G,最后它看到这是目标节点并返回状态序列。我假设它考虑了启发式和边缘成本来确定下一个要访问的节点 从S开始,它考虑了三种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
然后它选择A并查看其从A到E的唯一可用路径
从E中,我们有两种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
然后选择D,现在有两种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
这是一个平局,因此取决于算法是如何设置的,你给它的解决方案是F,然后有两种可能性:
A = 9 + 13 = 21
B = 14 + 14 = 28
C = 15 + 15 = 30
D = 2 + 8 = 10
G = 19 + 0 = 19
F = 11 + 5 = 16
G = 16 + 0 = 16
E = 6 + 7 = 13
G = 6 + 0 = 6
然后转到G,最后看到这是目标节点并返回状态序列。如果您正在访问节点,DFS方法将根据邻接列表的创建顺序遍历图形 例如,插入节点
E
的后继节点的顺序可以采用以下方式:
1- E-> D, G
2- E-> G, D
在第一种方式中,您将直接遍历D->F->G
或D->G
,在这两种情况下,您将在遍历任何节点E
其他后续节点之前访问节点G
,因此,您将无法遍历路径S->A->E->G
,因为节点G
之前将从节点D
或F
访问
在第二种方式中,您将直接遍历E->G
,因此这将导致遍历路径S->A->E->G
,但您也将无法从节点D
或F
访问节点G
,因为它将已经从节点E
访问
如果使用true或false进行访问,则会出现前一种情况,但如果您试图使用边上的代价来查找最短路径,则需要使用Dijkstra的算法来查找图上的最短路径,如果您不熟悉,则可以阅读有关它的更多信息。如果您正在访问节点,DFS方法将根据邻接列表的创建顺序遍历图 例如,插入节点
E
的后继节点的顺序可以采用以下方式:
1- E-> D, G
2- E-> G, D
在第一种方式中,您将直接遍历D->F->G
或D->G
,在这两种情况下,您将在遍历任何节点E
其他后续节点之前访问节点G
,因此,您将无法遍历路径S->A->E->G
,因为节点G
之前将从节点D
或F
访问
在第二种方式中,您将直接遍历E->G
,因此这将导致遍历路径S->A->E->G
,但您也将无法从节点D
或F
访问节点G
,因为它将已经从节点E
访问
如果您访问的是true或false,则会出现前一种情况,但如果您试图使用边上的代价来查找最短路径,则需要使用Dijkstra的算法来查找图上的最短路径,如果您不熟悉它,您可以阅读有关它的更多信息