Open-Source Internship opportunity by OpenGenus for programmers. Apply now.
In this article, we will discuss a few fundamental concepts that govern the functioning of Fuzzy Systems. We will also discuss some of their real world applications while comparing and contrasting them to Crisp (Hard Computing) Systems.
Table of contents:
- Introduction to Crisp System
- What Does 'Fuzzy' Mean?
- How Fuzzy Inference Systems Work
- Conclusion
Introduction to Crisp System
Before we talk about Fuzzy Systems, it's important for us to know about Crisp Systems. Crisp Systems (or traditional computational systems) follow a set of strictly defined rules in order to arrive at answers. These answers, assumimg that all of the mathematical conditions remain the same, will ALWAYS be the same, irrespective of when and where the computation took place. In other words, if the inputs and processing conditions remain the same, Crisp Systems will always produce the same results. They do not make approximations. They only produce precise results, with absolutely no scope for inaccuracies or imprecisions. This, however, comes with its own set of limitations.
Often, if a particular problem is highly complex, creating a mathematical model to solve that problem accurately can be a massive challenge. Even if we manage to create such a model, its complexity will likely lead to extremely long computation times (time complexity), and will lead to difficulties in memory management (space complexity), thus making it highly impractical for us to use Crisp Systems to solve such computationally expensive problems. This is why, even though Crisp Systems are better than Fuzzy Systems on paper (since Crisp Systems produce accurate results every time), there are times when it makes far more sense for us to allow for these small inaccuracies, imprecisions and approximations, and to use Fuzzy Systems instead of Crisp Systems.
The human brain is very good at performing tasks such as being able to recognize and classify images as 'X' or 'Y', but is not very good at quickly performing complex mathematical computations, such as finding the fifth root of 16,807. Computers, on the other hand, have historically been very good at performing such complex mathematical computations quickly, but have always struggled to perform tasks such as image recognition and classification, and it is that sphere of computation that Fuzzy Systems aim at tackling.
What Does 'Fuzzy' Mean?
In Hard Computing, we deal with 'crisp sets', where elements either belong to a particular set or they do not. For example, suppose we have a universal set A={1,2,3,4,5}, and a subset B={1,2,3}. Now, we can say that elements 1,2 and 3 all belong to subset B with an equal degree of belongingness (with value 1), and elements 4 and 5 do NOT belong to subset B (that is, they have a degree of belongingness equal to 0). Thus, if we represent the set as each element along with its degree of belongingness to the set (as ordered pairs), we can write B as:
B={(1,1),(2,1),(3,1),(4,0),(5,0)}
Or, in other words, 1,2 and 3 belong to B, whereas 4 and 5 do not belong to B.
The term 'fuzzy' essentially implies that these elements do not have to either belong fully or not belong at all, unlike in crisp sets. It is possible for elements to partially belong to a particular set, with varying degrees of belongingness, and not just 1 or 0. This is of importance, since in the real world, we often deal with complicated problems which cannot simply be solved in binaries. For example, if we ask someone if they liked a movie that they just watched, they'll most likely give us an answer along the lines of "I liked it a little" (closer to 0, say 0.3) or "I liked it a lot" (closer to 1, say 0.7) and not just "Yes" (1) or "No" (0). Thus, we can say that in fuzzy sets, every member of the set has a certain degree of belongingness to the set. This degree is called the degree of membership, and the function which decides this degree of membership is called the membership function. If we have a universal set A={1,2,3,4,5}, then a subset B would look something like:
B={(1,0.5),(2,0.3),(3,0.8),(4,0.7),(5,0.1)}
This implies that all of the elements 1,2,3,4 and 5 partially belong to set B with varying degrees of membership. This degree of membership is often denoted by the letter 'μ'.
How Fuzzy Inference Systems Work
Fuzzy Systems are implemented by a set of rules called fuzzy rules, which are defined on fuzzy sets. A non-fuzzy system has very discrete ways of dealing with rules- either a rule fires fully or it does fire not at all, depending on whether the expression in the condition specified is true or not. On the other hand, in fuzzy systems, the conditions are true to a certain extent and false to a certain extent. The degree of truthfulness and falseness decide the degree to which the rule fires. Hence, every rule is fired to some degree. The outputs of all of the rules are aggregated to get the system's final output.
In short, crisp inputs are applied to our model. These crisp inputs are then fuzzified by membership functions. Fuzzy rules are then applied on the fuzzified data. Once the fuzzy data has been processed, it is aggregated and then defuzzified. Finally, we obtain crisp outputs. We will take a closer look at all of these processes in future articles.
Conclusion
In this article at OpenGenus, we discussed some of the features as well as drawbacks of Hard Computing Systems, why we need to allow for some degree of uncertainty and imprecision, and some of the fundamental concepts behind Fuzzy Systems. In future articles, we will dive deeper into Fuzzy Systems and discuss some of the operations that can be performed on fuzzy sets and relations. We will also learn about fuzzy propositions, fuzzy implications and fuzzy inferences, which will give us a complete idea as to how we can apply the concepts that we've learned in this article.
Thanks for reading!