Newsgroups: comp.ai.fuzzy
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!howland.reston.ans.net!swrinde!cs.utexas.edu!venus.sun.com!nntp-hub2.barrnet.net!news.Stanford.EDU!rpal.rockwell.com!planets!slc
From: slc@planets.risc.rockwell.com (Steve Chiu)
Subject: Numerous Antecedent Architecture
Message-ID: <1995Jul21.191534.13774@planets.risc.rockwell.com>
Organization: Rockwell International Science Center
Date: Fri, 21 Jul 95 19:15:34 GMT
Lines: 85


Mark Hunter asked about how to handle systems with a large number
of inputs without exponential growth in the number of rules.  There
are several ways to achieve this.

One approach is not to use a grid parition of the input space
(such as a FAM), but to use either a tree partition or a scatter
partition, as illustrated below:

Grid Partition
 --------------------
|          |        |
|   R1     |   R2   |
|          |        |
-----------|--------|
|          |        |
|   R3     |   R4   |
|          |        |
|-------------------

Tree Partition
 --------------------
|          |        |
|          |   R2   |
|          |--------|
|    R1    |        |
|          |   R3   |
|          |        |
|-------------------

Scatter Partition
 ------------------
|                  |
|  -------         |
| |  R1   |        |
|  -------         |
|           -----  |
|          | R2  | |
|          |     | |
|           -----  |
 ------------------

When using scatter partition, one must use Gaussian or bell shaped
membersip functions because triangular/trapezoidal membership functions will
result in "holes" in the input space where no rule fires.

You might also consider using the Takagi-Sugneo type of fuzzy rules, where
the conclusion is a linear equation in the input variables.  With this type
of rules, often you really need only a few input variables in the antecdents.
Let's take a flight control application as an example.  Suppose you have a
number of state variables x1, x2, x3, ..., and dynamic pressure Q and
Mach number V as input.  You can implement a gain-scheduled type of
nonlinear controller by using rules of the form:

if Q is high and V is high then output = a1*x1 + a2*x2 + a3*x3 + ...

In this way you can have a controller that makes good use of all the
input variables, and yet have a reasonably small number of rules.

Another approach is to divide the rulebase into two modules, one module
uses just a few input variables to provide a nominal output, while the
other module uses a large number of input variables to detect exceptions
and adjust the nonminal output.  The key idea behind this approach
is that exception conditons correspond to only a few regions in the input
space, and hence only need a few rules to describe them (i.e., you don't
need to consider all possible combinations of input variables or conditions
when writing the rules for exception handling).  The output of the controller
can be either a weighted average between the output of the nominal
control module and the output of the exception handling module, or it
can be the sum of the output of the two modules.  This approach was used in
the paper "Fuzzy Logic for Control of Roll and Moment for a Flexbile Wing
Aircraft," S. Chiu, S. Chand, D. Moore, A. Chaudhary, IEEE Control Systems
Magazine, June 1991.

Hope this helps.

-------------------------------------
Stephen Chiu
Rockwell International Science Center
1049 Camino Dos Rios
Thousand Oaks, CA 91360, USA
Phone: 805-373-4408
FAX: 805-373-4383
E-mail: slc@risc.rockwell.com
-------------------------------------
