Defines interfaces for working with Fuzzy Logic. Fuzzy Logic is a method for modeling and reasoning about imprecise or approximate concepts. Traditional logic, where concepts must be true or false, zero or one, has trouble at the boundaries of a problem: Is the water hot or cold? It's neither and both, it is somewhat hot. Fuzzy logic concerns itself with the boundaries of a concept, things can be "somewhat true" and "sorta false". Fuzzy Logic reduces system complexity by avoiding the complex mathematics and logic necessary to solve problems at these boundary conditions using traditional, exists/not exists, logic. It is able to approximate the behavior of problems that are poorly understood or nonlinear.
Fuzzy Logic also exhibits another desirable characteristic, it allows the user to represent or model the problem linguistically. Fuzzy Logic allows reasoning about the problem in ways natural to the user: Is the temperature hot? How long is the project duration? Using linguistic variables ( FuzzyInterfaces.IFuzzyVariable, similar to regular variables like X and Y except they take values ( FuzzyInterfaces.IFuzzySet s) like "cold" or "not very long"), Fuzzy Logic provides a closer mapping between the actual, real world, problem and the computer representation of the problem.

Name

Description


IFuzzyParser

Defines the interface for encapsulating a parser for fuzzy variables and fuzzy sets. The parser is responsible for printing a text version of the fuzzy interfaces and being able to reparse them later


IFuzzySet

Defines the interface for encapsulating one fuzzy set, or term, in the universe of discourse (defined by a Fuzzy Variable). Each fuzzy set defines the meaning of one term (or value) in the fuzzy variable. For example, the fuzzy variable "temperature" could have sets for the terms: cold, warm, and hot. Fuzzy sets describe a fuzzy value, meaning that it has imprecise or fuzzy boundaries describing the value. Classical logic defines terms with crisp boundaries: Cold is TRUE when the value is between 0 and 32, FALSE otherwise. The fuzzy set cold could have values stating that it is definitely cold (100%) when the temperature is less than 20, As the temperature increases between 21 and 32 degrees, the chance of being considered cold drops down to 50%, 5040% chance from 33  50 degrees, etc


IFuzzyStreamToken

Represents one token (string) parsed by a fuzzy logic parser. However, the token can not only represent the string token parsed from a stream, but also provide methods for retrieving and setting its value based on a type. In other words, as the parser compiles more information about a token (possibly based on tokens before or after this token), it can replace the string token with other objects/interfaces, for example, the actual fuzzy set the string token represented.


IFuzzyStreamTokenList

Represents a list of fuzzy stream tokens (IFuzzyStreamToken). Each token of the list can represent one atomic string in the stream being parsed or represent an actual fuzzy set or another list (of lists, of lists, etc).


IFuzzyVariable

Defines a linguistic variable, or fuzzy variable, such as Temperature which may take fuzzy sets as values, such as warm, cold, or hot.

Top
