What is Fuzzy Logic?

When manipulating human knowledge such as perception, feelings, appreciation, veracity of facts, etc., the classical logic that recognize only two truth degrees (true or false) is not always the most suitable.

To solve this problem, more than two degrees are considered in the non-classical logics. The fuzzy logic is one of these logics.

In this logic, facts are represented through membership functions: when the membership value is equal to 1 the fact is exactly true; when it is equal to 0 the fact is exactly false; in between there is an uncertainty about the veracity of the fact.

These membership functions are called “fuzzy subsets”. They can be of different shapes: gaussian, trapezoidal, triangular, etc.

Thus the aim of the fuzzy logic is to propose a theoretical framework for the manipulation – representation and reasoning – of such facts.

The Fuzzy Lib library implements all the tools that are necessary to handle this manipulation: representation of a fuzzy subset (among them are the fuzzification, defuzzification and partitioning), reasoning process (generalized modus ponens, fuzzy implications, t-norms, t-conorms, etc.).

What is the Fuzzy Lib ?

This version 1 of the Fuzzy Lib enables to implement fuzzification, uncertain reasoning and defuzzification for any number of data in the framework of Max/MSP environment.

In version 1, which is a first step, we only handle accurate measures coming from captors thus considered as precise and reliable to optimize computation (it enables to simplify the generalized modus ponens calculation which is then limited to fuzzy implication between the captor input and the conclusion of the rule). However this version enables to use all types of fuzzy implication, and current t-norms and t-conorms. We will provide a complete generalized modus ponens in version 2.

The library is based on two js objects (javascript objects): LV1 for linguistic variable, and GMPA1 for generalized modus ponens action.

The corresponding files are: fuzzy.lv1.js and fuzzy.gmpa1.js.

Two help files are also provided: fuzzy.lv1.help and fuzzy.gmpa1.help

These two objects are completed by a jsui (javascript user interface) object that enables to display fuzzy subsets: fuzzy.FSSdrawing.js and another js file : fuzzy.ruleComposer.js to provide help to write fuzzy rules.

Some subpatchers are necessary for LV1 parameter control (thanks to bpatchers):

  • fuzzy.lv1.parameters1.pat
  • fuzzy.lv1.parameters2.pat
  • fuzzy.lv1.parameters3.pat
  • fuzzy.fuzzyRule.control.pat
  • fuzzy.rulecomposer.interface.pat
  • fuzzy.gmpa1.control.pat
  • fuzzy.lv1.control.pat.

There are four readMe files: readMe_LF_introduction.txt, readMe_fuzzyLib.txt, readMe_lv.txt, readMe_gmpa.txt

Last but not least, four files are saved as lists of fuzzy rules: rules1.txt, rules2.txt, rules3.txt, rules4.txt. They are used in the gmpa help file.

Download, Licence and Installation

FuzzyLib can be freely downloaded.

This software is intended for artistic work and/or scientific research. Any commercial use is reserved. Copyrights 2007-2009 IRCAM – Centre Pompidou.

The archive folder contains three folders to be unzipped:

  • FUZZYLIB_JS must be unzipped and copied to Cycling’74 folder in MaxMSP folder.
  • FUZZYLIB_HELP must be unzipped and copied to max-help folder in MaxMSP folder
  • FUZZYLIB_README must be unzipped. It contains readme files.

Getting Help and Disclaimer

Any type of feedback, problem, bug report, feature request are welcome and we will try our best to help you. Please post any message/questions directly to [LINK]

Nevertheless… this is work in progress ! Use this software at your own risk. We do not assume any responsability for possible problems causes by the use of this software.

Credits and Acknowledgements

Real Time Musical Interaction – Ircam – CNRS STMS in collaboration with the Laboratoire d’Informatique Avancée de Saint-Denis (LIASD) of the University Paris 8.

Alain Bonardi

Isis Truck (LIASD, University Paris 8)

Acknowledgements to Nicolas Jouandeau (University Paris 8), Frédéric Bevilacqua and Norbert Schnell (IMTR Team, Ircam), Marco Bataille-Testu (Théâtre du Signe, Caen).