So, as I said in the intro to the new Scientopical Good Math/Bad Math, I’m
going to writing some articles about fuzzy logic.
Before diving into the fuzzy stuff, let’s start at the beginning. What
is fuzzy logic? More fundamentally, what is logic? And what problem does fuzziness solve?
So, first, what’s logic?
Logic isn’t really a single thing. There are many different logics, for different purposes. But at the core, all logics have the same basic underlying concept: a logic is a symbolic reasoning system. A logic is a system for expressing statements in a form where you reason about them in a completely mechanical way, without even knowing what they mean. If you know that some collection of statements is true, using the logic, you can infer – meaning derive from a sequence of purely mechanical steps – whether or not other statements are true. If the logic is formulated properly, and you started with an initial set of true statements, then any conclusions drawn using the inference process from those statements will also be true.
When we say logic, we tend to automatically think of a particular logic: the first order predicate logic, which is the most common, fundamental logic used in both mathematics, and in rhetoric and debate. But there are an astonishing number of different logics for different purposes. Fuzzy logic is one particular
variation, which tries to provide a way of reasoning about vagueness.
The reason for fuzzy logic is that there are some properties that we can observe, and which we’d like to be able to reason about, but which just don’t make sense when they’re expressed in FOPL. The classic example of this is
My older brother is about 6 feet and 2 inches tall. I think everyone would agree that by any reasonable definition, he’s tall. I’m 5 feet and 11 inches tall. Most people, but not everyone would agree that I’m tall. When I was a freshman in high school, I was 4 feet and eleven inches tall. I think no one would claim that I was tall then. Exactly when did I become tall? At various times, I was 4 foot 11, then 4 foot 11 1/2, then 5 feet, then 5’1, then 5’1 1/2… At some point in time, I clearly was not tall. At some later point in time, I clearly was tall. But what was I in between? Was there some specific day, some specific moment, where I crossed a magic boundary, and became tall?
Of course there isn’t.
Similarly, you can pick out a bunch of people of different heights, and
ask whether they’re tall. Someone who’s 6 feet 6 inches is clearly tall. What if I take off one eighth of an inch of height from a tall person. Are they still tall? If
so, then I can take another eighth of an inch. Are they still tall? If I keep doing that, eventually I’ll get to four feet, which is obviously not tall. And yet, where is the boundary?
Tall just doesn’t work very well as a predicate in FOPL. It doesn’t have a crisp boundary. It’s intrinsically fuzzy. It’s actually something which, in some sense, has a kind of numeric value. You’re tall to a certain
degree – and that degree is intrinsic to how true the statement “You are tall” is.
The real world is full of things like that – properties that instead of
having a crisp boundary between true and false, have a vague boundary, but
also have some sort of valuation of how true they are. And the way that you reason about those statements needs to take the valuation into account. If you take a 6’6 person, and remove 1/8th of an inch, you get a person who is slightly less tall. And the valuation continues
to change through a reasoning process, so that by the time you get to someone whose height is four feet, the statement that they’re tall has no truth left.
So the entire system of the logic needs to change, to reflect the idea that nothing is really strictly true or false; things have degrees of truth and falsehood. But going directly from crisp to fuzzy is confusing – it’s too much change all at once. Instead, we’ll try to make a sort-of fuzzy transition.
The way that we’ll approach understanding that is by starting off with
something that’s less crisp than FOPL, but more crisp than true fuzzy logic. What we’ll look at is a three-valued logic, where each statement can be “true”, “false”, or “maybe”. In fact, we’ll look at a few of those: there’s a whole family of closely related three-valued logics. So we’ll look at those, and see what it means to lose the strict true/false dichotomy. From there, we’ll gradually move to full blown fuzziness.