Explaining Fuzzy Logic

I love this post on Explaining Heuristics over at Elegant Code.

I have run into the same issues to the extreme at my place of employment. Someone hears the words “Unit Tests” and immediately all tests are “Unit Tests”. It is as if no research is done into anything whatsoever. Mind you, this is a programmer!

One that I just couldn’t let go a while back was “Fuzzy Logic”. I took a “Soft Computing” course in college. As a project we did a fuzzy hand recognition system. It was rather interesting. We used Matlab’s Fuzzy Toolkit, so we really didn’t have to implement the fuzzy algorithms ourselves. We used line detection on peoples hands and gathered a dozen peoples hands (not a good enough pool for a real world application, but good enough for this college course. Gathering images was fun and easy – we used a digital camera. We just took pictures of people’s hands on the tables in the room in which the class met.

Recently, a coworker started calling some stuff we have “fuzzy logic”. I immediately objected and continued objecting anytime I had the energy to argue. This was not fuzzy, this code was 100% deterministic. Given a set of inputs it would ALWAYS 100% give the exact same output. It was just that the control flow for the program was a bit complex, and so describing it to our business users it wasn’t always 100% clear from where a result value came. I still continue to object to calling this “fuzzy logic”. No matter how complex a deterministic system gets, it is still deterministic. Heck, it wasn’t even that complex. There were about 5 possibilities. For some reason, explaining to certain business users “it could be one of these 5 cases” was not satisfactory (and I won’t argue that – there shouldn’t have been 5 cases – but that isn’t the point). The point is that it was not and is not fuzzy logic.

I just wanted to share in Daddy Starr’s frustration with imprecise language. I couldn’t agree more that “Incorrect or even imprecise language just drives me crazy.”

Thanks Daddy Starr!

1 thought on “Explaining Fuzzy Logic”

  1. Well put. It’s a happy thing to see the truth of fuzzy logic defended.

    We’ve started using the term “Linguistic Variables” in most fuzzy logic contexts. It’s a far more precise term but it’s less euphonic than “fuzzy logic” and a little more uptight than I’d like.

    I subscribe to Google Alerts about the term “fuzzy logic”: about half of the newly-indexed references are misappropriations of the term, and most of those are political arguments.

    Kirk Zurell
    Byte Craft Limited

Comments are closed.