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

时间:2013-04-14 12:10:04

标签: algorithm search

对于“人工智能简介”中的作业,我需要解决以下问题:

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)

您可以提供给我的任何想法,提示或反馈吗?

1 个答案:

答案 0 :(得分:1)

我认为你的答案是预期的答案。但是我认为这个问题有点不对,因为我发现不可能制作BFS和DFS(用我理解的术语)。

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

您的BFS解决方案实际上是统一成本搜索(或dijkstra算法),它是对基本BFS的改进。

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

如果某个地方声称电弧成本始终相同,那么答案是正确的。