nrc.fuzzy
Class PIFuzzySet

java.lang.Object
  |
  +--nrc.fuzzy.FuzzySet
        |
        +--nrc.fuzzy.LRFuzzySet
              |
              +--nrc.fuzzy.PIFuzzySet
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

public class PIFuzzySet
extends LRFuzzySet
implements java.io.Serializable

Used to build specialized FuzzySets that in have a 'bell' shape with a 0 at the left and right edges of the curve and a 1 at the middle. The diagram below shows an PIFuzzySet.



Note that the Constructors have been defined to make the generation of such curves as simple as possible. Only the middle point and the width of the curve need be specified (with an optional constructor that allows the number of points on the curve approximation to be specified if necessary -- the default PIFuzzySet is created with an SFunctions and ZFunction with 5 points each so that the default PI curve will be approximated by 9 points).

Note that this is a specialization of the LRFuzzySet with specific functions used to determine the shape of the left (SFunction) and right (ZFunction) sides. Also the left and right shapes join at the same point giving the required 'bell' shape.

See Also:
FuzzySet, LFuzzySet, SFunction, Serialized Form

Nested Class Summary
 
Nested classes inherited from class nrc.fuzzy.FuzzySet
FuzzySet.UITools
 
Field Summary
 
Fields inherited from class nrc.fuzzy.FuzzySet
BFALSE, BTRUE, COLLINEAR_OR_PARALLEL, INCREMENT, INTERSECTION, MAX_INITIAL_POINTS, MAXMIN, NO_INTERSECTION, numPoints, set, simplified, SUM, tool, toStringPrecision, UNION
 
Constructor Summary
PIFuzzySet(double center, double curveWidth)
          Generate a FuzzySet with a 'bell' shape.
PIFuzzySet(double center, double curveWidth, int numPoints)
          Generate a FuzzySet with a 'bell' shape.
 
Methods inherited from class nrc.fuzzy.LRFuzzySet
checkParameters
 
Methods inherited from class nrc.fuzzy.FuzzySet
appendSetPoint, appendSetPoint, centerOfAreaDefuzzify, checkXValueOrder, checkYValueRange, concat, concat, confineToXBounds, copyFuzzySet, equals, findMaxYOverlapValue, fuzzyComplement, fuzzyEqual, fuzzyIntersection, fuzzyIntersection, fuzzyIntersectionUnion, fuzzyNormalize, fuzzyScale, fuzzySum, fuzzySum, fuzzyUnion, fuzzyUnion, getAlphaCut, getArea, getArea, getMaxY, getMembership, getMinY, getPoint, getSupport, getUITools, getX, getXforMembership, getY, goingDown, goingUp, horizontalIntersection, horizontalIntersectionUnion, horizontalUnion, incrementArrayLength, incrementArrayLength, insertSetPoint, insertSetPoint, isConvex, isEmpty, isNormal, isSimplified, maximumDefuzzify, maximumOfIntersection, maximumOfIntersection, momentDefuzzify, noIntersectionTest, nonIntersectionTest, plotFuzzySet, plotFuzzySets, removeSetPoint, removeSetPoint, sameDirection, sameSign, setToStringPrecision, shiftArrayLeft, shiftArrayRight, simplifySet, size, testArrayLength, toString, trimToSize, weightedAverageDefuzzify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PIFuzzySet

public PIFuzzySet(double center,
                  double curveWidth)
           throws XValuesOutOfOrderException
Generate a FuzzySet with a 'bell' shape.

Parameters:
center - the center of the curve with a membership value of 1
curveWidth - the width of each side of the curve
Throws:
XValuesOutOfOrderException - if the parameters determine an illegal arrangement (such as a negative width)

PIFuzzySet

public PIFuzzySet(double center,
                  double curveWidth,
                  int numPoints)
           throws XValuesOutOfOrderException
Generate a FuzzySet with a 'bell' shape.

Parameters:
center - the center of the curve with a membership value of 1
curveWidth - the width of each side of the curve
numPoints - the number of points to use to approximate each side of the shape
Throws:
XValuesOutOfOrderException - if the parameters determine an illegal arrangement (such as a negative width)