Skip to main content

Type 1 and Interval Type 2 Fuzzy Logic Systems in Python

Project description

PyIT2FLS

NumPy and SciPy based toolkit for Type 1 and Interval Type 2 Fuzzy Logic Systems.

Licence

PyIT2FLS is published under MIT license. If you are using the developed toolkit, please cite preprint of our paper PyIT2FLS: A New Python Toolkit for Interval Type 2 Fuzzy Logic Systems.

BibTeX:

@misc{haghrah2019pyit2fls,
    title={PyIT2FLS: A New Python Toolkit for Interval Type 2 Fuzzy Logic Systems},
    author={Amir Arslan Haghrah and Sehraneh Ghaemi},
    year={2019},
    eprint={1909.10051},
    archivePrefix={arXiv},
    primaryClass={eess.SY}
}

MLA:

Haghrah, Amir Arslan, and Sehraneh Ghaemi. "PyIT2FLS: A New Python Toolkit for Interval Type 2 Fuzzy Logic Systems." arXiv preprint arXiv:1909.10051 (2019).

Installation

PyIT2FLS can be installed by unzipping the source code in a directory and using this command:

(sudo) python3 setup.py install

Or you can use pip3:

(sudo) pip3 install --upgrade pyit2fls

Versions

Features coming up in the next version

  • Exception handling.
  • Supporting Generalized Type 2 Fuzzy Sets and Systems.

Some notes on version 0.7

  • Fuzzy matrices and related operators are now supported.
  • The fuzzy logic systems are speeded up using Ctypes (Please visit typereduction package).
  • Emphasize function for both type 1 and interval type 2 fuzzy sets is introduced (Please visit 16th example).
  • The function L_IT2FS_Gaussian_UncertStd is renamed to IT2FS_LGaussian_UncertStd.
  • The function R_IT2FS_Gaussian_UncertStd is renamed to IT2FS_RGaussian_UncertStd.

Some notes on version 0.6.1

  • Some bugs have been fixed in this version.

Some notes on version 0.6

  • Supporting Type 1 Fuzzy Sets and Systems.
  • Supporting elliptic and semi-elliptic membership functions.
  • Supporting generalized bell shaped membership function.
  • Supporting many new t-norms and s-norms.
  • Some bugs are fixed in this version.

Some notes on version 0.5

  • Supporting both Mamdani and TSK systems.
  • Some bugs have fixed in this vesion. Now it is possible to use different domains for FLS inputs and outputs.

Some notes on version 0.4

  • Some bugs have been fixed in this version especially in type reduction algorithms. I would like to say thanks to Dr. K.B Badri Narayanan for reporting the errors.
  • Some new IT2FSs are added to the toolkit.
  • In previous versions, the height of the IT2FS_Gaussian_UncertStd and IT2FS_Gaussian_UncertMean IT2FSs was fixed to 1, by default. But in the new version, user must give the height value in the parameters list as the last element.

Docstrings

Further information about the functions and classes in the PyIT2FLS are accessible by docstrings. After importing a function or class, they can be seen by calling the help function. For example:

>>> from pyit2fls import IT2FS_Gaussian_UncertStd
>>> help(IT2FS_Gaussian_UncertStd)

Examples

There are some examples provided along with the toolkit which are as below:

  • Ex1: Defining an Interval Type 2 Fuzzy Set (IT2FS).
  • Ex2: Using join and meet operators and plotting the outputs.
  • Ex3: Defining a simple (MIMO) IT2FLS.
  • Ex4: Prediction of the Mackey-Glass chaotic time series with PSO-based parameter tuning.
  • Ex5: Designing Interval Type 2 Fuzzy PID (IT2FPID) controller for a time-delay linear system.
  • Ex6: Creating and plotting ten types of interval type two fuzzy sets. (PyIT2FLS v0.4.0 and upper)
  • Ex7: Similar to Ex3 but implemented using the new Mamdani class. (PyIT2FLS v0.5.0 and upper)
  • Ex8: Defining a simple multi-input multi-output IT2 TSK FLS. (PyIT2FLS v0.5.0 and upper)
  • Ex9: Defining a multi-input multi-output IT2 TSK FLS and plotting the 3D resulting output planes. (PyIT2FLS v0.5.0 and upper)
  • Ex10: Defining a multi-input multi-output IT2FLS with different domains for each of input and output variables, and plotting the output surfaces of the system. (PyIT2FLS v0.5.0 and upper)
  • Ex11: Generating random rule-bases. (PyIT2FLS v0.5.0 and upper)
  • Ex12: Using six different t-norms with meet operator. (PyIT2FLS v0.6.0 and upper)
  • Ex13: Using six different s-norms with join operator. (PyIT2FLS v0.6.0 and upper)
  • Ex14: MIMO Type 1 Mamdani Fuzzy Logic System. (PyIT2FLS v0.6.0 and upper)
  • Ex15: MIMO Type 1 TSK Fuzzy Logic System. (PyIT2FLS v0.6.0 and upper)
  • Ex16: Using emphasize function for type 1 and interval type 2 fuzzy sets. (PyIT2FLS v0.7.0 and upper)
  • Ex17: Example concerning fuzzy matrices. (PyIT2FLS v0.7.0 and upper)
  • Ex18: Defining random rules and random sets for IT2F classifier with three inputs and one output (Based on the request of one of the users). (PyIT2FLS v0.7.0 and upper)

Some output plots

  • Ex4:

  • Ex5:

  • Ex6:

  • Ex9:

  • Ex10:

Project details


Download files

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

Source Distribution

pyit2fls-0.7.6.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

pyit2fls-0.7.6-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file pyit2fls-0.7.6.tar.gz.

File metadata

  • Download URL: pyit2fls-0.7.6.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

File hashes

Hashes for pyit2fls-0.7.6.tar.gz
Algorithm Hash digest
SHA256 9f8514f4471c33ae60733ee7938da748207249ece963d91426f7ccb512425db7
MD5 2b60b196279ca6dde2468b4fdbc3d935
BLAKE2b-256 ed6169f31f4162a858523dd9be4422072d80be04a085224dd6fe43a0b439cc6e

See more details on using hashes here.

File details

Details for the file pyit2fls-0.7.6-py3-none-any.whl.

File metadata

  • Download URL: pyit2fls-0.7.6-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

File hashes

Hashes for pyit2fls-0.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a8972c20fcdb52d992b3f055e821eb5bf1d8f4736da75fa125513081b476033d
MD5 c097bb11379a2f4512e09a22242a5567
BLAKE2b-256 1df834dcc20f22a7959338444cc4e8d8ecb3b5f24c816a8391d489f67c4c4562

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page