[om-list] Fuzzy Set Theory

Mark Butler butlerm at middle.net
Wed May 2 23:05:49 EDT 2001


Hello everybody,

Since Tom is such a big fan of fuzzy set theory, I thought I would write a
little commentary on how similar it is to wave functions in quantum mechanics.

In QM, a single particle in one dimension is represented by a complex valued
wave function psi(x) that is usually interpreted to be related to the
probability density P(x) that the particle is located at any given point. 

However, we could just as easily assume that the particle really is fuzzy and
spread out over a wide range of coordinates and P(x) is the particle fuzz
density instead.  If we do this, we get something that is very useful for
fuzzy set calculations, especially if we have partial knowledge.

A typical question we might want to ask about our particle is where is it?, or
rather what x coordinate does it have?  Now if our particle is spread out, it
doesn't have a specific x coordinate, so we might ask instead, what is the
centroid of the particle's density function?

The way we do that is we integrate x * P(x) over all space and divided by the
integral of P(x) over all space.  If P(x) is normalized, we can dispense with
the second step.  A QM person would call this "the expected value of x"
because they expect this wave to turn into a particle at any moment, but if
the particle really is fuzzy we just have to call it the particle centroid
coordinate.

Now what if we want a fuzzy truth value for the proposition that the particle
is  located inside a box B.  Well, we just create a normalized box function
b(x) that is non-zero inside the box and zero everywhere else and insert it
where the "x" was as follows:

w = Integrate [ b(x) * P(x) ]

w will be a number between zero and one that corresponds to how much of the
particle is in the box.

Now what if we had another box C, with box function c(x) and we wanted to
calculate the truth of the proposition that the particle is in box B or box C.

Well we could do that as follows:

w = Integrate [ max(b(x),c(x)) * P(x) ]

Note that the max() function is nonzero in all the places that are overlapped
by either box and zero elsewhere.

What if the boxes overlap and we want to know the truth value of the
proposition that the particle is covered by both boxes.  How about:

w = Integrate [ min(b(x),c(x)) * P(x) ]

Note that the min() function is zero everywhere not covered by both boxes.

The next logical assumption is to have fuzzy boxes to represent propositions
like "the particle is near this position" - We could represent that as an
upside down triangle function centered on the specified position or we could
use a smoother function like a normal distribution e.g. exp((x-p)^2).

Now I submit that we can represent any proposition about the particles
position in terms of some normalized function q(x) that we can test by
integrating in a similar manner.

Well what if we want to deal with propositions with an additional attribute,
say the y position?  Just make all the functions two dimensional:

w = Integrate [ q(x,y) * P(x,y) ] 

Now P(x,y) represents particle fuzz spread in two dimensions and q(x,y)
represents an arbitrary proposition about the particle that depends on either
or both of those two attributes.  We can extend to an arbitrary number of real
attributes this way.  The only problem is storing & conceptualizing
multi-dimensional particle distribution P.

One solution is to use fuzz only to represent propositions and store P as a
collection of single valued attributes, X, Y, Z,...  This is what most real
world fuzzy logic does for performance reasons.  However, for analysis reasons
we can think of such a representation as being a three dimensional Dirac delta
function dirac_delta(x-X,y-Y,z-Z) that is pretty much zero every where except
at a point where it is infinite, with the crucial property that it integrates
to one.

The Dirac delta function has the nice property that it cancels out integrals
so that our q(x,y) proposition test reduces as follows:

w = Integrate [ q(x,y) * dirac_delta(x-X,y-Y) ] =>

w = q(X,Y)

This of course is a couple of orders of magnitude simpler, provided the
approximation that the particle itself isn't fuzzy is a good one.

Even if the particle is not fuzzy, we can use the same methodology to deal
with partial knowlege about a particle in the form of probability densities.  

Probability is considered by many to be suspect, because any given probability
does not generally correspond to a *real* property of an object, but is rather
a property of our current *knowledge* about an object, which at the beginning
may have absolutely nothing to do with the actual values of the object's
attributes.

For example, let us say that all we want to model New York City, but have no
clue where it is.  In *desperation*, we assign New York a probability
distribution that is uniform over the whole surface of the earth.  We can then
ask a question like did Event A or Event B (with known coordinates and extent)
happen in New York?  The answer will be the same for any event on the earth's
surface because we know nothing about where New York City is.

We might learn that New York is located south of Boston, north of Richmond,
and 1000 miles from St. Louis.  That would lead to a new probability density
function, that we could evaluate exactly the same way as if we believed New
York City was actually fuzzy, which of course it is.

I believe that a joint probability / fuzziness function (e.g. probability at a
point that the fuzz has a certain value) is overkill unless we are modeling
something we can actually measure, such as the altitude of the earth's
surface, rather than fuzzy approximations like the New York-ness, desert-ness,
or forest-ness of any given location.  

You may be interested to know that there is no known way to measure a QM wave
function - Realists usually believe they are there, but physicists can
currently only use them as models to get statistical predictions for
measurements of whole particles.  Indeed, they assign initial wave functions
"in desperation", exactly the way we did with New York.  Guaranteed Nobel
prize to anyone who can take a snapshot of an actual wave function.

Finally, note that time variance introduces multiple values for attributes of
an object, so even in the simplest case we have to think of our attributes as
functions of time.  Without time variance, a proposition about a set of single
valued objects follows the law of the excluded middle (LEM):

q(X) or not q(X) = True

e.g. He is either inside the box or outside the box.

However if we have time variance then propositions like:

"He is always inside the box"

do not follow the LEM.

(He is always inside the box) or (He is always outside the box) is not true if
he spends time in both places.  The only equivalent is to use denial instead
of negation:

("He is always in the box" or ("He is always in the box" is not true)) is
true.

If we use standard fuzzy logic we have a similar problem.

The use of min() and max() in fuzzy logic for "and" and "or" is exceedingly
inconvenient because equations containing them are not easily manipulable.  It
would be really nice to find analytic functions for "and" and "or" so that
symbolic reductions could be done on predicates in fuzzy logic.  Any ideas
from the math wizards out there?

One way to test for sanity besides the standard boundary conditions is to try
to make DeMorgan's theorem and the fuzzy LEM valid:

1. and(not(a(x)),not(b(x))) = or(a(x),b(x))
2. or(not(a(x)),not(b(x))) = and(a(x),b(x))
2. or(a(x),not(b(x))) = normalized(1).
    
- Mark




More information about the om-list mailing list