A formal method of applying uncertainty to numbers and arithmetic, related to fuzzy logic.

Fuzzy numbers are sets of continuous real numbers. The conventional definition of a set defines certain objects to be inside the set while everything else is outside the set. A fuzzy set, however, defines a membership function ranging from 0 to 1 that states the degree to which any object belongs in the set. Thus, if we wanted to represent the set of tall people, Danny DeVito might have a membership value of 0.0, Kareem Abdul-Jabbar might have a membership value of 1.0, and I would likely fall somewhere between. We can define an alpha-cut on a fuzzy set to be the members whose membership function is greater than alpha; thus, we can decide what "tall" means by picking an alpha to suit us.

A fuzzy number is a fuzzy set of real numbers with a few restrictions:

  • At least one element has a membership function of 1
  • The membership function is continuous
  • The membership increases monotonically as it approaches "1" from either side.

The membership function for a fuzzy number can look like a triangle, a trapezoid, a gaussian distribution, etc. If we pick some number alpha between 0 and 1 as a minimally acceptible membership value, then we can refer to all fuzzy numbers as intervals whose members have values greater than alpha. (This is termed an alpha-cut.) For example, the fuzzy number [6,8] could be represented with a triangular function centered at 7 and an alpha-cut at 0.5:


1.0 - - - - - - - - - - -+- - - - - - - - - -
                        / \
                       /   \
                      /     \
0.5 - - - - - - - - -/- - - -\- - - - - - - - 
                    /         \
                   /           \
                  /             \
0.0 -----------------------------------------
         ...  4  5   6   7   8  9  10  ...

Arithmetic functions on fuzzy numbers are defined as:

  • [a,b] + [d,e] = [a+d,b+e]
  • [a,b] - [d,e] = [a-e,b-d]
  • [a,b] * [d,e] = [min(ad,ae,bd,be),max(ad,ae,bd,be)]

Note that a real number r can be represented by the degenerate case [r,r], and when applied to the operations listed above, you get standard arithmetic.