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.