Привет, я использую FuzzyClips v6.10.d, я читал об использовании модификаторов для нечетких переменных и попробовал:
(deftemplate temperature
0.0 1.0 ;
(
(cold (z 0.1 0.2))
(warm(PI 0.3 0.6))
(hot (s 0.7 0.9))
(hyperhot very hot)
)
)
(deftemplate temp-day
(slot day (type SYMBOL) (allowed-symbols Monday Thursday Friday Sunday))
(slot day-temp (type FUZZY-VALUE temperature))
)
(deffacts fuzzyfacts
(temp-day (day Sunday) (day-temp warm))
(temp-day (day Monday) (day-temp cold))
(temp-day (day Thursday) (day-temp hot))
(temp-day (day Friday) (day-temp hyperhot))
)
(defrule select
(temp-day (day ?x) (day-temp hyperhot))
=>
(assert(was-so-hyper-hot ?x))
)
Я просто ожидал получить только те дни, когда погода была очень жаркой (пятница), но вместо этого я получил:
Итак, вопрос: почему, если я фильтрую по высокой температуре, Clips дает мне другие дни с другой температурой? Я знаю, что CF у них разный (1,00, 0,88 и 0,12), но я ожидал, что клипы даже не будут рассматривать факты с температурой, отличной от сверхгорячей. Я неправильно понимаю, как фильтровать переменные с помощью модификаторов? Спасибо!