我正在阅读《人工智能:一种现代方法》(Stuart Russell 和 Peter Norvig 撰写)一书。
但是,我不明白搜索和计划之间的区别。当我看到一些搜索问题可以通过计划的方式确定时,我更加困惑。我的教授以一种令人困惑的方式向我解释说,真正的区别在于搜索使用启发式函数,但我的书说规划也使用启发式(在第 10.2.3 章中)。
我读了这篇 Stack Overflow 帖子,它以某种方式说出了我在说什么。
那么,搜索和规划有什么区别呢?
我正在阅读《人工智能:一种现代方法》(Stuart Russell 和 Peter Norvig 撰写)一书。
但是,我不明白搜索和计划之间的区别。当我看到一些搜索问题可以通过计划的方式确定时,我更加困惑。我的教授以一种令人困惑的方式向我解释说,真正的区别在于搜索使用启发式函数,但我的书说规划也使用启发式(在第 10.2.3 章中)。
我读了这篇 Stack Overflow 帖子,它以某种方式说出了我在说什么。
那么,搜索和规划有什么区别呢?
计划(又名自动计划或AI 计划)是搜索计划的过程,计划是将代理/世界从初始状态带入一个或多个目标状态的一系列动作,或策略,其功能来自状态到动作(或动作的概率分布)。规划不仅仅是使用搜索算法(例如,状态空间搜索算法,例如 A*)来查找计划,而且规划还涉及通过以某种方式描述问题来建模问题,例如使用动作语言,例如PDDL或ADL,甚至是命题逻辑。
有不同的规划问题,例如
有不同的规划方法,例如
通过状态空间搜索进行规划(有或没有启发式),即制定规划问题,以便您可以应用状态空间搜索算法(状态空间搜索算法的示例是 A*、IDA*、WA*、DFS 或 BFS ); 这可能是使人们将规划与搜索混淆的规划方法(通常隐含地指状态空间搜索)
通过解决约束满足问题进行规划(类似于 SAT)
通过“符号”搜索方法(例如二元决策图)进行规划
有许多不同的规划算法或规划器(当然,每一种都对应于某种方法或用于解决特定的规划问题),例如
在 AI 的上下文中,当人们使用单词search时,他们可以隐含地指代状态空间搜索(使用 A* 等算法),或者更模糊/一般地指代任何类型的搜索,例如梯度下降也可以被视为作为一种搜索算法,通常在连续状态空间(而不是离散状态空间)中,例如某个模型(例如神经网络)的参数实值向量空间。
从我上面描述计划的第一段中应该或多或少地清楚区别:搜索用于计划,但计划过程/研究还包括其他内容,例如用行动语言描述问题,例如 PDDL。您还可以将规划视为不同类型搜索算法的应用。无论如何,规划就是寻找计划或政策。您可能应该查看本课程以获取更多信息。这个(自动)计划的定义与我们通常的计划概念是一致的。
通常术语是模糊的,如果这将是学校的测试项目,我会在接受之前与老师一起回覆我的回答。
它们的关键区别在于先验知识。
搜索 - 当他们在没有先验知识的情况下进行搜索时。这可能是一个反复试验的随机过程。没有关于状态转换的期望。例如探索废弃的房子。你不知道接下来会发现什么。
计划 - 你有一个状态转换模型并且可以做出预测。一步或多步预测功能允许您预测结果,因此可以从多个选项中选择一个结果。