Current Version: 5.0 (08/08/2014)
October Sale!
NZD 29.99 14.99 (50% off)

Introduction

fuzzylite is a free and open-source fuzzy logic control library programmed in C++ for multiple platforms (Windows, Linux, Mac, iOS). Its goal is to allow you to easily create fuzzy logic controllers in a few steps utilizing object-oriented programming without requiring any third-party libraries.

jfuzzylite is the same fuzzylite library, but programmed entirely in Java without requiring any third-party libraries.

QtFuzzyLite is an entirely new Qt-based graphic user interface for fuzzylite. Its goal is to allow you to visually design your fuzzy logic controllers and interact with them in real time. QtFuzzyLite is now a commercial and closed-source application whose objective is to raise funds to continue the development of the fuzzylite family of products, all of which will always remain free and open source.

If you are going to cite fuzzylite in your article, please do so as:

Reference
Juan Rada-Vilela. fuzzylite: a fuzzy logic control library, 2014. URL http://www.fuzzylite.com.

 @misc{fl::fuzzylite,
 author={Juan Rada-Vilela},
 title={fuzzylite: a fuzzy logic control library},
 url={http://www.fuzzylite.com},
 year={2014}}
 

Features

Controllers Types (5) Mamdani,   Takagi-Sugeno,  Larsen,  Tsukamoto,  Inverse Tsukamoto.
Linguistic terms Basic (4)  triangle,  trapezoid,  rectangle,  discrete.
Extended (9)  bell,  cosine,  gaussian,  gaussian product,  pi-shape,  sigmoid difference,  sigmoid product,  spike.
Edges (4)  concave,  ramp,  sigmoid,  s-shape,  z-shape.
Functions (3)  constant,  linear,  function.
T-Norm Conjunction and Activation (7)  minimum,  algebraic product,  bounded difference,  drastic product,  einstein product,  hamacher product,  nilpotent minimum.
S-Norm Disjunction and Accumulation (8)  maximum,  algebraic sum,  bounded sum,  normalized sum,  drastic sum,  einstein sum,  hamacher sum,  nilpotent maximum.
Defuzzifiers Integral (5)  centroid,  bisector,  smallest of maximum,  largest of maximum,  mean of maximum,
Weighted (2)  weighted average,  weighted sum.
Hedges Types (6)  any,  not,  extremely,  seldom,  somewhat,  very.
Languages Import (3) FuzzyLite Language fll,  Fuzzy Inference System fis,  Fuzzy Control Language fcl.
Export (6) C++,  Java,  FuzzyLite Language fll,  FuzzyLite Dataset fld,  Fuzzy Inference System fis,  Fuzzy Control Language fcl.
Examples Play with (30+) new and existing examples of Mamdani, Takagi-Sugeno and Tsukamoto controllers from fuzzylite, Octave and Matlab, each included in the following formats:  C++Java,  fllfldfis,   fcl.

In addition, you can easily:

  • Create your own classes inheriting from fuzzylite, register them in the factories, and incorporate them to operate in fuzzylite.
  • Utilize multiple rule blocks within a single engine, each containing any number of (possibly weighted) rule, and different conjunction, disjunction and activation operators.
  • Write inference rules just naturally, e.g., "if Ambient is DARK then Power is HIGH".
  • Return a default output value, lock the output values to be within specific ranges, lock the previous valid output value when no rules are activated.
  • Explore the function space of your controller.
  • Utilize the entire library across multiple threads as it is thread-safe.
  • Download the sources, documentation, and binaries for the major platforms in the Downloads tab.

Screenshots

QtFuzzyLite v5.0 in Windows XP (Cleanlooks L&F)

QtFuzzyLite v5.0 in Windows XP (Cleanlooks L&F)

QtFuzzyLite v5.0 in Ubuntu Linux (Cleanlooks L&F)

QtFuzzyLite v5.0 in Ubuntu Linux (Cleanlooks L&F)

QtFuzzyLite v5.0 in Mac OS X (Snow Leopard)

QtFuzzyLite v5.0 in Mac OS X (Snow Leopard)

Videos

tutorial on fuzzylite
tutorial on qtfuzzylite
example of fuzzylite in real time