FuzzyLogic.jl: a Flexible Library for Efficient and Productive Fuzzy Inference
Luca Ferranti, Jani Boutellier
TL;DR
FuzzyLogic.jl addresses the need for a flexible, high-performance, open-source library for fuzzy inference that supports Type-2 systems and interoperates with standard model formats. It achieves this via a Julia-based DSL for expressive system description, a type-parametrized architecture for compile-time algorithm selection, and modular components that can be extended with custom functions and defuzzifiers. The library reads FCL, FML, and Matlab .fis models, visualizes and debugs fuzzy systems, and can generate standalone Julia code, yielding significant speedups over Matlab in benchmark tasks. The work offers a practical, interoperable tool for researchers and practitioners to design, compare, and deploy fuzzy inference systems.
Abstract
This paper introduces \textsc{FuzzyLogic.jl}, a Julia library to perform fuzzy inference. The library is fully open-source and released under a permissive license. The core design principles of the library are: user-friendliness, flexibility, efficiency and interoperability. Particularly, our library is easy to use, allows to specify fuzzy systems in an expressive yet concise domain specific language, has several visualization tools, supports popular inference systems like Mamdani, Sugeno and Type-2 systems, can be easily expanded with custom user settings or algorithms and can perform fuzzy inference efficiently. It also allows reading fuzzy models from other formats such as Matlab .fis, FCL or FML. In this paper, we describe the library main features and benchmark it with a few examples, showing it achieves significant speedup compared to the Matlab fuzzy toolbox.
