The FuzzyLite Libraries for Fuzzy Logic Control
By Juan Rada-Vilela, Ph.D.
Current Versions
(20/03/2017) QtFuzzyLite 6 for Windows, Linux, and MacOSX
(20/03/2017) fuzzylite 6.0 for C++
(20/03/2017) jfuzzylite 6.0 for Java and Android
- QtFuzzyLite 6 for Windows
- QtFuzzyLite 6 for Linux
- QtFuzzyLite 6 for MacOSX
Introduction
QtFuzzyLite 6
is (very likely) the best application available to easily design and directly operate fuzzy logic controllers in real time.
fuzzylite
is a free and open-source fuzzy logic control library programmed in C++ for multiple platforms (e.g., Windows, Linux, Mac, iOS).
jfuzzylite
is the equivalent fuzzylite
library for Java and Android platforms.
If you are going to cite us in your article, please do so as:
Juan Rada-Vilela. The FuzzyLite Libraries for Fuzzy Logic Control, 2018. URL https://fuzzylite.com/
or using BibTeX as:
@misc{fl::fuzzylite,
author={Juan Rada-Vilela},
title={The FuzzyLite Libraries for Fuzzy Logic Control},
url={https://fuzzylite.com/},
year={2018}}
License of the FuzzyLite Libraries
The FuzzyLite Libraries, namely fuzzylite 6.0
and jfuzzylite 6.0
, are licensed under the GNU General Public License (GPL) 3.0 and under a paid license for commercial purposes. If you are using them under the GPL license, please consider purchasing a license of QtFuzzyLite to support the development of the libraries. If you want a commercial license of fuzzylite
and jfuzzylite
, please contact sales@fuzzylite.com.
Features
The FuzzyLite Libraries have the following features:
(6) Controllers: Mamdani, Takagi-Sugeno, Larsen, Tsukamoto, Inverse Tsukamoto, Hybrids
(21) Linguistic terms: (4) Basic: triangle, trapezoid, rectangle, discrete.
(9) Extended: bell, cosine, gaussian, gaussian product, pi-shape, sigmoid difference, sigmoid product, spike.
(5) Edges: binary, concave, ramp, sigmoid, s-shape, z-shape.
(3) Functions: constant, linear, function.
(7) Activation methods: general, proportional, threshold, first, last, lowest, highest.
(8) Conjunction and Implication (T-Norms): minimum, algebraic product, bounded difference, drastic product, einstein product, hamacher product, nilpotent minimum, function.
(10) Disjunction and Aggregation (S-Norms): maximum, algebraic sum, bounded sum, drastic sum, einstein sum, hamacher sum, nilpotent maximum, normalized sum, unbounded sum, function.
(7) Defuzzifiers: (5) Integral: centroid, bisector, smallest of maximum, largest of maximum, mean of maximum.
(2) Weighted: weighted average, weighted sum.
(7) Hedges: any, not, extremely, seldom, somewhat, very, function.
(3) Importers: FuzzyLite Language fll
, Fuzzy Inference System fis
, Fuzzy Control Language fcl
.
(7) Exporters: C++
, Java
, FuzzyLite Language fll
, FuzzyLite Dataset fld
, R
script, Fuzzy Inference System fis
, Fuzzy Control Language fcl
.
(30+) Examples of Mamdani, Takagi-Sugeno, Tsukamoto, and Hybrid controllers from fuzzylite
, Octave, and Matlab, each included in the following formats: C++
, Java
, fll
, fld
, R
, fis
, and 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 obstacle is left then steer is right".
- 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.
Videos
tutorial on fuzzylite |
tutorial on qtfuzzylite |
example of fuzzylite in real time |