FuzzyLogic.jl
Info | Build status | Documentation | Contributing |
---|---|---|---|
A Julia library for fuzzy inference.
Installation
To install the package, open a Julia session and run
using Pkg; Pkg.add("FuzzyLogic")
the package can then be loaded with
using FuzzyLogic
Features
- Rich! Mamdani and Sugeno inference systems, both Type-1 and Type-2, several membership functions and algoritms options available.
- Compatible! Read your models from IEC 61131-7 Fuzzy Control Language, IEEE 1855-2016 Fuzzy Markup Language and Matlab Fuzzy toolbox
.fis
files. - Expressive! Clear Domain Specific Language to write your model as human readable Julia code
- Productive! Several visualization tools to help debug and tune your model.
- Portable! Compile your final model to Julia code.
Quickstart example
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 Luca Ferranti