prolog - 经典农夫、狼、山羊、白菜生产体系构建

标签 prolog artificial-intelligence state-space river-crossing-puzzle

我正在尝试学习FWGC人工智能问题的生产系统。更多详细信息https://www.cs.unm.edu/~luger/ai-final2/CH4_Depth-.%20Breadth-,%20and%20Best-first%20Search.pdf

我在理解图表的构建方式方面遇到问题。我了解该图以及如何根据位置表示状态。

enter image description here

这个图是如何构建的?有人可以解释一下吗?

enter image description here

最佳答案

根据文档,描述该图:

“图”是一个状态转换图,显示从任何其他给定状态可以转到哪些可能的状态,从 state(w,w,w,w) 作为初始状态开始。如何确定转换是通过考虑所描述问题的逻辑来确定的。如果您为问题设置了所有正确的 Prolog 规则,则可以在 Prolog 中自动生成这样的图表,或者可以手动生成该图表,以帮助弄清楚您希望如何编写规则。该文档没有确切说明他们是如何生成它的,但他们只说它是可能的状态转换的部分描述,并且不考虑任何给定状态是否是“安全”的,这意味着该图包含您可以使用的一些状态。希望您的 Prolog 解决方案能够排除。鉴于它在文档和上下文中的位置,我相信它是手动生成的,有助于为 Prolog 程序提供合理的数据表示和设计。

举个例子,初始状态是所有 4 个东西(农民、狼、山羊、卷心菜)都在西岸。这就是状态 state(w,w,w,w) 分别表示 F、W、G、C 的位置。可能的情况是,一次移动就可以带你离开那里,因为农民一次最多只能带一件元素过河:

West          East           State
----          ----           -----
G, C          F, W           state(e, e, w, w)
W, C          F, G           state(e, w, e, w)
W, G          F, C           state(e, w, w, e)
W, G, C       F              state(e, w, w, w)

这是通过思考规则和可能的选择来解决的。在上述每一个新州,农民要么携带一件元素过河,要么不带任何其他元素过河。这是 4 种可能的 Action 。图中的箭头指示您可以转换到哪些状态。因此,该图表明状态转换是自反(也就是说,如果从状态 A 转到状态 B,则也可以从 B 转到 A)。

再举一个例子,当处于state(e, e, w, w)时:

West            East           State
----            ----           -----
G, C            F, W           state(e, e, w, w)

从这里开始,只有两种可能的 Action :农民带狼过河(回到state(w, w, w, w),或者农民返回河对岸河流自己,这将是 state(w, e, w, w) ,如状态转换图中所示。

关于prolog - 经典农夫、狼、山羊、白菜生产体系构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643894/

相关文章:

list - Prolog 中的 zip 函数

programming-languages - 有人在商业上使用 pop11 语言吗?

python - Pygame 中蒙版和发射光束的重叠 [AI 汽车模型视觉]

prolog 深度优先迭代深化

python - 当 t[0] != 0 时,从 signal.lsim 得到奇怪的结果

链接到 Ox 的 C 库

prolog - 在 Prolog 中创建 Groebner 基础 SAT 求解器

prolog - SWI-Prolog 中未定义的过程

prolog - 为什么 gnu prolog 不支持 "false"谓词? (我已经改成swi了)

c# - 这是 FuSM(模糊状态机)的正确实现吗