Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FuzzyJess不';t聚合(模糊并集)规则结果_Java_Fuzzy_Expert System_Jess - Fatal编程技术网

Java FuzzyJess不';t聚合(模糊并集)规则结果

Java FuzzyJess不';t聚合(模糊并集)规则结果,java,fuzzy,expert-system,jess,Java,Fuzzy,Expert System,Jess,我正在和FuzzyJess做一个示例项目。首先,我必须能够驾驶机器人避开障碍物。我有一大堆这样的规则: (defrule avoid-obstacle-left (ProximitySensors (left ?left & :(fuzzy-match ?left "near")) (right ?right & :(fuzzy-match ?right "far" )) (front ?front & :(

我正在和FuzzyJess做一个示例项目。首先,我必须能够驾驶机器人避开障碍物。我有一大堆这样的规则:

(defrule avoid-obstacle-left
    (ProximitySensors 
        (left  ?left  & :(fuzzy-match ?left  "near"))
        (right ?right & :(fuzzy-match ?right "far" ))
        (front ?front & :(fuzzy-match ?front "far" ))
    ) 
    =>
    (assert 
        (Steer (orientation "right"))
    )   
)

(defrule avoid-obstacle-front
    (ProximitySensors 
        (left  ?left  & :(fuzzy-match ?left  "far" ))
        (right ?right & :(fuzzy-match ?right "far" ))
        (front ?front & :(fuzzy-match ?front "near"))
    ) 
    =>
    (assert 
        (Steer (orientation "left"))
    )   
)
FuzzyJess文档中写道: “其次,如果有许多规则影响同一输出变量(这在许多应用程序中很常见),则将所有这些规则的输出变量合并为一个变量通常很有用。这称为全局贡献。常用的策略是使用模糊联合对所有规则的所有结果进行联合。然后,在所有规则触发后,我们得到每个规则对answe贡献的全局效果r、 然后,结果通常会被反模糊化,以提供一个清晰的值来反馈给被控制的系统。模糊淋浴问题就是这个完整过程的一个例子。请注意,在FuzzyJess扩展中,作为规则执行的一部分,此全局贡献会自动为用户完成。

在这方面,我希望有以下规则:

(defrule use-steer
    ?ref <- (Steer ?steerValue)
    =>
    (retract ?ref) 
    (?*robot* steer ?steerValue)   
)
(解除规则使用转向)
?参考号
(收回?参考)
(?*机器人*转向?转向值)
)
要仅触发一次,其中?steerValue是由规则先行项生成的模糊割集的模糊并集。取而代之的是,它为每一个事实发射一次,而且似乎没有应用任何全球贡献