我目前正在阅读“人工智能:一种现代方法”。尽管术语分解、结构化和原子表示令人困惑,但它们到底是什么意思?
与编程有关...
谢谢
发布于 2011-12-22 06:09:05
我对Russell和Norvig画的线并不兴奋,但是:一般来说,当你使用人工智能技术来解决问题时,你会有一个编程的情况模型。原子/分解/结构化是这些模型具有多少“内部结构”的定性度量,从最少到最多。
原子模型没有内部结构;状态要么与您正在寻找的匹配,要么与您正在寻找的不匹配。例如,在滑动瓷砖拼图中,你要么有正确的瓷砖对齐,要么没有。
分解的模型具有更多的内部结构,尽管具体是什么将取决于问题。通常,您正在查看感兴趣的变量或性能指标;在滑动拼图中,这可能是一个简单的启发式方法,如“瓦片位置不正确的数量”或“manhatten距离的总和”。
结构化模型还有更多;同样,确切地说,是什么取决于问题,但它们通常是模型组件与自身的关系,或者模型组件与环境组件的关系。
这很容易,特别是在看像滑动瓷砖这样的非常简单的问题时,不知不觉地自己做了所有艰难的智能工作,一眼就忘记了你的模型没有你所有的洞察力。例如,如果你要编写一个程序来对滑动拼图进行图形搜索技术,你可能会制作一些以拼图状态和动作作为输入的引擎,并从中生成一个新的拼图状态。拼图状态仍然是原子的,但您作为程序员正在使用一个更详细的模型来将这些输入和输出链接在一起。
发布于 2017-06-20 02:56:55
我喜欢Novak给出的解释。我的两个观点是澄清factored和structured之间的区别。以下是从定义中摘录:
示例:
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。
这个主题很容易让实践者(特别是初学者)感到困惑,但对于比较不同的目标搜索算法却很有意义。这种“世界”状态表示分类在逻辑上将算法分成不同的类别。在学术研究中划清界限,并在学术推理时进行比较,这是非常有用的。
https://stackoverflow.com/questions/8596179
复制相似问题