FuzzyLogic.jl
Opportunities
-
Wide functionality! Mamdani and Sugeno output systems of the 1st and 2nd types are available, several https://lucaferranti.github.io/FuzzyLogic.jl/stable/api/memberships [membership functions] and https://lucaferranti.github.io/FuzzyLogic.jl/stable/api/fis [parameters of algorithms].
-
Compatibility! Read models from files https://ffll.sourceforge.net/fcl.htm [IEC 61131-7 Fuzzy Control Language], https://en.wikipedia.org/wiki/Fuzzy_markup_language [IEEE 1855-2016 Fuzzy Markup Language] and Matlab Fuzzy toolbox
.fis
. -
Expressiveness! A clear domain-specific language for writing a model in the form of user-friendly Julia code.
-
Performance! Multiple visualization tools for debugging and customizing the model.
-
*Portability! Compile the final model into Julia code.
An example of a quick start
fis = @mamfis function tipper(service, food)::tip
service := begin
domain = 0:10
poor = GaussianMF(0.0, 1.5)
good = GaussianMF(5.0, 1.5)
excellent = GaussianMF(10.0, 1.5)
end
food := begin
domain = 0:10
rancid = TrapezoidalMF(-2, 0, 1, 3)
delicious = TrapezoidalMF(7, 9, 10, 12)
end
tip := begin
domain = 0:30
cheap = TriangularMF(0, 5, 10)
average = TriangularMF(10, 15, 20)
generous = TriangularMF(20, 25, 30)
end
service == poor || food == rancid --> tip == cheap
service == good --> tip == average
service == excellent || food == delicious --> tip == generous
end
fis(service=1, food=2)
Copyright
-
Copyright (c) 2022 https://github.com/lucaferranti [Luca Ferranti], released under the MIT license.
Quoting
If you use it in your research, please refer to it as follows:
@INPROCEEDINGS{ferranti2023fuzzylogicjl,
author={Ferranti, Luca and Boutellier, Jani},
booktitle={2023 IEEE International Conference on Fuzzy Systems (FUZZ)},
title={FuzzyLogic.jl: A Flexible Library for Efficient and Productive Fuzzy Inference},
year={2023},
pages={1-5},
doi={10.1109/FUZZ52849.2023.10309777}}