All Projects → fuzzylite → pyfuzzylite

fuzzylite / pyfuzzylite

Licence: other
pyfuzzylite: a fuzzy logic control library in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pyfuzzylite

PyIT2FLS
Type 1 and Interval Type 2 Fuzzy Logic Systems in Python
Stars: ✭ 34 (-19.05%)
Mutual labels:  fuzzy-logic, soft-computing, fuzzy-logic-control
MFLL
Use fuzzy logic control with PL/EL in MultiCharts
Stars: ✭ 19 (-54.76%)
Mutual labels:  fuzzy-logic-control
ProbQA
Probabilistic question-asking system: the program asks, the users answer. The minimal goal of the program is to identify what the user needs (a target), even if the user is not aware of the existence of such a thing/product/service.
Stars: ✭ 43 (+2.38%)
Mutual labels:  fuzzy-logic
opfunu
A collection of Benchmark functions for numerical optimization problems (https://opfunu.readthedocs.io)
Stars: ✭ 31 (-26.19%)
Mutual labels:  soft-computing
godpaper
🐵 An AI chess-board-game framework(by many programming languages) implementations.
Stars: ✭ 40 (-4.76%)
Mutual labels:  fuzzy-logic-control
numberwords
Convert a number to an approximated text expression: from '0.23' to 'less than a quarter'.
Stars: ✭ 191 (+354.76%)
Mutual labels:  fuzzy-logic
fuzzylogic
Fuzzy Logic and Fuzzy Inference for Python 3
Stars: ✭ 74 (+76.19%)
Mutual labels:  fuzzy-logic
notebooks
Code examples for pyFTS
Stars: ✭ 40 (-4.76%)
Mutual labels:  fuzzy-logic
Fuzzy.jl
Fuzzy Inference System in julia
Stars: ✭ 19 (-54.76%)
Mutual labels:  fuzzy-logic
fasill
Fuzzy Aggregators and Similarity Into a Logic Language
Stars: ✭ 20 (-52.38%)
Mutual labels:  fuzzy-logic
PyNets
A Reproducible Workflow for Structural and Functional Connectome Ensemble Learning
Stars: ✭ 114 (+171.43%)
Mutual labels:  fuzzy-logic

pyfuzzylite™

fuzzylite

A Fuzzy Logic Control Library in Python

By: Juan Rada-Vilela, Ph.D.

License: AGPL v3

Branch Status Coverage
master Build Status Coverage Status

License

pyfuzzylite is licensed under the Affero General Public License (AGPL) 3.0. Commercial licenses are also available, please contact [email protected]. You are strongly encouraged to support the development of the FuzzyLite Libraries by purchasing a license of QtFuzzyLite 6.

QtFuzzyLite 6 is the new and (very likely) the best graphical user interface available to easily design and directly operate fuzzy logic controllers in real time. Available for Windows, Mac, and Linux, its goal is to significantly speed up the design of your fuzzy logic controllers, while providing a very useful, functional and beautiful user interface. Please, download it and check it out for free at www.fuzzylite.com/downloads/.


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 library for Java and Android platforms. pyfuzzylite is the equivalent library for Python. Together, they are The FuzzyLite Libraries for Fuzzy Logic Control.

The goal of the FuzzyLite Libraries is to easily design and efficiently operate fuzzy logic controllers following an object-oriented programming model without relying on external libraries.

Reference

If you are using the FuzzyLite Libraries, please cite the following reference in your article:

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}}

Documentation

The documentation for the fuzzylite library is available at: www.fuzzylite.com/documentation/.

Contributing

All contributions are welcome, provided they follow the following guidelines:

  • Pull requests are made to the master branch
  • Source code is consistent with standards in the library
  • Contribution is appropriately documented and tested, raising issues where appropriate
  • License of the contribution is waived to match the license of the FuzzyLite Libraries

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.


Example

FuzzyLite Language

#File: ObstacleAvoidance.fll
Engine: ObstacleAvoidance
InputVariable: obstacle
  enabled: true
  range: 0.000 1.000
  lock-range: false
  term: left Ramp 1.000 0.000
  term: right Ramp 0.000 1.000
OutputVariable: mSteer
  enabled: true
  range: 0.000 1.000
  lock-range: false
  aggregation: Maximum
  defuzzifier: Centroid 100
  default: nan
  lock-previous: false
  term: left Ramp 1.000 0.000
  term: right Ramp 0.000 1.000
RuleBlock: mamdani
  enabled: true
  conjunction: none
  disjunction: none
  implication: AlgebraicProduct
  activation: General
  rule: if obstacle is left then mSteer is right
  rule: if obstacle is right then mSteer is left

What's Next?

  • Optimization of Fuzzy Logic Controllers
  • Type-2 Fuzzy Logic Controllers
  • Adaptive Neuro-Fuzzy Inference System (ANFIS)
  • Fuzzy C-means data clustering

fuzzylite® is a registered trademark of FuzzyLite Limited.
jfuzzylite™ is a trademark of FuzzyLite Limited.
pyfuzzylite™ is a trademark of FuzzyLite Limited.
QtFuzzyLite™ is a trademark of FuzzyLite Limited.

Copyright © 2010-2018 FuzzyLite Limited. All rights reserved.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].