[om-list] Fuzzy Logic Operators
Mark Butler
butlerm at middle.net
Sat Oct 11 22:54:11 EDT 2003
Fuzzy Logic Operators
Traditional fuzzy logic uses the non analytic functions min() and max()
or logical and and logical or operators respectively. It is easy to see
that min(x,y) = x AND y and max(x,y) = x OR y for x and y in {0,1}.
However, the correctness of the behavior in the zone in between the
endpoints is not so obvious.
The first problem with min() and max() functions is that the output is
insensitive to one or the other of the inputs over virtually the whole
range. Humans arguably consider incremental evidence to be contributory
even in the presence of much stronger evidence, which makes this an
unwelcome behavior in a fuzzy logical operator. In addition, min and
max are only piecewise analytic, with no derivatives along the boundary
x = y. That makes them highly unsuitable for symbolic processing.
Let use consider a linear alternative using [0,1] fuzzy logic. x*y is a
very nice candidate for an AND function that matches all the boundary
conditions. If we further guess that (1 - x) makes a nice NOT function,
we can apply Demorgan's law and get an OR function of x + y - x*y.
Perfunctory testing verifies that this meets all the boundary conditions
required of an OR function as well. This set of functions is analytic,
sensitive to all inputs, and easy to manipulate symbolically.
Furthermore we can transform into operator functions for [-1,+1]
symbolic logic by substituting (z + 1)/2 for each z, yielding - x for
NOT(x), (1 + x + y - x*y)/2 for OR(x,y) and (x*y + x + y - 1)/2 for
AND(x,y). The NOT function is simpler , but the AND and OR functions
are somewhat more complex. What is interesting to see is that in
bipolar form, the AND and OR functions are very similar, where in
monopolar form they are quite different.
A summary follows:
Operator Traditional Linear Monopolar Linear Bipolar
---------- ----------- ----------------- --------------------------
NOT 1 - x 1 - x - x
AND min(x,y) x * y ( x*y + x + y - 1 ) /
2
OR max(x,y) x + y - x*y ( 1 + x + y - x*y ) / 2
To demonstrate the advantages of linear form, I will list the derivative
of each of these functions with respect to x
Operator Traditional Linear Monopolar Linear Bipolar
---------- ----------- ----------------- --------------------------
NOT -1 -1 -1
AND 1 or 0 y (y + 1) /
2
OR 0 or 1 1 - y (1 - y) / 2
The first derivative of the traditional AND function with respect to x
is 1 for all x < y, and 0 for x > y. Likewise 0 for x < y and 1 for x >
y for the traditional OR function. This discontinuity is very
inconvenient in many applications, so the bilinear analytic forms should
be strongly preferred for that reason among others.
- Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://six.pairlist.net/pipermail/om-list/attachments/20031011/9a7c0f54/attachment.html
More information about the om-list
mailing list