Andrew Warren wrote: > I hear this a lot... As far as I'm concerned, it's a load of > crap. > & alot of other stuff... Dear Andy: There certainly is a lot of stuff that leaks out of the cracks about fuzzy logic, but we should try to be clearer in these debates. So: Bart Kosko may have written a pop book, but he first wrote a textbook. It's a bit thick but it should be taken as the statement of choice from Kosko. Nowhere does he state any of the many silly things popularly attributed to him. I've also read his pop book, which also doesn't contain any of the silly statements attributed to him. Most of the silly stuff about fuzzy logic is just that: silly stuff. It should be ignored, not repeated. IN THE THEORY, binary logic is contained as a subset of fuzzy logic. This has many ramifications to theorists, but may or may not mean beans to the guy solving a problem. Supersets are not super in any but the set theory sense. Maybe the word super should be avoided. Most real world problems are not given to closed solutions. Think about that a minute: this means literaly that you cannot write the exact mathematical model for almost any real world problem. The fact that the PID algorithm can be proven to be mathematically correct only means that the math works. As far as I know the PID model has never been shown to be an exact analog of any real physical process. It does a real good approximation of an astonishingly small percentage of the process modeling that is generally interesting; since it works so well for these situations, it gets used. Success brings success. I've happily used PID algorithms in about a jillion situations, but it isn't worth a damn for about a gazillion times more problems that are just as important. Some of these problems may never get solved; some of them will get solved when new techniques and algorithms come along. Fuzzy logic is just that: a new technique, a new algorithm. It comes from a genuinely new paradigm, which brings me to another bunch of silly stuff that leaks out about paradigms. So lets try this instead: For about 15 years I have been classifying logical systems with a hierarchical structure created with three naming concepts: models, details, and metamodels. The structure arises from identifying the relative level of any logical element at a particular moment in time. The model is the logical structure that allows us to represent (and therefore think about) something; the details are the internal rules and ramifications of the rules; the metamodel is the set of logical tools that allow the construction of the model. The structure that arises is hierarchical because each metamodel is a model in return, and all details are models on a different level. Paradigms are metamodels, but I find the metamodel concept more useful because it is inherently connected, wheras paradigms (wrongly) can appear to exist on their own. It's easy to see that you can chase your metamodels to a point where you are trying to define the fundamentals of existence. It should be just as easy to see that at some level we all harbor metamodels that we believe define the nature of, say, the expression of a programming problem. And, given an honest assessment of the huge number of problems that can't be solved using those metamodels, I personally welcome every opportunity to redefine the way the approach to constructing a method for solving a particular problem is handled. (Whew!) Did you get that? It was sort of like double indirection (if you're into assembly code) in that it takes pinning down every time you come back to it. Fuzzy logic is not on the same level with PID algorithms. It presents an opportunity to approach the problem of problem solving differently. What I have used it for is to construct determinate solutions to problems that are indeterminate using binary logic. A binary system that settles between two possible outout values will oscillate or worse (like never return a recursive solution). A fuzzy logic system will always supply a solution, and I can assure you that the solution is provably correct in exactly the same sense that the PID algorithm is (that is, in the math). The problem with fuzzy logic comes in bringing the result back from the fuzzy domain, not in tweaking the rules. I find that every time I apply it I have to 'break my brain' and allow the old assumptions to leak out and fade away. It's not an easy process, 'cause I've been formulating and solving problems with binary logic and computing hardware since before the 4004. The essence of binary logic is baked into my deepest instincts. Nevertheless, I have built programs that give good, testable answers to computational problems that are not given to correct solution with more conventional methods. So what I propose is this: we should try to think of fuzzy logic as a different way of approaching the development of problem solving strategies. In this light, there is no comparison with PID algorithms or any other general solution or model. It exists as another, useful but different way of looking at the fundamental structure of the process of solution, not a specific method or solution. If we keep this in mind I believe the debate will be more useful and gentle. -- Tom P.S. Just in case you wondered, I don't believe that there is going to be a giant penetration of fuzzy logic solutions into our little world anytime soon. --TR P.P.S. Do you really think of assembly language as a superset of other languages? Hmmm..