将A*-Search实现为广度优先搜索/深度优先搜索



对于"Introduction to artificial intelligence"的作业,我需要解决以下问题:

Let f(n) = c1*g(n) + c2*h(n) be an evaluation function, where c1,c2 be constants.
1. Define c1,c2,h(.),g(.) such that A* with this evaluation function is bfs.
2. Define c1,c2,h(.),g(.) such that A* with this evaluation function is dfs.

对于BFS,我有以下想法:设g(n)为起始节点到当前节点的成本,h(n)为当前节点到目标节点的估计成本。如果我设置c2 = 0,它实际上应该是广度优先搜索。

对于DFS,我想设置c2 = 0c1 = (-1)

你能给我任何想法,提示或反馈吗?

我认为你的答案是意料之中的。然而,我认为这个问题有点错,因为我发现不可能制作BFS和DFS(在我理解它们的术语中)。

问题是DFS和BFS都不关心路径长度。它们只关心节点的顺序。

你的BFS解决方案实际上是一个均匀代价搜索(或dijkstra算法),这是对基本BFS的改进。

您的DFS解决方案扩展了最远的节点,这不是实际的DFS(有堆栈)的工作方式。

如果有地方声明电弧成本总是相同的,那么答案将是正确的

最新更新