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

时间:2011-12-21 20:52:37

标签: artificial-intelligence

我目前正在阅读“人工智能:现代方法”。虽然术语因素,结构化和原子表示混淆了这些是什么意思?

关于编程...

由于

2 个答案:

答案 0 :(得分:10)

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

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

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

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

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

答案 1 :(得分:2)

我喜欢诺瓦克给出的解释。我的2美分是为了明确因素结构化之间的差异。以下是定义摘录:

  • 原子表示是指将每个状态视为a的原子表示 黑盒子。
  • 一个因子表示是指状态 由一组特征定义。
  • 结构化表示是指状态以对象的形式和它们之间的关系表达的表示。这种关系的知识称为事实。

示例:

atomicState == goal: Y/N  // Is goal reached?

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

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

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

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

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

这个主题很容易让从业者(特别是初学者)感到困惑,但对于比较不同的目标搜索算法非常有意义。这样的世界"状态表示分类在逻辑上将算法分成不同的类。在学术研究中划线并在学术上推理时比较苹果和苹果是非常有用的。