From: erik@til.com (Erik Horstkotte)
Subject: Re: WHEN and WHY should I use FUZZY logic?
Reply-To: erik@til.com
Organization: Togai InfraLogic, Inc.
Date: Thu, 21 Jan 1993 19:03:20 GMT

In article 8nH@cpqhou.se.hou.compaq.com, pipkinsj@cpqhou.se.hou.compaq.com (Jeff Pipkins ) writes:

>I want to know WHEN I should use it, and WHY.  What will I gain from it?

Here are some WHENs and WHYs.  The list is by no means exhaustive, but it will
give you an idea.

o WHEN you are automating a system that historically has had a human operator.
  WHY? It turns out that it's fairly easy to encode a human operator's knowledge
  about controlling the system in fuzzy terms, yielding a reasonable controller
  that can easily be tuned and improved.  This is also applicable in non-control
  fields, of course.

o WHEN you can describe a mathematical system you want to implement more easily
  by rules than by other approaches.  This arises in financial and management
  environments, for example.  WHY?  Are you a masochist? :-)

o WHEN you need to define a nonlinear mapping that allows making local changes
  without redoing the whole system.  WHY?  It's frequently useful to do so.

o WHEN the ability to hand-tune the system is an important concern.  WHY?
  Because fuzzy expert systems are relatively easy to tune (by hand or
  automatically).

o WHEN other control techniques don't accomplish what you need done.  WHY? It's
  another possible approach.

>Some say shorter and more simplified development time.  But that is a
>rather, um, vague answer.  

You want an equation, maybe?

>There are many devices which [regretably?] can only be turned on or off.  
>Examples are an electric water heater, electric stove, and an air
>conditioner.  I do not understand how fuzzy logic can do anything but
>complicate these matters.

Electric water heaters aren't necessarily on/off devices.  We've been working
on one (on and off :-)) that's an inline flash heater (no tank) where the
heating unit is actually composed of several resistive heaters which can be
switched on and off separately.  The heaters are physically located in series
down the water pipe, so there are interesting delay effects involved.  Fuzzy
control seems (so far in development) to be pretty good at choosing which
elements to turn on and off and when to keep a constant output temperature
in the face of varying water flow.

Electric stove?  Hum...  Unless it's a *really advanced* one with some kind
of "auto-cook" mode, I can't see any point in using fuzzy logic either.

The new fuzzy logic-controlled A/C units in Japan aren't on/off devices
either.  Instead, they have a variable-rate compressor unit that allows the
control system to adjust the rate at which heat is removed from the room
to control the temperature, instead of cycling on and off.  According to
Mitsubishi, with whom we developed the control system for the (I kid you
not) Beaver Warp series of A/C units, they are saving about 30% of the
power consumption (I suspect this is only in a situation where the older
model cycled on and off *a lot*).

>One explanation was that if you set your AC on say, 75F, you don't want
>the AC to oscillate on and off as the temp goes below and above that
>point.  But that's not how thermistats work anyway.  Either they have
>a trigger point and a setting for how long the AC stays on, or they
>have two trigger points, one for turning it on, the other for turning
>it off.  Either way, you've basically defined "too cold" and "too hot".
>Okay, so now we use fuzzy logic, and we start by defining how cold and
>how hot each degree is.  Then we fuzzify everything, apply rules, and
>then defuzzify it.  In the end, we still have one basic binary decision:
>either we turn the AC on, or we turn it off.  There can be no added
>"smoothness".  It's just on or off.  I don't get it.

But you might be able to make better decisions about *when* to turn it on
and off.  We haven't tried this angle ourselves, but it's a possible line
of investigation.  I don't expect it would help much.

>Okay, so what about situations where the output is not binary?  When I
>ask this question, people start telling me about a robot that's balancing
>a yardstick (or meterstick) on it's hand.  Well, that's a real neat
>thing, and if I ever have to write one of those, I'll think about it.
>But I really don't understand why a polynomial wouldn't work as well.

Let's back off for a minute and look at what things a fuzzy expert system
does from a mathematical point of view.  Basically, a fuzzy expert system
is a (potentially) nonlinear mapping between an input space and an output
space.  Given this, it's obvious that you can, indeed, create a multi-
variable polynomial that will approximate any mapping that could be created
by a fuzzy expert system.  There are several problems with using a
polynomial to do this, however.

1. To approximate the I/O surface of the fuzzy system "well enough" will
   probably require a rather high-order polynomial, unless the I/O surface
   is *very* smooth.

2. One of the nice characteristics of fuzzy expert systems is that you can
   make local adjustments to the I/O surface without global effects.  For
   example, if I change the output membership function in one rule, it
   affects the outputs only for the area where that rule's premise has a
   non-zero truth value.  Assuming that the input membership functions are
   triangular, and that the rule premises each test all input variables and
   use only the AND connective (no ORs), then this area of the I/O surface
   is a rectangular prism.  For a two-input system with these restrictions,
   the area affected is a rectangle.  This makes tuning a fuzzy expert
   system relatively easy.

   For a polynomial, the opposite is true.  If you want to change the
   value of an output at a particular value of the inputs, the entire
   polynomial has to change, or the entire I/O surface changes.  This makes
   tuning rather more difficult.

In fact, fuzzy expert systems are *very* similar mathematically to a close
cousin of polynomials - splines.  As I'll discuss more the article I
promised earlier about fuzzy control, you can think of a fuzzy expert system
as a generalized multidimensional spline system.

>I'm trying to keep an open mind about this whole fuzzy thing, but I just
>can't imagine a situation where I could benefit from it.  I'm willing to
>assume that the problem is my ignorance...  So, enlighten me!

Hopefully, this has shed some light.  Fire another salvo if it doesn't. :-)
---
Erik Horstkotte, Togai InfraLogic, Inc.
The World's Source for Fuzzy Logic Solutions (The company, not me!)
erik@til.com, gordius!til!erik - (714) 975-8522
info@til.com for info, fuzzy-server@til.com for fuzzy mail-server

Newsgroups: comp.ai.fuzzy