13

In the mid 1980's computers began to be advertised as having or being capable of "Fuzzy" logic. How was "Fuzzy" logic added to a computer and what was it suppose to do better than a computer without it?

  • 12
    Do you have specific examples? Fuzzy logic is implemented by using real values between 0 and 1 instead of boolean values, and replacing boolean logic with appropriate variants (e.g. min instead of and, max instead of or), so it can be used on pretty much any computer. – Stephen Kitt Aug 23 '18 at 7:15
  • 1
    I concur with Steven - I'm not aware of any computer that would have had specific means to handle Fuzzy logic (other than, maybe, analog computers). I can, however, not remember Fuzzy Logic as a marketing argument for hardware at all (but rather for software) - maybe you have some examples? – tofro Aug 23 '18 at 7:37
  • @StephenKitt You're right, at the core it's still a hard (and binary) logic. It only gets fuzzy by combining many such states with different weights. After all, already FP is fuzzy, as it can't take all discrete values, while beeing simple binary. And like an FPU can improve a CPUs performance, using hardware supported fuzzy logic can do as well - like with using an FPU to calcualate the reaction with a network of input values. – Raffzahn Aug 23 '18 at 12:19
  • @tofro It's a bit like addign an 8x8 multiplier unit (:)) to a 8 bit CPU. Everything could be done without, but havint it will speed multiplications. Similar MAC (Multiply and ACumulate) units/instructions will speed up certain cases of fuzzy logic. Or take all the additions nowadays are made for machien learning - somethign that is just fuzzy logic driven into extreme. So yes, there is hardware that can improve fuzzy logic - like with any other application specific instruction. – Raffzahn Aug 23 '18 at 12:22
  • 1
    There is/was dedicated hardware on the market that was specifically designed to handle Fuzzy inference rule sets, like the Neuralogix NLX230 or the Siemens 81C99 "Fuzzy Coprocessor". Those are, however, all long dead and can hardly be called a "standard computer component" – tofro Aug 23 '18 at 13:02
12

Fuzzy logic was a bunch of mathematical techniques or algorithms, popularized in the 1970’s by Lotfi Zadeh former chairman of the U.C. Berkeley EECS department. Forms of it depended on fuzzy sets, where set membership or logic state could be multi-valued or statistical, rather than just a binary 1 or 0.

In some ways, fuzzy logic is a distant ancestor of some Machine Learning and Deep Neural Net algorithms, where a scattered mass of sparse low precision vector multiplies and non-linear activation functions can end up identifying a photo of a cat (etc.).

Fuzzy logic can run on any Turing complete computer. So advertising Fuzzy Logic capability was just a bit of marketing.

(Similar to the current hype around almost every new processor chip or GPU doing ML and DNN inference.)

The algorithms would likely run better on chips with faster math operations, non-linear math ops (min,max,saturate,etc.), and/or more numeric formats (floats, vectors, etc.). So maybe it was a way of marketing that a certain processor could compute or do math ops fast enough for some fuzzy logic demo.

(Or for current new processors, some ML demo.)

  • Great Summary . – Raffzahn Aug 23 '18 at 19:22
  • 3
    "Fuzzy logic can run on any Turing complete computer. So advertising Fuzzy Logic capability was just a bit of marketing." At that point, you may as well say that a pencil and paper can compute any Turing-computable function so the whole computer industry is "just a bit of marketing." It's entirely legitimate to include instructions that are tailored to some kind of processing your users want to do, as you actually explain in the rest of your answer. – David Richerby Aug 24 '18 at 12:12
  • 1
    @R.Schmitz The word "capable" is the summary of the asker, not a direct quote. It seems entirely reasonable to talk about some application domain in advertisements if your product has features that enhance its suitability for that domain. I mean, sure, any computer can compute this thing, but being able to compute that thing faster because of specialized instructions is a genuine selling point. You seem to be claiming that almost any advertising about computer performance is "duh" because all computers can compute the same thing; you're completely missing the performance aspect. – David Richerby Aug 24 '18 at 14:23
  • 1
    @R.Schmitz Also, note that "capable" can mean "pretty good at" as well as merely "able to do something." If I call you a "capable programmer", that doesn't just mean that you're able to program. – David Richerby Aug 24 '18 at 14:24
  • 1
    If I don't have a c compiler on my computer, then my computer can't compile c code. If my computer is a Windows machine, then it won't be able to run a OS X distribution of a program. If I don't have a Nintendo, I can't play Nintendo games. Just because a computer is Turing complete, doesn't mean there isn't a sense in which there are things it can't do. Sure, I could install a Nintendo emulator, so there is some sense in which my computer is "capable" of running Nintendo game programs, but that doesn't make it inaccurate to say that in the common meaning of the term, it is not "capable". – Acccumulation Aug 24 '18 at 18:54
12

I came across Motorola HC12 and Hitachi SH2 series controllers in the 90s, intended for vehicle engine control units, that had some fuzzy logic capability.

Motorola had some new machine code instructions, notably MIN and MAX, useful for implementing fuzzy control systems.

Hitachi might had something more sophisticated, but my recollection is very vague here, perhaps a fuzzy logic unit, that could be programmed to apply a sequence of functions (min, max, power, root, absolute difference, perhaps saturated arithmetic too) continuously to some input channels, freeing the processor for other tasks.

Then AMD 3DNow! appeared in 1998, and Intel SSE shortly after, that had the same kind of instructions, but I don't remember them marketed as something fuzzy, but rather as enabling faster graphics calculations.

So the same function set was called something else then, perhaps based on what the target audience understood. Industrial and vehicle control customers wanted fuzzy logic, desktop users wanted fast graphics, and the marketing department created different names for these very similar technologies.

9

"Fuzzy logic" is a fairly vague term, but is usually used to mean making decisions based on probabilities of events rather than hard true/false values. It can also be used for other numeric decision making models that don't map so easily to probabilities, like neural nets.

The critical thing, therefore, for hardware to be a good fit for implementing a fuzzy system, is that it needs to support fast numerical computations, using either floating point or fixed point fractions. Multiplication is a common operation, as is summing large quantities of data (or the combination of the two, calculating a scalar product), so having support for the appropriate vector operations to accelerate these was useful for larger systems, and vector processors were a big deal in the 80s (and then we all got them in the form of MMX etc coming into the early 90s).

  • Fuzzy logic doesn't usually make decisions based on probabilities, but if anything, possibilities instead. Some differences lie in that the measure of the sample space for a probability space equals the sum (or integral) of the probabilities of each event. This doesn't hold for a possibility space, which instead has that the measure of the sample space for a possibility space equals the maximum of the possibilities of each event. If a probability space has two events, it's impossible that each event has probability of 1, but that does hold as possible for a possibility space. – Doug Spoonwood Aug 23 '18 at 21:36
4

How was "Fuzzy" logic added to a computer and

It wasn't. At least not as logic in the same sense as digital logic to build a computer. It's more of an application concept, extending the realm of control systems. Instead of using fixed thresholds and base reactions thereon, thresholds get defined in a flexible way, usually by combining several input sources and/or recorded information.

In general it was used to describe that applications do not just switch at simple hard points by time or amount, but with more variability depending on circumstances. Like a washing machine using less water if only filled partially.

Further fuzzy logic almost always include feedback loops and iterative approaches, not predefined curves.

what was it suppose to do better than a computer without it?

Real world decisions are usually not based on single facts, but a combination, with such combinations are normally not within a rigid framework.

For example think about a reservoir. It gets filled with water coming from a river. It does let a certain amount of water go downstream to keep the river floating. In addition a simple spill over mechanism is needed to drain when the reservoir is filled and more water is coming in than the outflow is set to take(*1). But after a heavy rainfall upstream, more water will come in and the overflow will increase accordingly. Up to a point where even the spill over can't handle it alone. So gates need to be opened in addition. A simple, standard logic decision would be to open the gates automatic when the water level reaches 110% - as this shows that the spill over can't handle it alone - and we don't want the dam to break, do we?

A workable solution, but with an eventual catastrophic result to downstream villages. First the flow is kept constant all the time, but flash floods are handed down basically unhindered. Not exactly what the villagers expect the dam to do.

Setting up a control system that measures incoming water, maybe already several km upstream, could be used to control the gates already before the reservoir is filled. This system will now monitor the water level in a non-binary way and do the same with incoming water. The decision on opening the gates will be made way ahead of fixed limits and in an adaptable way. With an almost empty reservoir, the gates stay closed (at standard rate) even if the supplying river starts to carry a lot more water. Opening the gates may come only late, maybe at 70%. But if the water level is maybe already at 80%, a way smaller increase in feeding might trigger a wider opening of gates.

That's fuzzy logic. No witchcraft, nothing really new, just more subtle reaction than simple on/of at certain fixed levels.

As so often it's valid to state it isn't anything new, and that's true. With humans in between, all control applications were by default fuzzy - like a reservoir warden seeing the rain and opening the gates early. Even in theory it has been used around 1800 by Hegel by his concept of multiple median. What was new in the 1980s was for one that it was en vogue among mathematicians due to development of the fuzzy set theory, as well as increasing computing capacity made it possible to implement more complex behaviour in every day appliances, from washing machines to train control.

The latter being a great example for the step taken. Driving a commuter train and stopping always at the same point along a platform isn't as easy as it seams. Brake distance differs a lot with the amount of passengers, weather condition, train conditions and much more. The engineer driving applies a lot of knowledge to even stop it within a few feet. Especially when at the same time fast transportation and thus late braking is a must. Automating this with simple pre-calculated control program needs (almost) unobtainable data and will still result in a lesser performance than done by a human engineer.

Using fuzzy logic now doesn't try to solve everything ahead, but defines a corridor of parameters, applying variable control to keep the train within to reach an approximated goal. The Sendai Subway is known to be the first incorporating these ideas and showing great results.

While being a buzzword of the late 1980s, it never went out of style - now the hype word is Machine Learning and even less deterministic :)


*1 - For this we just look at standard behaviour with a (mostly) filled reservoir, special situations like first fill and alike would just add without need.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.