Итак, я пытаюсь создать «систему рекомендаций для гольф-клубов» для 18-луночного курса. Теперь, определив основные шаблоны для гольф-клуба, гольф-клуба и игрока в гольф, я застрял из-за большого пространства для поиска, которое представляет эта конкретная проблема. Так в настоящее время у меня есть:Прямая цепочка с использованием переменных в правилах CLIPS
(defrule teeoff
?g <- (golfer (position "tee"))
=>
(retract ?g)
(assert (golfer (position "fairway") (Current_club "driver") (Yardage 650))
После этого мяч находится на фарватере и может иметь комбинацию факторов сказать, это может быть на песке, он может быть грубым или это может быть на обычном зеленом. Мой вопрос вместо того, чтобы правила для каждой возможности я могу иметь один или два правила, как:
(defrule makemove
?m <- (golfer (position ?x))
?go <- (golfcourse (obstacles ?$y)
=>
(assert (golfer (Current_club ?c)))
Если нет, то какие альтернативы у меня есть?