Fuzzy Logic

Many popular descriptions claim that "fuzzy logic" represents a 
significant shift in outlook, i.e., a "new way of thinking" about 
the world, and that this enables a new set of solutions to problems 
that have traditionally been treated with old-fashioned "unfuzzy" 
logic.  But are the ideas and practices comprising "fuzzy logic" 
really new, and how precisely are they applied to the solution of
practical problems?

The applications of fuzzy logic most often mentioned are in the 
area of controls theory.  One actual practitioner of "fuzzy logic"
is OMRON Electronics, which produces a wide variety of control 
systems for industrial and commercial products.  Their literature 
includes an exposition (dated 1991) entitled "Fuzzy Logic, A 21st 
Century Technology: An Introduction to Fuzzy Logic and Its Application 
in Control Systems", which gives a forthright explanation of precisely 
what they call "fuzzy logic" and how it's actually implemented in a 
practical control system.

Suppose you're given three real-valued input signals X(t), Y(t), 
Z(t), and based on these inputs you need to control a real-valued 
output signal Q(t).  You first assign an intuitive verbal 
characterization to each of a set of values for each parameter, 
such as
                -20 = Very Negative       (VN)
                -10 = Somewhat Negative   (SN)
                  0 = Near Zero           (NZ)
                +10 = Somewhat Positive   (SP)
                +20 = Very Positive       (VP)

You, as the control engineer or system operator, are free to define 
the categories for each parameter in accordance with your knowledge 
of the system and what you think are the significant ranges.  (The 
design process is definitely fuzzy here.)

For simplicity, let's assume you have chosen the above five categories
for all three inputs and for the output variable.  Then the "control 
laws" are defined in the form of logical if-then statements.  For 
example, we might define the following three laws for our system:

  1. IF [X is Very Negative].AND.[Z is Slightly Positive] 
     THEN [Q should be Very Positive]

  2. IF [Y is Sightly Positive].AND.[Z is Very Negative]
     THEN [Q should be Slightly Negative]

  3. IF [X is Near Zero].AND.[Y is Near Zero]
     THEN [Q should be Near Zero]

The main advantages claimed for expressing control laws in this way 
are (1) it is more intuitive than differential equations, and enables 
you to capture your knowledge of how the system should work in everyday 
linguistic terms, and (2) the laws are naturally broken down into 
individual if-then statements that lend themselves to parallel 
processing.

Anyway, for each input variable you construct an interpolation table 
as shown below:

	     VN          SN        NZ          SP        VP
  1.0                                                              
	     /\          /\        /\          /\        /\
	   /    \      /    \    /    \      /    \    /    \
	 /        \  /        \/        \  /        \/        \
       /           /\        /  \        /\        /  \         \
     /           /    \    /      \    /    \    /      \         \
  0.0          /        \/          \/        \/          \         \
       ----------------------------------------------------------------
	     -20       -10          0        +10         +20

At any given moment, each input variable falls somewhere along the
horizontal scale, so you can determine the "degree of membership" of 
that variable in each of the five catagories.  For example, if X=+7, 
then its degrees of membership are VN=0.0, SN=0.0, NZ=0.3, SP=0.7, and
VP=0.0.  Now you insert all the degrees of membership for X,Y,Z into 
the control laws, and compute what Q "should be" based on each 
individual law.  The 'AND' operation is performed by simply selecting 
the minimum of all the degrees of membership in the IF clause.

So let's say we've determined from our three laws that the degree of
membership of Q in the five categories "should be"  

                     VP = 0.7 (from law 1) 
                     SP = 0.0  (not used)
                     NZ = 0.1  (from law 3)
                     SN = 0.0  (from law 2)
                     VN = 0.0  (not used)

To determine the actual value of Q at this instant, we draw the 
membership interpolation curves for Q, but we truncate each category 
at its membership level.  For our example this is illustrated below:

	     VN          SN        NZ          SP        VP
  1.0                                                              
							0.7
						       ________    
						     /         \
			   0.1                     /             \
			   ________              /                 \
  0.0   _________________/          \__________/                     \
       ----------------------------------------------------------------
	     -20       -10          0        +10         +20

Now we compute the "center of gravity" of these combined trapezoids to
give the final value of Q at this instant.  (It looks like it would be
about 12 in this example.)

That's it.  To be honest, my initial reaction to this method was 
that it's just a collection of simple interpolations supported by 
informal verbal rationalizations that attempt to achieve effective 
control without having to work with differential equations and 
"really understand" the system.  On further reflection, I suppose 
my definition of "really understanding" is biased toward the 
differential equation view, while in fact there may well be situations 
in which DIFEQs are not the optimum mode of description (such as
system with many non-linearities and discontinuities).  Also, from 
a pragmatic point of view, if people prefer this verbal/categorical 
approach, and if they can make it work (which they evidently can, at 
least in some applications), then I suppose it shouldn't be dismissed 
out of hand.  Whether a fuzzy approach could achieve the same level 
of design efficiency as the difeq approach in a given application is 
debateable, since the criterion for judging control system response 
is often somewhat subjective.

In any case, the techniques described above are not really new,
since the use of ad hoc interpolation schemes has been common 
practice in the design of control systems throughout history.  
By the way, the fact that the people who originally invented and 
applied these techniques had never heard of "fuzzy logic", and 
believed they were practicing "ordinary logic", seems to suggest 
that these techniques do not represent an essentially new or 
"different" way of thinking about the world, but that a new name
has been given to old ideas.

Also, I disagree with the report on one specific point.  It says the 
fact that the individual control laws act independently, and the 
results are combined only at the last stage to form Q, makes these 
control systems easier to test and verify, because it can be done 
piece-meal.  In my view, one of the major DISadvantages of this 
approach is that the use of so much arbitrary non-linear truncation 
and jagged interpolation makes the resulting overall system highly 
resistent to any concise mathematical analysis or characterization,
and the results of piece-meal testing would not necessarily reveal
all the potential operating characteristic of the entire system.

In a conventional system based on difeqs or discrete transforms we 
can determine the stability characteristics of the system throughout 
the entire operating envelope.  With a fuzzy system, my impression 
is that you just "try it and see".  Since it's impractical to "try" 
every possible dynamic condition the control might encounter during 
its life, it would be difficult to give absolute assurance that such 
a control system would be well-behaved in all cases.  Absolute 
assurance may not be important for the control of, say, a toaster 
oven, but it's definitely an issue for things like flight controls 
where in-appropriate response could be hazardous.

Return to MathPages Main Menu