Essentially, the idea is that traditional logic has two truth values (yes and no) and in many situations, is not useful. The example I was given to explain this was a traditional-logic view of HVAC. The temperature was too cold. (this is an example given in Indiana during December. In August I might have started with too hot.)
Anyway, the furnace starts up, blowing full blast until it is too hot. Then it shuts off as too cold. I think of this as a human-comfort problem, but I am told it is also an efficiency problem. Each time, the furnace must itself become warm before it can start warming the system it starts.
Compare with a fuzzy system with the following values: Way Too Hot, Too Hot, Just Right, Too Cold and Way Too Cold. We start at Way too Cold, start the furnace, and race until we're at Too Cold. At this point, the furnace starts slowing down, and the furnace stays at this level when it gets the Just Right signal. It'll pull back some more if it gets a Too Warm signal, and will eventually get to just right.
My wife's van has this sort of "oversteering" problem with the Cruise Control, especially right around 55 MPH. Again, rapid speed-up slow-down oscillation is not a particularly happy thing in human comfort.
The annoying thing is that while it is (now) an obvious and good thing, some confuse it with Wiki:FuzzyThinking (a topic I don't particularly want to get into here). DaveWiner talked derisively about it in a recent Scripting News bit.
One difficulty with FuzzyLogic is that it is often easily replaced by a binary logic with more decision points. The usual problem that fuzzy logic tries to solve is minimizing oscillation around a particular decision value, like a furnace continually turning on and off, or adjusting a throttle to maintain a certain speed.
For example, consider a furnace that has high, low, and off settings. A simple binary solution might turn the furnace on HIGH if the temperature is 5 degrees below the requested setting, and on the low setting if the temp. is lower than the setting. This can lead to an oscillation of turning on the low setting frequently for brief times, especially as the sensor temperature may fluctuate naturally as air circulates.
A "fuzzy logic" solution may involve a more complex calculation (defuzzification) of when to turn on and off the furnace. However, much of the time a binary decision can be made with the same effects, especially if one is willing to tolerate more variance in exchange for less oscillation. For instance, one might only turn on the furnace if the temperature is 2 degrees colder than the setting, and keep the furnace on low until the measured temperature is 2 degrees more than the requested setting. In this case, it takes a 4-degree change in temperature to alter the setting of the furnace.
Fuzzy logic can be very useful at times, especially when a simple analog-like curve can replace many binary decisions. It is not always easy to use, however, and can make systems difficult to test (especially if the underlying systems don't follow smooth response curves). Often the ease of design and testing are more important than the extra precision one can get from fuzzy logic.
This describes a simple fuzzy controller in a simple environment. Fuzzy logic can actually greatly simplify calculations in a complex environment, especially by using fuzzy contradictions to average out the errors at the edges of knowledge. That is, you may be 25% sure you should go faster, and 34% sure you should slower, so you adjust the speed to be slower, but not too much slower. Then, the situation will approache the range where your knowledge is stronger, at which point you have a good rule to deal with the situation.
Fuzzy logic also works well in "measure of confidence" situations, where people's confidence for p plus their confidence for not p do not sum to 1.0. In that case, we can propogate the confidence using fuzzy functions.
Many, many, many more situations exist where fuzzy logic is useful. Getting rid of the Principle of Excluded Middle solves a lot of argumentative confusion. Then again, fuzzy logic is not a correct logic because the intersection of the fuzzy set X and X' is not 0, and the union of X and X' is not S. Or at least it isn't a superset of classical logic. Just a cousin.
It's true. But it is nonetheless a sometimes useful paraphrases of older techniques. -- DougMerritt
I think that fuzzy logic serves no [new] purpose mathematically and stochastically. Its attractiveness seems to come from its ability to model systems by using a kind of "fuzzy language". So "too warm" may mean the same thing to a user and to the control logic system. -- HelmutLeitner
If you mean the same thing as the above issue, that it serves no new purpose, then that's true. If you literally mean it serves no purpose at all, and neither do the older techniques that are equivalent, then that's objectively false. The point of such things is to avoid hard and fast arbitrary thresholds. It is often equivalent to moving from a curve fit via piece-wise linear approximation (using a very small number of pieces, e.g. 2 or 3) to a better approximation by interpolation, and phrased like that, I'm sure you'll agree that the latter topic is not useless. -- DougMerritt
Basically I mean "no new purpose". Technically it is only a small improvement to go from a simple yes-no-logic to fuzzy logic in controlling a furnace. You can improve a furnace control system much more by measuring an analog temperature, by controlling the amount of energy produced, by keeping a history and knowing about the time-lag of the system. Compared to this a fuzzy logic system seems only a trivial improvement that even can not be seemlessly integrated. -- HelmutLeitner