|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--nrc.fuzzy.FuzzyRuleExecutor | +--nrc.fuzzy.LarsenProductMaxMinRuleExecutor
Implements the FuzzyRuleExecutor interface providing an execute method that accepts a FuzzyRule object and returns a FuzzyValueVector composed of the actual conclusion FuzzyValues for the rule using the Larsen Product inference operator and MaxMin composition. This method has the rather nice property that the outputs are generated from the conclusions by 'scaling' them by a value (DOF -- Degree of Fullment of the rule) that is calculated as the minimum (or product etc. depending on current AntecedentCombineOperator) of the maximum membership values of the intersections of the fuzzy value antecedent and input pairs. So one can calculate the intersections of the pairs, get the maximum membership value for each intersection and find the minimum of these. Should the rule be fired a second time and the antecedents and inputs have not changed, it is only necessary to clip the consequents, avoiding some expensive calculations. NOTE: In order to do this optimization it is required the the executor NOT be shared amongst rules. In effect each rule must have its own unique instance of the executor. This is enforced in Rule creation, since each RuleExecutor must implement the cloneable interface and provide a clone method.
MamdaniMinMaxMinRuleExecutor
,
TsukamotoExecutor
,
FuzzyRuleExecutor
,
AntecedentCombineOperator
,
MinimumAntecedentCombineOperator
,
ProductAntecedentCombineOperator
,
Serialized FormConstructor Summary | |
LarsenProductMaxMinRuleExecutor()
|
Method Summary | |
java.lang.Object |
clone()
Implements the required cloning of a RuleExecutor. |
nrc.fuzzy.FuzzyValueVector |
execute(nrc.fuzzy.FuzzyRule rule)
This execute method implements rule execution using the Larsen Product inference operator and Max-Min composition. |
nrc.fuzzy.FuzzyValueVector |
execute(nrc.fuzzy.FuzzyValueVector antecedents,
nrc.fuzzy.FuzzyValueVector conclusions,
nrc.fuzzy.FuzzyValueVector inputs)
This execute method implements rule execution using the Larsen Product inference operator and Max-Min composition. |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public LarsenProductMaxMinRuleExecutor()
Method Detail |
public java.lang.Object clone()
clone
in class java.lang.Object
public nrc.fuzzy.FuzzyValueVector execute(nrc.fuzzy.FuzzyRule rule) throws IncompatibleRuleInputsException
execute
in interface FuzzyRuleExecutorInterface
rule
- the rule that is to be executed (fired)
IncompatibleRuleInputsException
public nrc.fuzzy.FuzzyValueVector execute(nrc.fuzzy.FuzzyValueVector antecedents, nrc.fuzzy.FuzzyValueVector conclusions, nrc.fuzzy.FuzzyValueVector inputs) throws IncompatibleRuleInputsException
execute
in interface FuzzyRuleExecutorInterface
antecedents
- The FuzzyValues that represent a rule's antecedents.conclusions
- The FuzzyValues that represent a rule's conclusions.inputs
- The FuzzyValues that represent a rule's inputs.
IncompatibleRuleInputsException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |