2013-09-22 2 views
1

Я загрузил установленный Jess плагин для eclipse и FuzzyJ Toolkit с ним. Теперь я пытаюсь запустить следующий простой код:Использование FuzzyJess: нечеткое совпадение не определено

(import nrc.fuzzy.*) 

(bind ?temperature (new FuzzyVariable "temperature" 0 100 "°C")) 
(bind ?pressure (new FuzzyVariable "pressure" 0.1 50 "MPa")) 

(?temperature addTerm "cold" (new RightLinearFuzzySet 6 20)) 
(?temperature addTerm "warm" (new TrapezoidFuzzySet 15 20 25 30)) 
(?temperature addTerm "hot" (new LeftLinearFuzzySet 25 50)) 

(?pressure addTerm "low" (new RightLinearFuzzySet 0.9 5)) 
(?pressure addTerm "medium" (new TrapezoidFuzzySet 2 8 14 28)) 
(?pressure addTerm "high" (new LeftLinearFuzzySet 22 50)) 

(deffunction about (?number ?fuzzyVariable) 
    (bind ?delta (- (?fuzzyVariable getMaxUOD) (?fuzzyVariable getMinUOD))) 
    (new FuzzyValue ?fuzzyVariable 
     (new TriangleFuzzySet 
      (- ?number (* ?delta 0.01)) 
     ?number 
      (+ ?number (* ?delta 0.01)) 
     ) 
    ) 
) 

; (printout t ((about 34 ?temperature) plotFuzzyValue "*")) 

(assert (Temperature (about 43 ?temperature))) 

(defrule trivial-rule 
    (Temperature ?t & :(fuzzy-match ?t "hot")) 
    => 
    (assert (Pressure (new FuzzyValue ?pressure "low")))  
) 

(defrule printing 
    (Pressure ?p) 
    => 
    (printout t (?p plotFuzzyValue "*"))  
) 


(run) 

Однако, когда я запускаю код, я только получаю исключение о том, что функция нечеткого матч не определен. Я уже сменил основной класс на FuzzyMain. Я также попытался запустить FuzzyConsole и загрузить код оттуда, а также попытаться добавить FuzzyFunctions в движок с помощью addPackage, но в любом случае я все еще получаю эту ошибку.

ответ

2

Хотя Jess in Action, к сожалению, не говорит вам об этом, вы должны явно загружать нечеткие функции, даже при запуске с FuzzyMain. Добавьте следующую строку вверху вашего кода Jess и он будет работать по своему желанию:

(load-package nrc.fuzzy.jess.FuzzyFunctions) 
+0

Спасибо, что решили проблему! – Totem

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

  • Нет связанных вопросов^_^