#logic #clips
#Логические #клипы
Вопрос:
Я начал изучать clips в курсе AI, но у меня возникли проблемы с функциями clips logic
1. отец каждого человека — его прямой предок
математическое решение:
F(x,y) — x является отцом y
DA(x,y) — x является прямым предком y
для каждого x, y: F(x, y) => DA(x, y)
решение clips:
(отменить правило father_direct_ancestor
(отец ? x ? y)
=>
(утверждение(direct_ancestor ?x ?y) )
)
2. если кто-то является предком чьего-то прямого предка, то он также является предком этого человека
математическое решение:
A(x,y) — x является предком y
DA(x,y) — x является прямым предком y
для каждого x, y, z A(x, y) * DA(y, z) => A(x, z)
И здесь я не могу понять, как это сделать в clips.
Пробовал так:
(отменить правило A
(D_A ?y ?z)
(A ?x ?y)
=>
(утверждение (A ?x? z)) )
Комментарии:
1. Ваше правило прекрасно. Как вы думаете, что в этом плохого?
2. у меня возникли проблемы с пониманием этого языка. Он почти не дает обратной связи, и когда вы допускаете какую-либо ошибку, он говорит, что все неправильно.
3. Проблема с вашим вопросом заключается в том, что на самом деле вопроса нет, потому что то, что вы включили, является правильным.