/* * FuzzyRuleModel.java * * Created on July 5, 2002, 8:43 PM */ package uk.ac.leeds.ccg.projects.MedAction.FuzzyInference; /** * a rule model contain all the rules for a fuzzy logic model * but also have fuzzyvariables as members, but it is just a reference, when set * fuzzy variables in, it won't create another copy of them, just a reference. * * the rule model's main job is to process fuzzification and defuzzification. * * @author jianhui jin */ import java.util.*; import uk.ac.leeds.ccg.geotools.*; import java.io.Serializable; public class FuzzyRuleModel implements Serializable{ // defuzzified centroid, final result public static GeoPoint defuzzifiedCentroid; // defuzzified polygons, for late computing final result public static GeoPolygon[] defuzzifiedPolygons; // for test private FuzzyRule[] fuzzyRules=null; private String[] outMemberName=null; private double[] outMemberDegree=null; private Vector ruleVector=new Vector(); // private FuzzificationResult fuzzyInferenceResult=null; // all input fuzzy variable private FuzzyVariable[] fuzzyVariables=null; // output variable private FuzzyVariable outVariable=null; // defined operator names public final String[] operatorName = {"AND","OR","OR NOT","AND NOT"}; // this model's name private String name; /** Creates a new instance of FuzzyRuleModel */ public FuzzyRuleModel(String name) { this.name = name; } /** * * @param ins input variables * @param out output variables */ public FuzzyRuleModel(FuzzyVariable[] ins, FuzzyVariable out) { this.fuzzyVariables=ins; this.outVariable=out; } /** * all variables, the final one is output variables * @param allVariable */ public FuzzyRuleModel(FuzzyVariable[] allVariable) { this.fuzzyVariables=new FuzzyVariable[allVariable.length-1]; for(int i=0;i