0

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

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)

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

4

1 回答 1

1

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

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

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

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

如果在某处声明弧成本始终相同,则答案将是正确的。

于 2013-04-14T12:30:28.260 回答