Fuzzy logic

Fuzzy logic is a form of multi-valued logic derived from fuzzy set theory to deal with reasoning that is approximate rather than precise. In contrast with binary sets having binary logic, also known as crisp logic, the fuzzy logic variables may have a membership value of not only 0 or 1. Just as in fuzzy set theory with fuzzy logic the set membership values can range (inclusively) between 0 and 1, in fuzzy logic the degree of truth of a statement can range between 0 and 1 and is not constrained to the two truth values {true (1), false (0)} as in classic propositional logic. And when linguistic variables are used, these degrees may be managed by specific functions, as discussed below.

The term "fuzzy logic" emerged as a consequence of the development of the theory of fuzzy sets by Lotfi Zadeh.

In 1965, Lotfi Zadeh proposed fuzzy set theory, and later established fuzzy logic based on fuzzy sets. Fuzzy logic has been applied to diverse fields, from control theory to artificial intelligence, yet still remains controversial among most statisticians, who prefer Bayesian logic, and some control engineers, who prefer traditional two-valued logic.

Earlier than Zadeh, a paper introducing the concept without using the term "fuzzy" was published by R.H. Wilkinson in 1963 and thus preceded fuzzy set theory. Wilkinson was the first one to redefine and generalize the earlier multivalued logics in terms of set theory. The main purpose of his paper, following his first proposals in his 1961 electrical engineering master thesis, was to show how any mathematical function could be simulated using hardwired analog electronic circuits. He did this by first creating various linear voltage ramps which were then selected in a logic block using diodes and resistor circuits which implemented the maximum and minimum fuzzy logic rules of the INCLUSIVE OR and the AND operations respectively. He called his logic "analog logic". Some say that the idea of fuzzy logic is set-theoretical equivalent of the "analog logic" of Wilkinson (without recourse to electrical circuits), but he never received any credit.

Degrees of truth
Both degrees of truth and probabilities range between 0 and 1 and hence may seem similar at first. However, they are distinct conceptually; truth represents membership in vaguely defined sets, not likelihood of some event or condition as in probability theory. For example, let a 100 ml glass contain 30 ml of water. Then we may consider two concepts: Empty and Full. The meaning of each of them can be represented by a certain fuzzy set. Then one might define the glass as being 0.7 empty and 0.3 full. Note that the concept of emptiness would be subjective and thus would depend on the observer or designer. Another designer might equally well design a set membership function where the glass would be considered full for all values down to 50 ml. It is essential to realize that fuzzy logic uses truth degrees as a mathematical model of the vagueness phenomenon while probability is a mathematical model of randomness. A probabilistic setting would first define a scalar variable for the fullness of the glass, and second, conditional distributions describing the probability that someone would call the glass full given a specific fullness level. This model, however, has no sense without accepting occurrence of some event, e.g. that after a few minutes, the glass will be half empty. Note that the conditioning can be achieved by having a specific observer that randomly selects the label for the glass, a distribution over deterministic observers, or both. Consequently, probability has nothing in common with fuzziness, these are simply different concepts which superficially seem similar because of using the same interval of real numbers [0, 1]. Still, since theorems such as De Morgan's have dual applicability and properties of random variables are analogous to properties of binary logic states, one can see where the confusion might arise.

Applying truth values
A basic application might characterize subranges of a continuous variable. For instance, a temperature measurement for anti-lock brakes might have several separate membership functions defining particular temperature ranges needed to control the brakes properly. Each function maps the same temperature value to a truth value in the 0 to 1 range. These truth values can then be used to determine how the brakes should be controlled.

In this image, the meaning of the expressions cold, warm, and hot is represented by functions mapping a temperature scale. A point on that scale has three "truth values" &mdash; one for each of the three functions. The vertical line in the image represents a particular temperature that the three arrows (truth values) gauge. Since the red arrow points to zero, this temperature may be interpreted as "not hot". The orange arrow (pointing at 0.2) may describe it as "slightly warm" and the blue arrow (pointing at 0.8) "fairly cold".

Linguistic variables
While variables in mathematics usually take numerical values, in fuzzy logic applications, the non-numeric linguistic variables are often used to facilitate the expression of rules and facts.

A linguistic variable such as age may have a value such as young or its antonym old. However, the great utility of linguistic variables is that they can be modified via linguistic hedges applied to primary terms. The linguistic hedges can be associated with certain functions. For example, L. A. Zadeh proposed to take the square of the membership function. This model, however, does not work properly. For more details, see the references.

An example of fuzzy reasoning
Fuzzy Set Theory defines Fuzzy Operators on Fuzzy Sets. The problem in applying this is that the appropriate Fuzzy Operator may not be known. For this reason, Fuzzy logic usually uses IF-THEN rules, or constructs that are equivalent, such as fuzzy associative matrices.

Rules are usually expressed in the form: IF variable IS property THEN action

For example, an extremely simple temperature regulator that uses a fan might look like this: IF temperature IS very cold THEN stop fan IF temperature IS cold THEN turn down fan IF temperature IS normal THEN maintain level IF temperature IS hot THEN speed up fan Notice there is no "ELSE". All of the rules are evaluated, because the temperature might be "cold" and "normal" at the same time to different degrees.

The AND, OR, and NOT operators of boolean logic exist in fuzzy logic, usually defined as the minimum, maximum, and complement; when they are defined this way, they are called the Zadeh operators, because they were first defined as such in Zadeh's original papers. So for the fuzzy variables x and y: NOT x = (1 - truth(x)) x AND y = minimum(truth(x), truth(y)) x OR y = maximum(truth(x), truth(y))

There are also other operators, more linguistic in nature, called hedges that can be applied. These are generally adverbs such as "very", or "somewhat", which modify the meaning of a set using a mathematical formula.

In application, the programming language Prolog is well geared to implementing fuzzy logic with its facilities to set up a database of "rules" which are queried to deduct logic. This sort of programming is known as logic programming.

Once fuzzy relations are defined, it is possible to develop fuzzy relational databases. The first fuzzy relational database, FRDB, appeared in Maria Zemankova's dissertation. Later, some other models arose like the Buckles-Petry model, the Prade-Testemale Model, the Umano-Fukami model or the GEFRED model by J.M. Medina, M.A. Vila et al. In the context of fuzzy databases, some fuzzy querying languages have been defined, highlighting the SQLf by P. Bosc et al. and the FSQL by J. Galindo et al. These languages define some structures in order to include fuzzy aspects in the SQL statements, like fuzzy conditions, fuzzy comparators, fuzzy constants, fuzzy constraints, fuzzy thresholds, linguistic labels and so on.

Other examples
IF male IS true AND height >= 1.8 THEN is_tall IS true; is_short IS false IF height <= medium male THEN is_short IS agree somewhat IF height >= medium male THEN is_tall IS agree somewhat In the fuzzy case, there are no such heights as 1.83 meters, but there are fuzzy values, like the following assignments: dwarf male = [0, 1.3] m short male = [1.3, 1.5] m medium male = [1.5, 1.8] m tall male = [1.8, 2.0] m giant male > 2.0 m For the consequent, there may also be more than two values: agree not = 0 agree little = 1 agree somewhat = 2 agree a lot = 3 agree fully = 4 In the binary (or "crisp") case, a person of 1.79 meters is considered of medium height, while another person who is 1.8 meters or 2.25 meters tall is considered tall.
 * If a male is 1.8 meters, consider him as tall:
 * The fuzzy rules do not make sharp distinction between tall and short:

The crisp example differs deliberately from the fuzzy one. The antecedent was not given fuzzy values: IF male >= agree somewhat AND ... as gender is often considered binary information.

Hedges
Whilst you could name the consequents "agree not", or "agree somewhat" etc... it is rather unhelpful. Something that has not been mentioned in this article thus far is a Fuzzy concept called "Hedges" (M. Negnevitsky in his book "Artificial Intelligence - A Guide to Intelligent Systems" does a very nice presentation of this) A hedge is something that impacts the transitions in a fuzzy set. For example, the hedge "very" performs the mathematical operator of [mA(x)]2 (where m is the Greek Letter mu) on the values in a fuzzy set. If the original set was the set of Tall Men, where the domain is 0 to 260, tall men has a truth value of 1 at 260, and at 200, and a value 0 at 160 and at 0. Then the point of 180 would have a value of 0.5. Performing the hedge of "Very" on Tall Men, we get the new fuzzy set of Very Tall Men.

''What happens to our fuzzy set, is that any point that has a value less that 1 actually gets a bit smaller. Mathematically, the key operator is [sup]2[/sup], any value less than 1 and greater than 0 that is multiplied by itself becomes smaller [0.5*0.5 = 0.25; 0.75*0.75=0.56; etc.]. Interestingly, the values that are most affected are the ones that are towards the center of our slope, so in the slope [{160,0},{200,1}], the closer to the middle value of 180, the more impact our operator has on it's output.''

So our fuzzy set Very Tall Men, rather than having a diagonal line between 160 and 200, instead has a curve... But what does that mean to our fuzzy system? Depending on what method your system is using to determine what output to give when we defuzzify our values there will be slightly different impacts. The basic gist is that it gives greater dominance to values that are fully in our set, and so people who aren't very much in our set of Tall Men will have a lesser impact.

Really, hedges deserve a wiki of their own, I may create one later, just try to avoid "not", "very", "somewhat" etc. In fuzzy set names as they are to some degree reserved words when it comes to building fuzzy systems...

Mathematical fuzzy logic
In mathematical logic, there are several formal systems of "fuzzy logic"; most of them belong among so-called t-norm fuzzy logics.

Propositional fuzzy logics
The most important propositional fuzzy logics are:
 * Monoidal t-norm-based propositional fuzzy logic MTL is an axiomatization of logic where conjunction is defined by a left continuous t-norm, and implication is defined as the residuum of the t-norm. Its models correspond to MTL-algebras that are prelinear commutative bounded integral residuated lattices.
 * Basic propositional fuzzy logic BL is an extension of MTL logic where conjunction is defined by a continuous t-norm, and implication is also defined as the residuum of the t-norm. Its models correspond to BL-algebras.
 * ŝukasiewicz fuzzy logic is the extension of basic fuzzy logic BL where standard conjunction is the ŝukasiewicz t-norm. It has the axioms of basic fuzzy logic plus an axiom of double negation, and its models correspond to MV-algebras.
 * Gödel fuzzy logic is the extension of basic fuzzy logic BL where conjunction is Gödel t-norm. It has the axioms of BL plus an axiom of idempotence of conjunction, and its models are called G-algebras.
 * Product fuzzy logic is the extension of basic fuzzy logic BL where conjunction is product t-norm. It has the axioms of BL plus another axiom for cancellativity of conjunction, and its models are called product algebras.
 * Fuzzy logic with evaluated syntax (sometimes also called Pavelka's logic), denoted by EVŝ, is a further generalization of mathematical fuzzy logic. While the above kinds of fuzzy logic have traditional syntax and many-valued semantics, in EVŝ is evaluated also syntax. This means that each formula has an evaluation. Axiomatization of EVŝ stems from ŝukasziewicz fuzzy logic. A generalization of classical Gödel completeness theorem is provable in EVŝ.

Predicate fuzzy logics
These extend the above-mentioned fuzzy logics by adding universal and existential quantifiers in a manner similar to the way that predicate logic is created from propositional logic. The semantics of the universal (resp. existential) quantifier in t-norm fuzzy logics is the infimum (resp. supremum) of the truth degrees of the instances of the quantified subformula.

Higher-order fuzzy logics
These logics, called fuzzy type theories, extend predicate fuzzy logics to be able to quantify also predicates and higher order objects. A fuzzy type theory is a generalization of classical simple type theory introduced by B. Russell and mathematically elaborated by A. Church and L. Henkin.

Decidability issues for fuzzy logic
The notions of a "decidable subset" and "recursively enumerable subset" are basic ones for classical mathematics and classical logic. Then, the question of a suitable extension of such concepts to fuzzy set theory arises. A first proposal in such a direction was made by E.S. Santos by the notions of fuzzy Turing machine, Markov normal fuzzy algorithm and fuzzy program (see Santos 1970). Successively, L. Biacino and G. Gerla showed that such a definition is not adequate and therefore proposed the following one. Ü denotes the set of rational numbers in [0,1]. A fuzzy subset s : S $$\rightarrow$$[0,1] of a set S is recursively enumerable if a recursive map h : S×N $$\rightarrow$$Ü exists such that, for every x in S, the function h(x,n) is increasing with respect to n and s(x) = lim h(x,n). We say that s is decidable if both s and its complement –s are recursively enumerable. An extension of such a theory to the general case of the L-subsets is proposed in Gerla 2006. The proposed definitions are well related with fuzzy logic. Indeed, the following theorem holds true (provided that the deduction apparatus of the fuzzy logic satisfies some obvious effectiveness property).

Theorem. Any axiomatizable fuzzy theory is recursively enumerable. In particular, the fuzzy set of logically true formulas is recursively enumerable in spite of the fact that the crisp set of valid formulas is not recursively enumerable, in general. Moreover, any axiomatizable and complete theory is decidable.

It is an open question to give supports for a Church thesis for fuzzy logic claiming that the proposed notion of recursive enumerability for fuzzy subsets is the adequate one. To this aim, further investigations on the notions of fuzzy grammar and fuzzy Turing machine should be necessary (see for example Wiedermann's paper). Another open question is to start from this notion to find an extension of Gödel’s theorems to fuzzy logic.

Application areas

 * Air conditioners
 * Automobile and other vehicle subsystems, such as automatic transmissions, ABS and cruise control (e.g. Tokyo monorail)
 * Cameras
 * Digital image processing, such as edge detection
 * Dishwashers
 * Elevators
 * Fuzzy logic has also been incorporated into some microcontrollers and microprocessors, for instance, the Freescale 68HC12.
 * Hydrometeor classification algorithms for polarimetric weather radar
 * Language filters on message boards and chat rooms for filtering out offensive text
 * The Massive engine used in the Lord of the Rings films, which helped huge scale armies create random, yet orderly movements
 * Mineral Deposit estimation
 * Pattern recognition in Remote Sensing
 * Rice cookers
 * Video game artificial intelligence
 * Washing machines and other home appliances

Controversies

 * Fuzzy logic is the same as "imprecise logic".
 * Fuzzy logic is not any less precise than any other form of logic: it is an organized and mathematical method of handling inherently imprecise concepts. The concept of "coldness" cannot be expressed in an equation, because although temperature is a quantity, "coldness" is not. However, people have an idea of what "cold" is, and agree that there is no sharp cutoff between "cold" and "not cold", where something is "cold" at N degrees but "not cold" at N+1 degrees &mdash; a concept classical logic cannot easily handle due to the principle of bivalence. The result has no set answer so it is believed to be a 'fuzzy' answer. Fuzzy logic simply provides a mathematical model of the vagueness which is manifested in the above example.


 * Fuzzy logic is a new way of expressing probability.
 * Fuzzy logic and probability are different ways of expressing uncertainty. While both fuzzy logic and probability theory can be used to represent subjective belief, fuzzy set theory uses the concept of fuzzy set membership (i.e., how much a variable is in a set), probability theory uses the concept of subjective probability (i.e., how probable do I think that a variable is in a set). While this distinction is mostly philosophical, the fuzzy-logic-derived possibility measure is inherently different from the probability measure, hence they are not directly equivalent. However, many statisticians are persuaded by the work of Bruno de Finetti that only one kind of mathematical uncertainty is needed and thus fuzzy logic is unnecessary. On the other hand, Bart Kosko argues that probability is a subtheory of fuzzy logic, as probability only handles one kind of uncertainty. He also claims to have proven a derivation of Bayes' theorem from the concept of fuzzy subsethood. Lotfi Zadeh argues that fuzzy logic is different in character from probability, and is not a replacement for it. He fuzzified probability to fuzzy probability and also generalized it to what is called possibility theory. Other approaches to uncertainty include Dempster-Shafer theory and rough sets.
 * Note, however, that fuzzy logic is not controversial to probability but rather complementary (cf. )


 * Fuzzy logic will be difficult to scale to larger problems.
 * This criticism is mainly because there exist problems with conditional possibility, the fuzzy set theory equivalent of conditional probability (see Halpern (2003), Section 3.8). This makes it difficult to perform inference. However there have not been many studies comparing fuzzy-based systems with probabilistic ones.