Fuzzy Logic Primer |
This section is not intended to explain fuzzy logic in-depth. What I do explain here is a quick glance at the most important things about fuzzy logic as it pertains to my project. There are books which can describe fuzzy logic better than I ever could. I can't recommend one over another to you, but I suggest going to the library and seeing what you can find on the subject. Another great resource is of course, the Internet. Wikipedia has a very succinct description of fuzzy logic. It's a good place to start reading. A more complete description can be found here. Or, you may want to read my full project report (PDF), which goes into greater depth than I do here. Alright, let's get started. Fuzzy logic departs from "traditional" logic in that it does not use "crisp" sets. Let's say that our universe of discourse is all non-zero numbers. Then, we can classify all such numbers in one of two sets: the set of positive or the set of negative numbers. A number must belong to one set or the either. In crisp logic, a number cannot have partial membership in one set and partial membership in another. Either it belongs in that set or it doesn't. Fuzzy logic, however, allows us to have such partial membership. In fuzzy logic, we can define an element The next thing we need to discuss are linguistic variables. These are the variables which are used in fuzzy logic. Linguistic variables must be defined in terms of membership sets. A linguistic variable can have anywhere from one to an unlimited number of membership sets. Let's illustrate this with an example. Say you have a variable named So in the above diagram, you can see that if we have $67.50, we belong to the A fuzzy logic control system consists of a series of at least one linguistic input variable and one linguistic output variable. The inputs and output are related by a series of linguistic rules. These are simply a number of IF Note that our output So once you have a set of rules, how do you get something useful out of the control system? That process is called defuzzification. For a given set of crisp input values, the variables are fuzzified through the membership sets, the set of rules involved is determined, and the output is defuzzified to arrive a crisp value. Defuzzification is a somewhat difficult process to explain in just a few sentences. Essentially, what is determined is exactly how much each of the rules has an influence on the output. We can do this in several ways, two popular techniques are a centroid calculation or a center of area calculation. If this sounds cryptic to you, I strongly suggest you refer to the above sources I mentioned. That is, in a few paragraphs, how a fuzzy logic control system works. I again apologize if anything is unclear, but I urge you to do further background reading. |