What is the avilability defuzzification methods in JFuzzyLogic

467 Views Asked by At

I'm working on Fuzzy logic in Java for Android app and I'm using JFuzzy Logic open source library but I couldn't find any reference if we can use any other defuzzification methods except Center of Gravity (COG) method. Can anyone help me or just inform me if we have this ability in JFuzzy logic library or it just works with COG method?

I mean specific in this part:

METHOD : COG;       // Use 'Center Of Gravity' defuzzification method
DEFAULT := 0;       // Default value is 0 (if no rule activates defuzzifier)
1

There are 1 best solutions below

0
On

I just after posted this question find answer :)

protected Defuzzifier createDefuzzifier(String defuzzificationMethodType, Variable variable) {
    Object defuzzifier;
    if(defuzzificationMethodType.equalsIgnoreCase("COG")) {
        defuzzifier = new DefuzzifierCenterOfGravity(variable);
    } else if(defuzzificationMethodType.equalsIgnoreCase("COGS")) {
        defuzzifier = new DefuzzifierCenterOfGravitySingletons(variable);
    } else if(defuzzificationMethodType.equalsIgnoreCase("COGF")) {
        defuzzifier = new DefuzzifierCenterOfGravityFunctions(variable);
    } else if(defuzzificationMethodType.equalsIgnoreCase("COA")) {
        defuzzifier = new DefuzzifierCenterOfArea(variable);
    } else if(defuzzificationMethodType.equalsIgnoreCase("LM")) {
        defuzzifier = new DefuzzifierLeftMostMax(variable);
    } else if(defuzzificationMethodType.equalsIgnoreCase("RM")) {
        defuzzifier = new DefuzzifierRightMostMax(variable);
    } else {
        if(!defuzzificationMethodType.equalsIgnoreCase("MM")) {
            throw new RuntimeException("Unknown/Unimplemented Rule defuzzification method '" + defuzzificationMethodType + "'");
        }

        defuzzifier = new DefuzzifierMeanMax(variable);
    }

    return (Defuzzifier)defuzzifier;
}