Prolog 经典的农民、狼、羊、白菜生产体系建设

Prolog 经典的农民、狼、羊、白菜生产体系建设,prolog,artificial-intelligence,state-space,river-crossing-puzzle,Prolog,Artificial Intelligence,State Space,River Crossing Puzzle,我正在努力学习FWGC人工智能问题的生产系统。更多细节 我在理解图是如何构造的方面有一个问题。我理解到这个图为止,以及状态是如何基于位置来表示的 这个图是如何构造的?有人能解释一下吗 根据文件,描述图表: “图形”是一个状态转换图,显示从状态(w,w,w,w)开始的任何其他给定状态可以进入的可能状态。如何确定转换是通过考虑所描述问题的逻辑来确定的。如果您为问题设置了所有正确的Prolog规则,则可以在Prolog中自动生成这样的图形,或者可以手动生成图形,以帮助您了解如何编写规则。文档没有明

我正在努力学习FWGC人工智能问题的生产系统。更多细节

我在理解图是如何构造的方面有一个问题。我理解到这个图为止,以及状态是如何基于位置来表示的

这个图是如何构造的?有人能解释一下吗


根据文件,描述图表:

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

举个例子,最初的状态是所有4样东西(农民、狼、山羊、卷心菜)都在西岸。这是state
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个可能的动作。图中的箭头指示可以转换到的状态。因此,图表表明状态转换是自反的(也就是说,如果从状态A到状态B,也可以从状态B到状态A)

另一个例子是,当处于
状态(e,e,w,w)


从这里开始,只有两种可能的行动:农夫带着狼过河(回到
州(w,w,w,w)
,或者农夫自己过河,这将是
州(w,e,w,w)
这是状态转换图中显示的内容。

非常感谢您的详细回答。我现在明白了:)您能告诉我规则是如何创建的吗。例如:移动(状态(X,X,G,C),状态(Y,Y,G,C)):-opp(X,Y)。opp(东,西)。opp(w.e)。我认为这意味着,如果X和Y位于河流的相对两侧,那么将状态X,X,G,C更改为Y,Y,G,C。但是如果X,Y和处于相对位置,状态怎么可能是X,X,G,C@techno,规则
移动(状态(X,X,G,C),状态(Y,Y,G,C))
描述了农夫(
X
)和狼(
X
)的情况在移动之前,它们位于河流的同一侧,因此它们具有相同的变量。同样,他们在搬家后也在河的同一边(
Y
)。而且,
opp(X,Y)
说,他们必须为这一特殊行动改变河岸。所以状态从
状态(e,e,,,)
变为
状态(w,w,,,)
,或者反之亦然。谢谢。但是我没有时间学习这个。我不知道我是否能通过考试。
West            East           State
----            ----           -----
G, C            F, W           state(e, e, w, w)