The TCustomFuzzyLogic component is the base class for the TFuzzyLogic component, which defines fuzzy sets and variables using normal classes, and the TIFuzzyLogic component, which defines fuzzy sets and variables using interfaces.
Fuzzy variables (such as TFuzzyVariable) define a linguistic variable, such as Temperature which may take fuzzy sets as values, such as warm, cold, or hot. Fuzzy Variables are much like set variables in Pascal. However, unlike Pascal variables, the enumerated items, or terms, in the set are fuzzy and not crisp. Pascal allows enumerated values to either be in or not in the set. Fuzzy variables allow values to be partially in the set. For example, we may define a fuzzy variable which is based on Temperature. Any variable of this type may take fuzzy set (see TFuzzySet) values of cold, warm, and hot (or some combination). Cold, warm, and hot are the fuzzy sets which define the terms of the type. Each fuzzy set defines a membership function over the domain of temperature. If, for our example, temperature has a range between 0 and 100 Celsius, Cold could be a fuzzy set that defined any value under 10 Celcius as completely cold (one or True), any value over 50 as not at all cold (zero), and any value in between having a membership between zero and one.
