home Forums # Technical Support JAVA API Reply To: JAVA API

#1135
Unknown
Member

Following code.

		//OBJETO FUZZY
		Engine engine = new Engine();
		engine.setName("simple-dimmer");

		//VARIAVEIS LINGUISTICAS DE ENTRADA
		InputVariable inputVariable = new InputVariable();
		inputVariable.setEnabled(true);
		inputVariable.setName("Ambient");
		inputVariable.setRange(0.000, 1.000);
		inputVariable.addTerm(new Triangle("DARK", 0.000, 0.250, 0.500));
		inputVariable.addTerm(new Triangle("MEDIUM", 0.250, 0.500, 0.750));
		inputVariable.addTerm(new Triangle("BRIGHT", 0.500, 0.750, 1.000));
		engine.addInputVariable(inputVariable);

		
		//SAIDA
		OutputVariable outputVariable = new OutputVariable();
		outputVariable.setEnabled(true);
		outputVariable.setName("Power");
		outputVariable.setRange(0.000, 1.000);
		outputVariable.fuzzyOutput().setAccumulation(new Maximum());
		outputVariable.fuzzyOutput().setAccumulation(new AlgebraicSum());
		outputVariable.setDefuzzifier(new WeightedAverage());
		outputVariable.setDefuzzifier(new Centroid(200));
		outputVariable.setDefaultValue(Double.NaN);
		outputVariable.setLockValidOutput(false);
		outputVariable.setLockOutputRange(false);
		outputVariable.addTerm(new Constant("LOW", 0.250));
		outputVariable.addTerm(new Constant("MEDIUM", 0.500));
		outputVariable.addTerm(new Constant("HIGH", 0.750));
		engine.addOutputVariable(outputVariable);

		//RULES
		RuleBlock ruleBlock = new RuleBlock();
		ruleBlock.setEnabled(true);
		ruleBlock.setName("");
		ruleBlock.setConjunction(new Minimum());
		ruleBlock.setDisjunction(new Maximum());
		ruleBlock.setActivation(new Minimum());
		ruleBlock.addRule(Rule.parse("if Ambient is DARK then Power is HIGH",engine));
		ruleBlock.addRule(Rule.parse("if Ambient is MEDIUM then Power is MEDIUM", engine));
		ruleBlock.addRule(Rule.parse("if Ambient is BRIGHT then Power is LOW",engine));
		engine.addRuleBlock(ruleBlock);

		
		StringBuilder status = new StringBuilder();
		if (!engine.isReady(status))
		throw new RuntimeException("Nao foi possivel gerar o arquivo. "
		+ "O seguintes erros foram encontrados:\n"
		+ status.toString());
				
		engine.setInputValue("Ambient", 0.1);
		engine.process();

		System.out.println(engine.getOutputValue("Power"));