在控制台中运行FuzzyJess文件可能吗? Jess的新功能

如何解决在控制台中运行FuzzyJess文件可能吗? Jess的新功能

我是Jess的新手,我正在Windows 10控制台上使用以下命令执行.clp文件

java jess.Main example.clp

现在,我正在学习模糊逻辑,并读到执行Fuzzyjess .clp必须使用:

java nrc.fuzzy.jess.FuzzyMain fuzzyE.clp

但是它会引发此错误

Jess reported an error in routine new
        while executing (new FuzzyVariable "temperature" 0 100 "┬░C")
        while executing (bind ?temperature (new FuzzyVariable "temperature" 0 100 "┬░C")).
  Message: Constructor not found: (new FuzzyVariable "temperature" 0 100 "┬░C").
  Program text: ( bind ?temperature ( new FuzzyVariable "temperature" 0 100 "┬░C" ) )  at line 8.
nested exception is:
nrc.fuzzy.FuzzyVariable
java.lang.NoSuchMethodException: nrc.fuzzy.FuzzyVariable
        at jess.c6.call(UnkNown Source)
        at jess.ep.a(UnkNown Source)
        at jess.Funcall.execute(UnkNown Source)
        at jess.FuncallValue.resolveValue(UnkNown Source)
        at jess.c1.call(UnkNown Source)
        at jess.ep.a(UnkNown Source)
        at jess.Funcall.execute(UnkNown Source)
        at jess.Jesp.a(UnkNown Source)
        at jess.Jesp.for(UnkNown Source)
        at jess.Jesp.parse(UnkNown Source)
        at jess.Jesp.parse(UnkNown Source)
        at jess.Main.execute(UnkNown Source)
        at nrc.fuzzy.jess.FuzzyMain.main(UnkNown Source)

这是FuzzyE.clp的代码(我在互联网上找到它,尝试运行):

;; Load
(load-package nrc.fuzzy.jess.FuzzyFunctions)

(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)) 
        )
    )
)

(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 "*"))    
)

; (reset)
(run)

我几乎可以肯定代码是正确的,但是也许我错了。 我像对jess.jar一样,将FuzzyJ-2.0.jar放在类路径中。但是,“找不到构造函数”使我认为FuzzyJess没有正确安装。 也许无法在控制台中运行此文件?只是在日食? 我是一个乞讨者,请给我任何提示。我想在控制台中制作它的原因是因为我可以制作一个.bat文件来使程序可执行。我不知道在没有日食的情况下是否有可能。

我也尝试这样做:

java -classpath "%classpath%";c:\Jess61p4\fuzzyJ-2.0.jar;.\ nrc.fuzzy.jess.FuzzyMain fuzzyE.clp

解决方法

这似乎是FuzzyJ API的问题,而不是Jess的问题;我的意思是,错误消息表明您已经正确加载了FuzzyJ类,但是正在运行的Jess代码正在查找所使用的FuzzyJ库中不存在的方法。这些年来,有多个版本的FuzzyJ,而您所拥有的版本似乎与您尝试运行的示例代码不匹配。

Here是指向FuzzyJ版本的链接,该版本肯定包含该构造函数,并且还包含Javadocs,以便您可以自己检查代码。希望这可以让您运行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?