14

在人工智能方面,我现在正在阅读有关规划的内容。但作为一个对人工智能的天真者,我无法理解他们坚持“计划和搜索之间的区别”的意思。

我有 C/C++ 之类的过程编程知识,并且可以根据数据结构进行搜索。

而且我无法理解他们给出的“人工智能:一种现代方法 - Stuart Russell”中给出的 Buy(ISBN0123654789) 和 Have(ISBN0123456789) 的示例,搜索一个十位数的 ISBN 号码将采取 100 亿次行动。

我的问题是关于如何搜索一本书需要 100 亿次操作,但计划不需要。

4

5 回答 5

13

罗素和诺维格并不是说搜索和计划是不同的事情。事实上,在我认为你正在讨论的部分(在蓝色版的第 10 章中)他们说的恰恰相反:计划问题可以简化为搜索问题。

但是,表示为搜索的计划可能具有非常大的搜索空间。在本书的示例中,有 10^10 种不同的可能动作,并且使用不知情的搜索技术,计算机不会“知道” buy(x) 的结果是 have(x),尽管这对人类来说是微不足道的。因此,即使是单一行动计划的搜索空间也是巨大的。这听起来很愚蠢,但这是不知情搜索的定义。

因此,实际工作的规划算法需要一些算法和/或启发式的聪明才智,这一章的其余部分将继续描述。在本书的示例中,改进的搜索原因从 have(x) 的目标向后推,使用 buy(x) 与 have(x) 连接执行一些一阶逻辑模式列表,并得出正确的操作。

作为旁注,我非常喜欢罗素和诺维格的书,以及他们的一般工作。但我发现计划章节有点薄弱。Lozano-Perez 和 Kaelbling 教授在课堂上使用该书的前一版本在线获取了他们的讲义。他们的笔记非常详细,并附有示例。当我学习这个材料时,我发现它们是一个很好的补充:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-825-techniques-in-artificial-intelligence-sma-5504-fall-2002/index.htm

于 2012-04-23T15:06:36.387 回答
5

我不熟悉您引用的具体示例,但无论如何我都会尝试。

搜索是一个几乎完全通用的结构:有一个可能性空间,你想找到一个,但你必须通过检查一个(不一定是正确的)子集来找到它。关于特定的搜索问题(即空间是什么,你如何查询它等)和特定的搜索算法(最重要的是,你如何组织你在什么地方查询的空间的哪些部分)有各种各样的细节。命令)。几乎任何问题都可以作为搜索问题提出(可能性空间是什么,以及如何判断哪个是所需的),这就是它在人工智能中如此重要的原因。

计划是一种特殊的搜索:它是在行动序列(或更一般地,部分顺序)的空间中搜索满足某些标准的计划。这并不意味着它必须作为搜索来实现(就像一些可以使用搜索解决的问题可以通过其他方式解决一样),但可以这样描述问题。

说通过 ISBN 查找一本书将采取 100 亿次操作表明检查 ISBN 是其中一项操作(因为有很多可能的 ISBN),但以某种方式计划(即找到合适的操作顺序)将导致更少的操作(因为那么你就不需要检查所有的 ISBN 了吗?)。但如果没有问题的细节,我不能说这种说法有多合理。

于 2012-04-23T14:49:12.823 回答
2

计划可以利用回归搜索,即从目标状态开始并形成计划以达到初始状态。

对于您的书示例,如果您从 PRECONDITION: buy(B), ISBN(B) 开始,那么您可能有数百万个可能性要注意(因为有一百万个 ISBN 编号),但是您想“计划”如何达到目标状态,而不仅仅是“搜索”

计划为您提供了达到目标状态所需的一系列操作。搜索与“动作”无关

资料来源:Udacity AI 课程和 AIMA:Russel,Norvig

于 2014-10-03T16:21:34.153 回答
1

搜索和规划的主要区别在于状态的表示 在搜索中,状态被表示为单个实体(可能是一个相当复杂的对象,但搜索算法不使用其内部结构) 在规划中,状态具有结构化的表示规划算法使用的(属性集合)

于 2018-07-31T06:52:17.497 回答
0

为了简短起见,区别在于:

  • 搜索是并行完成的,并且是一个非常不知名的操作

  • 国家代表:

    • 搜索状态被表示为不使用其内部结构的单个实体
    • 计划状态具有计划算法使用的结构化表示
  • 规划可以利用回归搜索

    • 即从目标开始,从初始状态形成计划
于 2021-02-06T10:57:15.270 回答