Rob*_*ard 8 artificial-intelligence
我目前正在阅读"人工智能:现代方法".虽然术语因素,结构化和原子表示令人困惑但这些意味着什么呢?
关于编程......
谢谢
Nov*_*vak 12
我对Russell和Norvig画的线条并不感到兴奋,但是:通常,当你使用AI技术来解决问题时,你将会有一个编程模型的情况.原子/因子/结构化是对这些模型具有多少"内部结构"的定性测量,从最小到最大.
原子模型没有内部结构; 国家要么与你想要的相匹配.例如,在滑动拼图拼图中,您可以正确对齐拼贴,也可以不拼写.
因子模型具有更多的内部结构,尽管这取决于问题.通常,您正在查看感兴趣的变量或性能指标; 在滑动拼图中,这可能是一个简单的启发式方法,例如"不合适的瓷砖数量"或"曼哈顿距离的总和".
结构化模型还有更多; 再次,究竟是什么取决于问题,但它们通常是模型的组件与其自身的关系,或模型的组件与环境组件的关系.
这很容易,特别是当看到像滑动瓷砖这样的非常简单的问题时,一眼就能无意识地完成所有硬智能工作,并忘记你的模型没有你所有的洞察力.例如,如果你要制作一个程序来对滑动拼图进行图形搜索技术,你可能会制作一些引擎作为拼图状态和动作的输入,并从中生成一个新的拼图状态.谜题状态仍然是原子的,但是程序员正在使用更详细的模型将这些输入和输出链接在一起.
我喜欢诺瓦克给出的解释。我的 2 美分是为了明确factored与structured之间的区别。以下是定义的摘录:
例子:
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。
这个主题很容易混淆从业者(尤其是初学者),但对于比较不同的目标搜索算法非常有意义。这种“世界”状态表示分类在逻辑上将算法分为不同的类。在学术研究中划清界限,在学术推理时将苹果与苹果进行比较是非常有用的。