Fuzzy Application Library/What is Fuzzy Logic?

This introduction is kept brief. You find introductory literature in the Fuzzy Logic Literature section. Complete introductory literature is also contained with all fuzzyTECH products.

What is Fuzzy Logic?

How can a logic which is "fuzzy" be useful? Professor Lotfi Zadeh, the inventor of fuzzy logic, contends that a computer cannot solve problems as well as human experts unless it is able to think in the characteristic manner of a human being.

As humans, we often rely on imprecise expressions like "usually", "expensive", or "far". But the comprehension of a computer is limited to a black-white, everything-or-nothing, or true-false mode of thinking. In this context, Lotfi Zadeh emphasizes the fact that we easily let ourselves be dragged along by a desire to attain the highest possible precision without paying attention to the imprecise character of reality.

There are many subjects which do not fit into the precise categories of the conventional set theory: The set of "all triangles" or "all the guys named John" is easy to handle with conventional theory. Either somebody's name is John or it is not. There is no other status in between. The set of "all intelligent researchers" or "all the people with an expensive car", however, is much more complicated and cannot be handled easily by a "digital" mode of thinking. This is because of the fact that there is no way to define a precise threshold to represent a vague and blurry boundary: there are some obviously expensive cars, like the Rolls-Royce, but many others could be fit into this category as well, depending on how much money you have, where you live, and how you feel!

Why use fuzzyTECH ?

As mentioned before, within conventional logic, terms can be only "true" or "false". Fuzzy logic allows a generalization of conventional logic. It provides for terms between "true" and "false" like "almost true" or "partially false". Therefore, fuzzy logic cannot be directly processed on computers but must be emulated by special code.

This what what fuzzyTECH brings to the party. fuzzyTECH on one hand provides you with all the tools to design and test a fuzzy logic system. Once designed, fuzzyTECH stores your work as an FTL format file. FTL stands for "Fuzzy Technology Language", and can be considered "the programming language of fuzzy logic". Because fuzzyTECH provides an all-graphical user interface, however, you never need to program a single line of code in FTL. Rather, fuzzyTECH on the other hand converts this FTL description to code that can be used on your target hardware that is, the hardware where your fuzzy logic solution finally shall run on.

Designing a fuzzy logic system is different from conventional coding. To give you the most efficient start, fuzzyTECH features three "Fuzzy Design Wizards" that guides you step-by-step. As a beginner, this insures that you have covered all design steps thouroughly, as an experienced developer you will be able to design the prototype of a complex system in just a few minutes.

Integrating Neural Net Technology

There are many applications where it is easier to define the desired system behavior (or part of it) through examples rather than through manual creation of the rules or the linguistic variables. In such cases, you may use the NeuroFuzzy Module which is entirely integrated in fuzzyTECH.

The NeuroFuzzy module automatically generates and optimizes not only the fuzzy logic rules and their weights but also the membership functions from available data which represent sample cases. The NeuroFuzzy Module integrates neural network technologies in order to train fuzzy logic systems. In contrast to conventional neural network solutions, the entire training process and the resulting fuzzy logic system remains completely self-explanatory.

The employed training technology is based on a fuzzy logic inference component of fuzzyTECH: the use of Fuzzy Associative Maps (FAM). FAMs allow fuzzy logic rules with an inherent 'fuzzy' character. Such FAM rules can be viewed as generalized neurons ("Approximate Reasoning") whose plausibility is calculated through Competitive Learning. A fuzzy logic system generator optionally sets up appropriate membership functions and rule blocks prior to the actual training phase based on the data sets.

The NeuroFuzzy Module can also be used to optimize existing fuzzy logic systems. Starting with an existing system, the NeuroFuzzy Module interactively tunes rule weights and membership function definitions such that the system converges to the behavior represented by the data sets. The optimization process allows specified rules and membership functions to be locked or opened for learning. The entire learning process is visualized, and any fuzzy logic system generated by the NeuroFuzzy module can be further optimized and verified manually. You find more information in the NeuroFuzzy Module section.

Advanced Fuzzy Technologies

In addition to the common methods of fuzzy logic, there are various expanded fuzzy technologies which have proven to be very useful. Most fuzzyTECH products support such Advanced Fuzzy Technologies:

- Support of normalized rule sets
If you have complex applications, you can easily cause confusing rules using different operators, a chaos of parentheses and complicated "if-then-else" statements. Such constructs destroy the actual advantages of fuzzy logic systems, like clarity and easy expansion. fuzzyTECH uses a different approach by providing normalized rule sets and graphical structure editors. Even the most complex compositions, which must be handled within the rule syntax by other fuzzy logic tools, can be easily developed graphically with fuzzyTECH. Applying normalized rule sets has the additional advantage that the rules can be transformed automatically and developed easily in matrix form, which is often more readable than text or table form in the case of huge and complex systems.fuzzyTECH provides all three presentation forms (text, table, and matrix), while also allowing for switching between them or using them in mixed formats.

- Inference methods
Aside from the standard fuzzy inference methods (MAX-MIN, MAX-PROD), most fuzzyTECH products support the advanced Fuzzy Associative Map inference. FAM is an extension of fuzzy inference which was developed out of the combination of neural technology and fuzzy logic. It allows more accurate tuning of the rule bases according to the prerequisites, and as a result, it reduces the often necessary selection procedures of the rules. fuzzyTECH supports not only the maximum operator for result aggregation, but also the BSUM operator (Bounded-Sum). This operator also considers the so-called "support rules" which support the current firing rule.
The fuzzy inference of fuzzyTECH represents a combination of forward/backward chaining which is totally transparent for the user. fuzzyTECH automatically decides the best processing method appropriate to the current fuzzy logic system.

- Fuzzy operators
Most fuzzyTECH products provide families of generalized operators for fuzzy inference, from which you can create a desired operator through free parameterization of the available operators. There are three operator families available: Min-Max, Avg-Max, and Gamma. The Min-Max family represents a generalization of the "traditional" fuzzy operators that can also be created as a special case of Min-Max. Through broad empirical research, we now know that the Gamma families are able to represent the human characteristics of decision behavior the best. Through free parameterization you can individually modify your Gamma operators to achieve the optimum of your desired system. The Avg-Max family is an approximation of the Gamma operator family, optimized with regards to computing efficiency. Especially in cases requiring the processing of huge amounts of data in a short time, you may choose the Avg-Max operators, thereby giving up some of the higher accuracy provided by the Gamma operators.