Package net.sourceforge.jFuzzyLogic.defuzzifier

Examples of net.sourceforge.jFuzzyLogic.defuzzifier.DefuzzifierContinuous


      }
    } else {
      //---
      // Continuous case
      //---
      DefuzzifierContinuous defuzzifierContinuous = (DefuzzifierContinuous) defuzzifier;
      x = defuzzifierContinuous.getMin();
      double step = defuzzifierContinuous.getStepSize();

      // Do some sanitychecks
      if( Double.isNaN(x) || Double.isInfinite(x) ) throw new RuntimeException("Universe minimum not calculated for term '" + fuzzyRuleTerm.getTermName() + "' : " + x);
      if( Double.isNaN(step) || Double.isInfinite(step) ) throw new RuntimeException("Step not calculated for term '" + fuzzyRuleTerm.getTermName() + "' : " + step);

      int i, length = defuzzifierContinuous.getLength();

      // Add membershipfunction to deffuzifier
      for( i = 0; i < length; i++, x += step ) {
        // Is term negated?
        if( fuzzyRuleTerm.isNegated() ) membership = 1 - mf.membership(x);
        else membership = mf.membership(x);

        y = imply(degreeOfSupport, membership); // Call to abstract implication method described above

        // Aggregate value
        aggregated = variable.getRuleAggregationMethod().aggregate(defuzzifierContinuous.getValue(i), y);
        defuzzifierContinuous.setValue(i, aggregated);
      }
    }
  }
View Full Code Here


      }
    } else {
      //---
      // Continuous case
      //---
      DefuzzifierContinuous defuzzifierContinuous = (DefuzzifierContinuous) defuzzifier;
      x = defuzzifierContinuous.getMin();
      double step = defuzzifierContinuous.getStepSize();

      // Do some sanitychecks
      if( Double.isNaN(x) || Double.isInfinite(x) ) throw new RuntimeException("Universe minimum not calculated for term '" + fuzzyRuleTerm.getTermName() + "' : " + x);
      if( Double.isNaN(step) || Double.isInfinite(step) ) throw new RuntimeException("Step not calculated for term '" + fuzzyRuleTerm.getTermName() + "' : " + step);

      int i, length = defuzzifierContinuous.getLength();

      // Add membershipfunction to deffuzifier
      for( i = 0; i < length; i++, x += step ) {
        // Is term negated?
        if( fuzzyRuleTerm.isNegated() ) membership = 1 - mf.membership(x);
        else membership = mf.membership(x);

        y = imply(degreeOfSupport, membership); // Call to abstract implication method described above

        // Aggregate value
        aggregated = ruleAccumulationMethod.aggregate(defuzzifierContinuous.getValue(i), y);
        defuzzifierContinuous.setValue(i, aggregated);
      }
    }
  }
View Full Code Here

    // Plot deffuzyfier values (if any)
    //---
    Defuzzifier defuzzifier = v.getDefuzzifier();

    if( (defuzzifier != null) && (defuzzifier instanceof DefuzzifierContinuous) ) {
      DefuzzifierContinuous def = (DefuzzifierContinuous) defuzzifier;

      double latestDefuzzifiedValue = v.getLatestDefuzzifiedValue();
      String title = name; // String.format("%s:%2.2f (%s)", name, latestDefuzzifiedValue, defuzzifier.getName());
      topTitle += "=" + String.format("% 6.2f", latestDefuzzifiedValue);
      XYSeries series = new XYSeries(title);
      double values[] = def.getValues();
      numberOfPoints = values.length;
      double xx = def.getMin();
      step = (def.getMax() - def.getMin()) / (numberOfPoints);
      for( int i = 0; i < numberOfPoints; i++, xx += step )
        series.add(xx, values[i]); // Add serie to dataSet
      xyDataset.addSeries(series);
      plotDefuzz = true;
    }
View Full Code Here

    //---
    // Plot deffuzyfier values (if any)
    //---
    if( (defuzzifier != null) && (defuzzifier instanceof DefuzzifierContinuous) ) {
      DefuzzifierContinuous def = (DefuzzifierContinuous) defuzzifier;
      String title = String.format("%s:%2.2f (%s)", name, latestDefuzzifiedValue, defuzzifier.getName());
      XYSeries series = new XYSeries(title);
      double values[] = def.getValues();
      numberOfPoints = values.length;
      double xx = def.getMin();
      step = (def.getMax() - def.getMin()) / (numberOfPoints);
      for( int i = 0; i < numberOfPoints; i++, xx += step )
        series.add(xx, values[i]);

      // Add serie to dataSet
      xyDataset.addSeries(series);
View Full Code Here

TOP

Related Classes of net.sourceforge.jFuzzyLogic.defuzzifier.DefuzzifierContinuous

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.