FuzzyLogic.jl
Библиотека Julia для нечеткой логики и приложений.
Если вы используете ее в своих исследованиях, пожалуйста, ссылайтесь на нее следующим образом:
@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}}
Возможности
-
Широкая функциональность! Доступны системы вывода Мамдани и Сугено 1-го и 2-го типов, несколько функций принадлежности и параметры алгоритмов.
-
Совместимость! Считывайте модели из файлов IEC 61131-7 Fuzzy Control Language, IEEE 1855-2016 Fuzzy Markup Language и Matlab Fuzzy toolbox
.fis
. -
Выразительность! Четкий предметно-ориентированный язык для написания модели в виде понятного пользователю кода Julia.
-
Производительность! Несколько инструментов визуализации для отладки и настройки модели.
-
Переносимость! Компилируйте конечную модель в код Julia.
Пример быстрого начала работы
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 (c) 2022 Luca Ferranti, выпущено по лицензии MIT.