Here we go again. You only started this thread so I would do this...

Fuzzy logic is a superset of conventional (Boolean) logic that has been
extended to handle the concept of partial truth -- truth values between
"completely true" and "completely false". It was introduced by Dr. Lotfi
Zadeh of UC/Berkeley in the 1960's as a means to model the uncertainty
of natural language. (Note: Lotfi, not Lofti, is the correct spelling
of his name.)
Zadeh says that rather than regarding fuzzy theory as a single theory, we
should regard the process of ``fuzzification'' as a methodology to
generalize ANY specific theory from a crisp (discrete) to a continuous
(fuzzy) form (see "extension principle" in [2]). Thus recently researchers
have also introduced "fuzzy calculus", "fuzzy differential equations",
and so on (see [7]).
Fuzzy Subsets:
Just as there is a strong relationship between Boolean logic and the
concept of a subset, there is a similar strong relationship between fuzzy
logic and fuzzy subset theory.
In classical set theory, a subset U of a set S can be defined as a
mapping from the elements of S to the elements of the set {0, 1},
U: S --> {0, 1}
This mapping may be represented as a set of ordered pairs, with exactly
one ordered pair present for each element of S. The first element of the
ordered pair is an element of the set S, and the second element is an
element of the set {0, 1}. The value zero is used to represent
non-membership, and the value one is used to represent membership. The
truth or falsity of the statement
x is in U
is determined by finding the ordered pair whose first element is x. The
statement is true if the second element of the ordered pair is 1, and the
statement is false if it is 0.
Similarly, a fuzzy subset F of a set S can be defined as a set of ordered
pairs, each with the first element from S, and the second element from
the interval [0,1], with exactly one ordered pair present for each
element of S. This defines a mapping between elements of the set S and
values in the interval [0,1]. The value zero is used to represent
complete non-membership, the value one is used to represent complete
membership, and values in between are used to represent intermediate
DEGREES OF MEMBERSHIP. The set S is referred to as the UNIVERSE OF
DISCOURSE for the fuzzy subset F. Frequently, the mapping is described
as a function, the MEMBERSHIP FUNCTION of F. The degree to which the
statement
x is in F
is true is determined by finding the ordered pair whose first element is
x. The DEGREE OF TRUTH of the statement is the second element of the
ordered pair.
In practice, the terms "membership function" and fuzzy subset get used
interchangeably.
That's a lot of mathematical baggage, so here's an example. Let's
talk about people and "tallness". In this case the set S (the
universe of discourse) is the set of people. Let's define a fuzzy
subset TALL, which will answer the question "to what degree is person
x tall?" Zadeh describes TALL as a LINGUISTIC VARIABLE, which
represents our cognitive category of "tallness". To each person in the
universe of discourse, we have to assign a degree of membership in the
fuzzy subset TALL. The easiest way to do this is with a membership
function based on the person's height.
tall(x) = { 0, if height(x) < 5 ft.,
(height(x)-5ft.)/2ft., if 5 ft. <= height (x) <= 7 ft.,
1, if height(x) > 7 ft. }
A graph of this looks like:
1.0 + +-------------------
| /
| /
0.5 + /
| /
| /
0.0 +-------------+-----+-------------------
| |
5.0 7.0
height, ft. ->
Given this definition, here are some example values:
Person Height degree of tallness
--------------------------------------
Billy 3' 2" 0.00 [I think]
Yoke 5' 5" 0.21
Drew 5' 9" 0.38
Erik 5' 10" 0.42
Mark 6' 1" 0.54
Kareem 7' 2" 1.00 [depends on who you ask]
Expressions like "A is X" can be interpreted as degrees of truth,
e.g., "Drew is TALL" = 0.38.
Note: Membership functions used in most applications almost never have as
simple a shape as tall(x). At minimum, they tend to be triangles pointing
up, and they can be much more complex than that. Also, the discussion
characterizes membership functions as if they always are based on a
single criterion, but this isn't always the case, although it is quite
common. One could, for example, want to have the membership function for
TALL depend on both a person's height and their age (he's tall for his
age). This is perfectly legitimate, and occasionally used in practice.
It's referred to as a two-dimensional membership function, or a "fuzzy
relation". It's also possible to have even more criteria, or to have the
membership function depend on elements from two completely different
universes of discourse.
Logic Operations:
Now that we know what a statement like "X is LOW" means in fuzzy logic,
how do we interpret a statement like
X is LOW and Y is HIGH or (not Z is MEDIUM)
The standard definitions in fuzzy logic are:
truth (not x) = 1.0 - truth (x)
truth (x and y) = minimum (truth(x), truth(y))
truth (x or y) = maximum (truth(x), truth(y))
Some researchers in fuzzy logic have explored the use of other
interpretations of the AND and OR operations, but the definition for the
NOT operation seems to be safe.
Note that if you plug just the values zero and one into these
definitions, you get the same truth tables as you would expect from
conventional Boolean logic. This is known as the EXTENSION PRINCIPLE,
which states that the classical results of Boolean logic are recovered
from fuzzy logic operations when all fuzzy membership grades are
restricted to the traditional set {0, 1}. This effectively establishes
fuzzy subsets and logic as a true generalization of classical set theory
and logic. In fact, by this reasoning all crisp (traditional) subsets ARE
fuzzy subsets of this very special type; and there is no conflict between
fuzzy and crisp methods.
Some examples -- assume the same definition of TALL as above, and in addition,
assume that we have a fuzzy subset OLD defined by the membership function:
old (x) = { 0, if age(x) < 18 yr.
(age(x)-18 yr.)/42 yr., if 18 yr. <= age(x) <= 60 yr.
1, if age(x) > 60 yr. }
And for compactness, let
a = X is TALL and X is OLD
b = X is TALL or X is OLD
c = not (X is TALL)
Then we can compute the following values.
height age X is TALL X is OLD a b c
------------------------------------------------------------------------
3' 2" 65 0.00 1.00 0.00 1.00 1.00
5' 5" 30 0.21 0.29 0.21 0.29 0.79
5' 9" 27 0.38 0.21 0.21 0.38 0.62
5' 10" 32 0.42 0.33 0.33 0.42 0.58
6' 1" 31 0.54 0.31 0.31 0.54 0.46
7' 2" 45 1.00 0.64 0.64 1.00 0.00
3' 4" 4 0.00 0.00 0.00 0.00 1.00
For those of you who only grok the metric system, here's a dandy
little conversion table:
Feet+Inches = Meters
--------------------
3' 2" 0.9652
3' 4" 1.0160
5' 5" 1.6510
5' 9" 1.7526
5' 10" 1.7780
6' 1" 1.8542
7' 2" 2.1844

There' I've fuzzified this thread