Jump to content

Combs method

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Furrykef (talk | contribs) at 21:20, 30 September 2004 (fixes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Combs method is a method of writing fuzzy logic rules described by William E. Combs in 1997. It is designed to prevent combinatorial explosion in fuzzy logic rules.

It takes advantage of this logical equality: [(p and q) then r] = [(p then r) or (q then r)].

Combinatorial explosion

Suppose we have this simple fuzzy associative matrix for controlling the angle of a cannon:

Distance/Angle Far away Medium dist. Very near
Low much higher higher hold
Medium higher hold lower
High hold lower much lower

Here we have two variables and nine rules, as the number of rules is the number of sets for "distance" times the number of sets for "angle". This translates to the rules:

IF Distance IS FarAway AND Angle IS LowAngle THEN AimMuchHigher
IF Distance IS MediumDist AND Angle IS LowAngle THEN AimHigher
IF Distance IS VeryNear AND Angle IS LowAngle THEN HoldAim

...and so on for every cell in the matrix.

If we were to add only one more set for both "distance" and "angle", the number of rules would become 16, and if we added one more to that, making 5 sets, the number would be 25. Now suppose we added a third variable that also has 5 sets, then the number would be 125. This is combinatorial explosion: adding more sets or more variables causes a disproportionate explosion in the number of rules. A realistic system might have 5 variables each with 5 sets, which would have 55 = 3125 rules! One possibility, of course, is to not bother writing a rule for every single possible combination. Another possibility is to use the Combs method.

The Combs method

Recall that [(p and q) then r']' = [(p then r) or (q then r)]. We could take advantage of this and make a different table:

Distance Far away THEN higher Medium dist. THEN hold Near THEN lower
Angle Low THEN higher Medium THEN hold Near THEN lower

Now we have six rules, one for each set per variable. (It looks like the improvement is small: we only eliminated three rules. However, we have produced a linear system, so our hypothetical example with 5 variables with 5 sets each would need only 25 rules instead of 3125.) The table expands to this:

[IF Distance IS FarAway THEN AimHigher OR
 IF Distance IS MediumDist THEN HoldAim OR
 IF Distance IS Near THEN AimLower]
OR
[IF Angle IS LowAngle THEN AimHigher OR
 IF Angle IS MediumAngle THEN HoldAim OR
 IF Angle IS HighAngle THEN AimLower]