结构化,分解和原子表示?

Rob*_*ard 8 artificial-intelligence

我目前正在阅读"人工智能:现代方法".虽然术语因素,结构化和原子表示令人困惑但这些意味着什么呢?

关于编程......

谢谢

Nov*_*vak 12

我对Russell和Norvig画的线条并不感到兴奋,但是:通常,当你使用AI技术来解决问题时,你将会有一个编程模型的情况.原子/因子/结构化是对这些模型具有多少"内部结构"的定性测量,从最小到最大.

原子模型没有内部结构; 国家要么与你想要的相匹配.例如,在滑动拼图拼图中,您可以正确对齐拼贴,也可以不拼写.

因子模型具有更多的内部结构,尽管这取决于问题.通常,您正在查看感兴趣的变量或性能指标; 在滑动拼图中,这可能是一个简单的启发式方法,例如"不合适的瓷砖数量"或"曼哈顿距离的总和".

结构化模型还有更多; 再次,究竟是什么取决于问题,但它们通常是模型的组件与其自身的关系,或模型的组件与环境组件的关系.

这很容易,特别是当看到像滑动瓷砖这样的非常简单的问题时,一眼就能无意识地完成所有硬智能工作,并忘记你的模型没有你所有的洞察力.例如,如果你要制作一个程序来对滑动拼图进行图形搜索技术,你可能会制作一些引擎作为拼图状态和动作的输入,并从中生成一个新的拼图状态.谜题状态仍然是原子的,但是程序员正在使用更详细的模型将这些输入和输出链接在一起.

  • 在我看来,对于一本原本非常强大的书来说,这是一个粗糙的补丁。这是一个先有鸡还是先有蛋的问题,因为在您看到它们的应用之前,您可能无法欣赏它们的框架;但仅仅看到它的应用,您可能不会想到这个框架。因此,他们尽其所能——尽早指出,给出一些例子,然后在后续章节中详尽地处理这些例子。 (2认同)

smi*_*-on 6

我喜欢诺瓦克给出的解释。我的 2 美分是为了明确factoredstructured之间的区别。以下是定义的摘录:

  • 原子表示是一种将每个状态视为黑匣子的表示。
  • 分解表示是其中状态由一组特征定义的表示。
  • 结构化表示是一种以对象和对象之间关系的形式表达状态的表示。这种关于关系的知识称为事实。

例子:

atomicState == goal: Y/N  // Is goal reached?
Run Code Online (Sandbox Code Playgroud)

这是我们可以向黑匣子提出的唯一问题。

factoredState{18} == goal{42}: N  // Is goal reached?
diff( goal{42}, factoredState{18}) = 24 // How much is difference?
// some other questions. the more features => more type of questions
Run Code Online (Sandbox Code Playgroud)

最简单的分解状态必须至少具有一个特征(某种类型),这使我们能够提出更多问题。通常它定义了状态之间的数量差异。该示例具有整数类型的一项功能。

11grade@schoolA{John(Math=A-), Marry(Music=A+), Job1(doMath)..} == goal{50% ready for jobs}
Run Code Online (Sandbox Code Playgroud)

这里的关键 - 结构化表示,允许在搜索中进行更高级别的正式逻辑推理。有关介绍性信息,请参阅一阶逻辑@berkley

这个主题很容易混淆从业者(尤其是初学者),但对于比较不同的目标搜索算法非常有意义。这种“世界”状态表示分类在逻辑上将算法分为不同的类。在学术研究中划清界限,在学术推理时将苹果与苹果进行比较是非常有用的。