diff options
Diffstat (limited to 'examples/takagi-sugeno/octave/heart_disease_risk.java')
-rw-r--r-- | examples/takagi-sugeno/octave/heart_disease_risk.java | 83 |
1 files changed, 47 insertions, 36 deletions
diff --git a/examples/takagi-sugeno/octave/heart_disease_risk.java b/examples/takagi-sugeno/octave/heart_disease_risk.java index fcd67c9..febd1c7 100644 --- a/examples/takagi-sugeno/octave/heart_disease_risk.java +++ b/examples/takagi-sugeno/octave/heart_disease_risk.java @@ -1,4 +1,5 @@ import com.fuzzylite.*; +import com.fuzzylite.activation.* import com.fuzzylite.defuzzifier.*; import com.fuzzylite.factory.*; import com.fuzzylite.hedge.*; @@ -12,51 +13,61 @@ import com.fuzzylite.variable.*; public class heart_disease_risk{ public static void main(String[] args){ +//Code automatically generated with fuzzylite 6.0. + Engine engine = new Engine(); -engine.setName("Heart-Disease-Risk"); +engine.setName("heart_disease_risk"); +engine.setDescription(""); -InputVariable inputVariable1 = new InputVariable(); -inputVariable1.setEnabled(true); -inputVariable1.setName("LDLLevel"); -inputVariable1.setRange(0.000, 300.000); -inputVariable1.addTerm(new Trapezoid("Low", -1.000, 0.000, 90.000, 110.000)); -inputVariable1.addTerm(new Trapezoid("LowBorderline", 90.000, 110.000, 120.000, 140.000)); -inputVariable1.addTerm(new Trapezoid("Borderline", 120.000, 140.000, 150.000, 170.000)); -inputVariable1.addTerm(new Trapezoid("HighBorderline", 150.000, 170.000, 180.000, 200.000)); -inputVariable1.addTerm(new Trapezoid("High", 180.000, 200.000, 300.000, 301.000)); -engine.addInputVariable(inputVariable1); +InputVariable LDLLevel = new InputVariable(); +LDLLevel.setName("LDLLevel"); +LDLLevel.setDescription(""); +LDLLevel.setEnabled(true); +LDLLevel.setRange(0.000, 300.000); +LDLLevel.setLockValueInRange(false); +LDLLevel.addTerm(new Trapezoid("Low", -1.000, 0.000, 90.000, 110.000)); +LDLLevel.addTerm(new Trapezoid("LowBorderline", 90.000, 110.000, 120.000, 140.000)); +LDLLevel.addTerm(new Trapezoid("Borderline", 120.000, 140.000, 150.000, 170.000)); +LDLLevel.addTerm(new Trapezoid("HighBorderline", 150.000, 170.000, 180.000, 200.000)); +LDLLevel.addTerm(new Trapezoid("High", 180.000, 200.000, 300.000, 301.000)); +engine.addInputVariable(LDLLevel); -InputVariable inputVariable2 = new InputVariable(); -inputVariable2.setEnabled(true); -inputVariable2.setName("HDLLevel"); -inputVariable2.setRange(0.000, 100.000); -inputVariable2.addTerm(new Trapezoid("LowHDL", -1.000, 0.000, 35.000, 45.000)); -inputVariable2.addTerm(new Trapezoid("ModerateHDL", 35.000, 45.000, 55.000, 65.000)); -inputVariable2.addTerm(new Trapezoid("HighHDL", 55.000, 65.000, 100.000, 101.000)); -engine.addInputVariable(inputVariable2); +InputVariable HDLLevel = new InputVariable(); +HDLLevel.setName("HDLLevel"); +HDLLevel.setDescription(""); +HDLLevel.setEnabled(true); +HDLLevel.setRange(0.000, 100.000); +HDLLevel.setLockValueInRange(false); +HDLLevel.addTerm(new Trapezoid("LowHDL", -1.000, 0.000, 35.000, 45.000)); +HDLLevel.addTerm(new Trapezoid("ModerateHDL", 35.000, 45.000, 55.000, 65.000)); +HDLLevel.addTerm(new Trapezoid("HighHDL", 55.000, 65.000, 100.000, 101.000)); +engine.addInputVariable(HDLLevel); -OutputVariable outputVariable = new OutputVariable(); -outputVariable.setEnabled(true); -outputVariable.setName("HeartDiseaseRisk"); -outputVariable.setRange(0.000, 10.000); -outputVariable.fuzzyOutput().setAccumulation(null); -outputVariable.setDefuzzifier(new WeightedAverage("TakagiSugeno")); -outputVariable.setDefaultValue(Double.NaN); -outputVariable.setLockPreviousOutputValue(false); -outputVariable.setLockOutputValueInRange(false); -outputVariable.addTerm(new Constant("NoRisk", 0.000)); -outputVariable.addTerm(new Constant("LowRisk", 2.500)); -outputVariable.addTerm(new Constant("MediumRisk", 5.000)); -outputVariable.addTerm(new Constant("HighRisk", 7.500)); -outputVariable.addTerm(new Constant("ExtremeRisk", 10.000)); -engine.addOutputVariable(outputVariable); +OutputVariable HeartDiseaseRisk = new OutputVariable(); +HeartDiseaseRisk.setName("HeartDiseaseRisk"); +HeartDiseaseRisk.setDescription(""); +HeartDiseaseRisk.setEnabled(true); +HeartDiseaseRisk.setRange(0.000, 10.000); +HeartDiseaseRisk.setLockValueInRange(false); +HeartDiseaseRisk.setAggregation(null); +HeartDiseaseRisk.setDefuzzifier(new WeightedAverage("TakagiSugeno")); +HeartDiseaseRisk.setDefaultValue(Double.NaN); +HeartDiseaseRisk.setLockPreviousValue(false); +HeartDiseaseRisk.addTerm(new Constant("NoRisk", 0.000)); +HeartDiseaseRisk.addTerm(new Constant("LowRisk", 2.500)); +HeartDiseaseRisk.addTerm(new Constant("MediumRisk", 5.000)); +HeartDiseaseRisk.addTerm(new Constant("HighRisk", 7.500)); +HeartDiseaseRisk.addTerm(new Constant("ExtremeRisk", 10.000)); +engine.addOutputVariable(HeartDiseaseRisk); RuleBlock ruleBlock = new RuleBlock(); -ruleBlock.setEnabled(true); ruleBlock.setName(""); +ruleBlock.setDescription(""); +ruleBlock.setEnabled(true); ruleBlock.setConjunction(new Minimum()); ruleBlock.setDisjunction(null); -ruleBlock.setActivation(null); +ruleBlock.setImplication(null); +ruleBlock.setActivation(new General()); ruleBlock.addRule(Rule.parse("if LDLLevel is Low and HDLLevel is LowHDL then HeartDiseaseRisk is MediumRisk", engine)); ruleBlock.addRule(Rule.parse("if LDLLevel is Low and HDLLevel is ModerateHDL then HeartDiseaseRisk is LowRisk", engine)); ruleBlock.addRule(Rule.parse("if LDLLevel is Low and HDLLevel is HighHDL then HeartDiseaseRisk is NoRisk", engine)); |