|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--nrc.fuzzy.FuzzyRuleExecutor | +--nrc.fuzzy.TsukamotoRuleExecutor
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
Tsukamoto rule firing method. This rule executor does expect that the
output fuzzy values have special fuzzy sets. Each of the output fuzzy sets
should be either a strictly increasing function with membership values from 0.0
to 1.0 or a strictly decreasing function with membership values from 1.0 to 0.0.
For example, an SFuzzySet is strictly increasing from 0.0 at its left
limit to 1.0 at its right limit. Then the outputs are generated from the
conclusions by using the DOF (Degree of Fulfillment of the rule) which
is determined by the current AntecedentCombineOperator. This is normally the
MinimumAntecedentCombineOperator which calculates the maxmum membership
values for all of the intesections between the input and antecedent fuzzy
values and takes the minimum of those. Then using this DOF value outputs
are generated by finding the X value that corresponds to this DOF in the
conclusion fuzzy sets. With the X values singleton fuzzy sets are
created with a maximum membership value equal to the DOF. Since the conclusions
were represented by special strictly increasing or decreasing functions,
the X values will be unique. To complete the Tsukamoto method the output
fuzzy values should combined (global contribution) using the fuzzySum method
and then defuzzified using the weightedAverageDefuzzify method.
Should the rule be fired a second time and the antecedents and inputs have not
changed, it is only necessary to use the DOF already calculated to generate
the outputs 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.
LarsenProductMaxMinRuleExecutor
,
MandaniMinMaxMinRuleExecutor
,
FuzzyRuleExecutor
,
AntecedentCombineOperator
,
MinimumAntecedentCombineOperator
,
ProductAntecedentCombineOperator
,
Serialized FormConstructor Summary | |
TsukamotoRuleExecutor()
|
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 Tsukamoto method. |
nrc.fuzzy.FuzzyValueVector |
execute(nrc.fuzzy.FuzzyValueVector antecedents,
nrc.fuzzy.FuzzyValueVector conclusions,
nrc.fuzzy.FuzzyValueVector inputs)
This execute method implements rule execution using the Tsukamoto method. |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public TsukamotoRuleExecutor()
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 |