Announcements
December 31, 2013 NEW jfuzzylite v1.0 for Java/Android!
December 31, 2013 NEW fuzzylite v4.0 for C++!
December 31, 2013 NEW website powered by WordPress!

Introduction

fuzzylite is a cross-platform, free and open-source fuzzy logic control library programmed in C++. 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 a cross-platform, free and open-source 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.

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 Mamdani,   Takagi-Sugeno,   Larsen,   Tsukamoto,   Inverse Tsukamoto
Linguistic terms triangle,   trapezoid,   rectangle,   discrete,   gaussian,   gaussian product,   bell,   pi-shape,   sigmoid difference,   sigmoid product,   ramp,   sigmoid,   s-shape,   z-shape,   constant,   linear,   function
T-Norms minimum,  algebraic product,  bounded difference,  drastic product,  einstein product,  hamacher product
S-Norms maximum,  algebraic sum,  bounded sum,  normalized sum,  drastic sum,  einstein sum,  hamacher sum
Defuzzifiers centroid,  bisector,  smallest of maximum,  largest of maximum,  mean of maximum,  weighted average,  weighted sum
Hedges any,  not,  extremely,  seldom,  somewhat,  very
Import from FuzzyLite Language fll,   Fuzzy Inference System fis,   Fuzzy Control Language fcl
Export to C++,   Java,   FuzzyLite Language fll,   FuzzyLite Dataset fld,   Fuzzy Inference System fis,   Fuzzy Control Language fcl
Examples Play with 30+ examples of Mamdani, Takagi-Sugeno and Tsukamoto controllers from Octave, Matlab and fuzzylite, each included in the following formats: C++, Java, fll, fld, fis, and fcl

Additionally, you can:

  • Extend every component of fuzzylite, create new ones, and easily incorporate them in your engine
  • Utilize multiple rule blocks within a single engine, each containing any number of (possibly weighted) rules, 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 last valid output value when no rules are activated, and lock the output values to be within specific ranges
  • Create the 2D surface of any controller and draw its contours
  • Utilize the entire library across multiple threads because it is thread-safe
  • Download the sources, documentation, and binaries for the major platforms here

Screenshots

Ubuntu
ubuntu
Mac
mac
Windows
windows

Videos

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