algorithmfuzzy

Reinterpretation of fuzzy number


I have a fuzzy number of "being about 20 years old", e.g., with these values of [age, degree]: [10, 0], [15, 0.5], [20, 1], [25, 0.6], [30, 0.3], [35, 0])

The degree to which a number is consider about 20 is zero for ages <= 10 or >= 35.

It rises or falls linearly between the various ages to reach the target (such as 0.5 at age 15, a step of 0.1 per year).

How can I calculated degrees of "being at least 20 years old"? Can I just sum the the degrees from the original number?


Solution

  • No, I wouldn't be summing those degrees. While "is about 20 years old" may be fuzzy, "is at least 20 years old" is not.

    As those tuples represent how "about 20 years old" an age is, with the "about-ness" varying linearly between the data points, that means you have something like:

    Age about-ness
    <=10 0%
    11, 12, 13, 14, 15 10, 20, 30, 40, 50% (0 to 0.5 in 5 steps)
    16, 17, 18, 19, 20 60, 70, 80, 90, 100% (0.5 to 1.0 in 5 steps)
    21, 22, 23, 24, 25 92, 84, 76, 68, 60% (1.0 to 0.6 in 5 steps)
    26, 27, 28, 29, 30 54, 48, 42, 36, 30% (0.6 to 0.3 in 5 steps)
    31, 32, 33, 34, 35 24, 18, 12, 6, 0% (0.3 to 0.0 in 5 steps)
    >35 0%

    That means the "is at least 20 years old" can be represented very succinctly as [19,0], [20, 1], [999_999, 1].

    In other words, anything 19 or less is "100% no", from 20 to a ridiculously old age is "100% yes" with no gradual increase or decline. If the final "about-ness" just maintained the last value up to infinity, you could even get rid of that large age knowing that [20, 1] would carry forward forever.


    If you instead wanted the criteria to be "is about 20 years old but definitely at least 20" (something once again fuzzy), you could just use ([19, 0], [20, 1], [25, 0.6], [30, 0.3], [35, 0]), getting rid of the possibility that any item under 20 could qualify.


    If you wanted the criteria to be "is at least about 20 years old", that would involve keeping the fuzziness below the age but ensuring it stays at 100% above, such as [10, 0.0], [15, 0.5], [20, 1.0], [999_999, 1.0].