| |
I am trying to extend the binary (boolean) logic into a somewhat
"fuzzy" one. I consider the binary logic to be too restricted.
Terms:
| R is the set of real numbers |
| S is a subset of R |
| B is the set on which the logic is applicable |
| 0 is a specific member of B, with the meaning of "completely
false" |
| 1 is a specific member of B, with the meaning of "completely
true" |
| "-" is the subtraction operator in R |
| "+" is the addition operator in R |
| "*" is the multiplication operator in R |
| "x" is the set multiplication operator |
| "==" means "is defined as" |
1. Binary logic (definitely true, or definitely false)
B1 = {0, 1} a, b in B1
Three basic operations: non, and, or
non
| a = 0 non a = 1 |
| a = 1 non a = 0 |
and
| a = 0, b = 0 a and b = 0 |
| a = 0, b = 1 a and b = 0 |
| a = 1, b = 0 a and b = 0 |
| a = 1, b = 1 a and b = 1 |
or
| a = 0, b = 0 a or b = 0 |
| a = 0, b = 1 a or b = 1 |
| a = 1, b = 0 a or b = 1 |
| a = 1, b = 1 a or b = 1 |
Observation: In binary logic, a and (non a) is always 0
(false), a or (non a) is always 1 (true).
2. First-grade fuzzy logic (probabilities)
B2 = [0, 1] a, b in B2 (B2 is a part of R, the set of
real numbers)
| non a == 1 - a (with "-" being the minus
operator in R) |
| a and b == a * b (with "*" being the
multiplication operator in R) |
| a or b == non ((non a) and (non b)) |
Observation: In fuzzy logic, "tertium non datur" (there's no
third possibility) no longer holds. In other words, a and (non a) can
be different than 0 (not entirely false), and a or (non a) can
be different than 1 (not entirely true).
3. Second-grade fuzzy logic (probability ranges)
B3 = [0, 1] x [0, 1] a, b in B3 ("x" is the
set multiplication operator)
(In this case, a member x of B3 has the form of a tuple (x1; x2).)
| non a == (1 - a1; 1 - a2) |
| a and b == (a1 * a2; b1 * b2) |
| a or b == non ((non a) and (non b)) =
(a1 + b1 - a1 * b1; a2 + b2 - a2 * b2) |
4. Third-grade fuzzy logic (probability functions)
In this case, the probability is no longer fixed (as a number or an
interval), but depends on a variable which is a member of S (a subset of R).
B4 = {f : S -> [0; 1]} 0 == f(x) = 0 1 == f(x) = 1
a, b in B4(S) - that is, a certain B4; a and b are actually a(x) and b(x)
| non a == -a(x) == 1 - a(x) |
| a and b == a(x) * b(x) |
| a or b == non ((non a) and (non b)) =
a(x) + b(x) - a(x) * b(x) |
5. There could be a fourth-grade fuzzy logic, if the functions can
have any real result (not only in the [0, 1] interval), if we also add a
"mapping function" which takes the result and "maps" it into
the [0, 1] interval. But I really don't know how would I interpret the meaning
of "and" applied to two such functions :)
Ok, that was it. I don't know how useful this was (if at all <g>). But
it was a whim anyway, not intended to have any usefulness.
This page was last updated on 18 Oct 1999.
|