0
私はCLIPSを初めて使用しています。なぜ私のコードが実行されないのかわかりません。実際に私はerrrosを得ていませんが、私が実行を押すと、事実は変わらず、目標は決して見つけられません。このプロジェクトでは、2本のボトルがあります。ボトルAは容量3、Bは容量2です。目標はAが0、Bが1です。fillA、fillB、emptyA、emptyB、moveAB、moveBAの規則でこれを実行できます。 以下は私のコードです。助けてもらえますか?ありがとう!CLIPSコードの結果がありません
(deffacts problem
(name A cap 3 water 0)
(name B cap 2 water 0)
)
(defrule goal
(declare (salience 100))
(name A water 0)
(name B water 1)
=>
(printout t "FOUND" crlf)
(halt)
)
(defrule start
(initial-fact)
=>
(set-strategy random)
)
(defrule emptyA
?x<-(name A water ?w)
=>
(retract ?x)
(assert (name A water 0))
)
(defrule emptyB
?x<-(name B water ?w)
=>
(retract ?x)
(assert (name B water 0))
)
(defrule fillA
?x<-(name A water ?w)
=>
(retract ?x)
(assert (name A water 3))
)
(defrule fillB
?x<-(name B water ?w)
=>
(retract ?x)
(assert (name B water 2))
)
(defrule moveAB
?x<-(name A water ?w)
?y<-(name B water ?water)
(test (not (< ?w 0)))
(test (not (> ?water 2)))
=>
(retract ?x ?y)
(assert (name B water ?w))
(assert (name A water ?water))
)
(defrule moveBA
?x<-(name A water ?w)
?y<-(name B water ?water)
(test (not (> ?w 3)))
(test (not (< ?water 0)))
=>
(retract ?x ?y)
(assert (name A water ?water))
(assert (name B water ?w))
)