2016-09-17 1 views
0

Итак, я пытаюсь создать «систему рекомендаций для гольф-клубов» для 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))) 

Если нет, то какие альтернативы у меня есть?

ответ

1

Предлагаю вам создать объект или атрибут для управления ground_material (песок, зеленый, ...) и включить его в правило. Вы можете написать правило для каждого поля или использовать условие IF-THEN внутри одного правила.

Надеюсь, это вам поможет. bye Nic

Смежные вопросы