summaryrefslogtreecommitdiff
path: root/examples/mamdani/octave/investment_portfolio.java
diff options
context:
space:
mode:
Diffstat (limited to 'examples/mamdani/octave/investment_portfolio.java')
-rw-r--r--examples/mamdani/octave/investment_portfolio.java77
1 files changed, 44 insertions, 33 deletions
diff --git a/examples/mamdani/octave/investment_portfolio.java b/examples/mamdani/octave/investment_portfolio.java
index 09084f1..9dff687 100644
--- a/examples/mamdani/octave/investment_portfolio.java
+++ b/examples/mamdani/octave/investment_portfolio.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,45 +13,55 @@ import com.fuzzylite.variable.*;
public class investment_portfolio{
public static void main(String[] args){
+//Code automatically generated with fuzzylite 6.0.
+
Engine engine = new Engine();
-engine.setName("Investment-Portfolio");
-
-InputVariable inputVariable1 = new InputVariable();
-inputVariable1.setEnabled(true);
-inputVariable1.setName("Age");
-inputVariable1.setRange(20.000, 100.000);
-inputVariable1.addTerm(new ZShape("Young", 30.000, 90.000));
-inputVariable1.addTerm(new SShape("Old", 30.000, 90.000));
-engine.addInputVariable(inputVariable1);
-
-InputVariable inputVariable2 = new InputVariable();
-inputVariable2.setEnabled(true);
-inputVariable2.setName("RiskTolerance");
-inputVariable2.setRange(0.000, 10.000);
-inputVariable2.addTerm(new ZShape("Low", 2.000, 8.000));
-inputVariable2.addTerm(new SShape("High", 2.000, 8.000));
-engine.addInputVariable(inputVariable2);
-
-OutputVariable outputVariable = new OutputVariable();
-outputVariable.setEnabled(true);
-outputVariable.setName("PercentageInStocks");
-outputVariable.setRange(0.000, 100.000);
-outputVariable.fuzzyOutput().setAccumulation(new EinsteinSum());
-outputVariable.setDefuzzifier(new Centroid(200));
-outputVariable.setDefaultValue(Double.NaN);
-outputVariable.setLockPreviousOutputValue(false);
-outputVariable.setLockOutputValueInRange(false);
-outputVariable.addTerm(new Gaussian("AboutFifteen", 15.000, 10.000));
-outputVariable.addTerm(new Gaussian("AboutFifty", 50.000, 10.000));
-outputVariable.addTerm(new Gaussian("AboutEightyFive", 85.000, 10.000));
-engine.addOutputVariable(outputVariable);
+engine.setName("investment_portfolio");
+engine.setDescription("");
+
+InputVariable Age = new InputVariable();
+Age.setName("Age");
+Age.setDescription("");
+Age.setEnabled(true);
+Age.setRange(20.000, 100.000);
+Age.setLockValueInRange(false);
+Age.addTerm(new ZShape("Young", 30.000, 90.000));
+Age.addTerm(new SShape("Old", 30.000, 90.000));
+engine.addInputVariable(Age);
+
+InputVariable RiskTolerance = new InputVariable();
+RiskTolerance.setName("RiskTolerance");
+RiskTolerance.setDescription("");
+RiskTolerance.setEnabled(true);
+RiskTolerance.setRange(0.000, 10.000);
+RiskTolerance.setLockValueInRange(false);
+RiskTolerance.addTerm(new ZShape("Low", 2.000, 8.000));
+RiskTolerance.addTerm(new SShape("High", 2.000, 8.000));
+engine.addInputVariable(RiskTolerance);
+
+OutputVariable PercentageInStocks = new OutputVariable();
+PercentageInStocks.setName("PercentageInStocks");
+PercentageInStocks.setDescription("");
+PercentageInStocks.setEnabled(true);
+PercentageInStocks.setRange(0.000, 100.000);
+PercentageInStocks.setLockValueInRange(false);
+PercentageInStocks.setAggregation(new EinsteinSum());
+PercentageInStocks.setDefuzzifier(new Centroid(200));
+PercentageInStocks.setDefaultValue(Double.NaN);
+PercentageInStocks.setLockPreviousValue(false);
+PercentageInStocks.addTerm(new Gaussian("AboutFifteen", 15.000, 10.000));
+PercentageInStocks.addTerm(new Gaussian("AboutFifty", 50.000, 10.000));
+PercentageInStocks.addTerm(new Gaussian("AboutEightyFive", 85.000, 10.000));
+engine.addOutputVariable(PercentageInStocks);
RuleBlock ruleBlock = new RuleBlock();
-ruleBlock.setEnabled(true);
ruleBlock.setName("");
+ruleBlock.setDescription("");
+ruleBlock.setEnabled(true);
ruleBlock.setConjunction(new EinsteinProduct());
ruleBlock.setDisjunction(new EinsteinSum());
-ruleBlock.setActivation(new EinsteinProduct());
+ruleBlock.setImplication(new EinsteinProduct());
+ruleBlock.setActivation(new General());
ruleBlock.addRule(Rule.parse("if Age is Young or RiskTolerance is High then PercentageInStocks is AboutEightyFive", engine));
ruleBlock.addRule(Rule.parse("if Age is Old or RiskTolerance is Low then PercentageInStocks is AboutFifteen", engine));
ruleBlock.addRule(Rule.parse("if Age is not extremely Old and RiskTolerance is not extremely Low then PercentageInStocks is AboutFifty with 0.500", engine));