インストール済みの Eclipse 用 Jess プラグインと FuzzyJ Toolkit をダウンロードしました。今、私は次の簡単なコードを実行しようとしています:
(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)
ただし、コードを実行すると、関数 fuzzy-match が定義されていないという例外のみが発生します。メインクラスはすでに FuzzyMain に変更しています。また、FuzzyConsole を実行してそこからコードを読み込もうとしたり、addPackage を使用してエンジンに FuzzyFunctions を追加しようとしたりしましたが、いずれにしてもエラーが発生します。