jFuzzyLogic: Open Source Fuzzy Logic (Java)

What is jFuzzyLogic?

jFuzzyLogic is a fuzzy logic package written in java (as you might have guessed). It implements Fuzzy control language (FCL) specification (IEC 61131 part 7)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

jFuzzyLogic Features

    - Implements Fuzzy control language (FCL) IEC-61131-7 specification.
    - Parametric optimization algorithms.
    - Membership functions:
        -Continuous: GenBell, Sigmoidal, Trapetzoidal, Gaussian, PieceWiseLinear, Triangular, Cosing, Dsigm
        -Discrete: Singleton, GenericSingleton
        -Custom membership functions can be defined
    - Defuzzifiers:
        -Continuous: CenterOfGravity, RightMostMax, CenterOfArea, LeftMostMax, MeanMax
        -Discrete: CenterOfGravitySingletons
        -Custom defuzzifiers can be easly created
        -Function based deffuzifiers (e.g. "TERM drainage := FUNCTION (-2 * pressure * Ln(pressure)) + (temp * 4);");
    - Rule aggregation (how rules are aggregated / accumulated): BoundedSum, Max, ProbOr, Sum, NormedSum
    - Rule connection operators (AND, OR): Max / Min, ProbOr / Prod, BoundedDif //BoundedSum, etc.
    - Rule implication methods (activation): Min , Product.

Eclipse plugin (December 2012 release)

New plugin available for Eclipse (Helios). See details here
      - To install: Eclipse menu Help -> Install new software       - Click on Add
        - Name: jFuzzyLogic
        - Location: http://jfuzzylogic.sourceforge.net/eclipse/
        - Click OK an follow the instructions.

jFuzzyLogic Paper

If you use jFuzzyLogic in an academic project, please cite our papers:
BibTex:
@inproceedings{cingolani2013jfuzzylogic,
  title={jFuzzyLogic: a Java Library to Design Fuzzy Logic Controllers According to the Standard for Fuzzy Control Programming.}
  author={Cingolani, Pablo and Alcala-Fdez, Jesus},
  booktitle={International Journal of Computational Intelligence Systems}
  pages={61-75},
  year={2013},
  organization={IEEE}
}

@inproceedings{cingolani2012jfuzzylogic,
  title={jFuzzyLogic: a robust and flexible Fuzzy-Logic inference system language implementation},
  author={Cingolani, Pablo and Alcala-Fdez, Jesus},
  booktitle={Fuzzy Systems (FUZZ-IEEE), 2012 IEEE International Conference on},
  pages={1-8},
  year={2012},
  organization={IEEE}
}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Examples

To run this demo, download jFuzzyLogic.jar and run "java -jar jFuzzyLogic.jar demo"

Video capture

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Author: Pablo Cingolani (pcingola@users.sourceforge.net)
Key words (for search engines):
Fuzzy logic
Fuzzy logic software
Fuzzy logic package
Fuzzy logic library
Fuzzy logic sourceforge sf.net
Open source
GNU
GPL LGPL
java
Windows Linux OSX
FCL
IEC 1131
IEC 61131
IEC 61131 part 7
IEC 61131-7
Fuzzy logic Wikipedia