Fuzzification
Fuzzification is the process of getting a precise, crisp value which could be used in Boolean Logic (comparing it to other values), and turning it into a fuzzy value, i.e. a quantified value compared to a set (or several sets) of values.
For example, let’s take the speed of a car. 87kmph is a crisp value. With Fuzzy Logic, we are not going to compare it to other crisp values, but we want to quantify it, i.e. be able to answer these questions: Is it fast? Is it slow? The answer being fuzzy too and not simply true or false - we are not going to just say that this speed is fast because it is more than 50kmph, we need to quantify how fast it is.
In this case, what we need to do is define what fast and slow mean to be able to answer the question. And fast and slow are not single values, they are sets of values which are more or less fast and slow.
Fuzzification is just that: defining sets of values.
Sets
A set of values associates to every single value a truthiness or veracity which defines how much the value is included in the set. Usually, this veracity is implemented as a value in the range [0, 1] where 0 means the value is not at all in the set, and 1 that the value is exactly what the set defines.
Back to the speed example, fast can be all values which are higher than 50kmph, 250kmph being the fastest one, while slow may represent values under 50kmph, the slowest one being 0kmph.
As you can see, sets can overlap, and it is actually better if they overlap to be able to precisely quantify any crisp value.
45kmph is at once just a little bit fast and slightly slow.
Operators: IS and IS NOT
This defines the Fuzzy operators IS
and IS NOT
: they are the operators which get the veracity of a crisp value in a given set, like in the statement IF 87kmph IS fast
or IF 87kmph IS slow
or IF 87kmph IS NOT slow
They check the inclusion of the value in the given set.