ある番号のすべてのパーティションを生成するプログラムをClipsで作成したいと思います。まず、彼の基本的なパーティションのような番号から始めます:(1 1 1 1 1)5番の場合など。
(deftemplate partition (multislot p) )
(deffacts facts (p 1 1 1 1 1) )
(defrule adds
(p $?a ?b ?c $?d)
(not (p $?a (+ ?b ?c) $?d))
(not (p (+ ?b ?c) $?a $?d))
(not (p $?a $?d (+ ?b ?c)))
=> (assert (p $?a (+ ?b ?c) $?d))
)
問題は、コードは問題ないように見えますが、「not」の行にエラーがあることです。ここで、作成された新しいパーティションがファクトにまだ存在していないことを指定します。何が問題なのかわかりませんが、どんなアイデアでも大歓迎です。ありがとう