Foundations & earlier writing · March 20th, 2018
Fuzzy Sets
Fuzzy sets are an extension of set theory proper. These guys are quite useful for problems where elements are more or less as opposed to the classical True or False. In other words, truth is generalized to degrees. Such elements have deep applications in fields such as artificial intelligence.
Set Theory Reminder
Let's start with regular sets so that the difference between classic and fuzzy is more clear (see what I did there)? For an example, let's use days of the week.
A week consists of seven days (elements): Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday. Thus, we can represent the set of days of the week as follows.
W = {Mo,Tu,We,Th,Fr,Sa,Su}
A week has two subsets: weekdays and the weekend. We can represent those as follows.
D ⊂ W where D = {Mo,Tu,We,Th,Fr}
E ⊂ W where E = {Sa,Su}
Yes, some of you might classify the element Fr as ∈ E instead of ∈ D. That's fine too.
Easy enough, right? Are fuzzy sets any more difficult? Let's just see!
A Fuzzy Question
We can ask if Tuesday is a weekday. The answer is a Boolean 'Yes' or 'True'. In decimal, we answer '1'.
But what about Friday? The answer is not as straightforward as we saw earlier. While I might classify Friday as as weekday, others surely place Friday in the weekend subset. As a result, the answer is, depends.
Depends can be represented by the fuzzy value 0.5 because 0.5 is the midpoint between 0 (no|false) and 1 (yes|true). However, Friday is closer to the weekend than Thursday, thus we can adjust the value to be closer as well; say, 0.8 because Friday is rather close to the weekend even when the day is not itself an element in the weekend subset.
Let's ask a slightly more abstract question now: To what degree are days of the week in the set of weekend days?
Fuzzy Sets
We need to extend the concept of fuzziness to all days in the week. The result will be a fuzzy set, as follows (starting with Mo and ending with Su).
F = {0,0.25,0.50,0.75,0.8,1,0.95}
Note: F should have a subscript ~ but the equation editor is being finicky today.
Here, Mo is strictly NOT a weekend day. The days in the range of Tu to Fr are increasingly more weekend day like. Sa is strictly a weekend day and Su is marginally less so.
Pretty cool, right?
Wrap Up
The days of the week example is a simple illustration of fuzzy sets. The applications of fuzzy sets are quite powerful when you begin to imagine how a computational mind may classify degrees of an abstract quality (e.g. truth, redness, temporal proximity, etc.).
Can you think of some practical implementations?