Skip to main content

a fuzzy logic control library in Python

Project description

pyfuzzylite: A Fuzzy Logic Control Library in Python

Introduction

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. pyfuzzylite is the equivalent fuzzylite library for Python. QtFuzzyLite 6 is (very likely) the best application available to easily design and directly operate fuzzy logic controllers in real time.

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/.
 @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 pyfuzzylite 7.0 is released under the GNU Affero General Public License v3. The FuzzyLite Libraries are also offered under a paid license for commercial purposes. If you are using them under a free license, please consider purchasing a license of QtFuzzyLite to support the development of the libraries. If you want a commercial license of fuzzylite, jfuzzylite, or pyfuzzylite, 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pyfuzzylite, version 7.0b3
Filename, size File type Python version Upload date Hashes
Filename, size pyfuzzylite-7.0b3-py3-none-any.whl (171.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size pyfuzzylite-7.0b3.tar.gz (145.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page