Системы вывода
Система вывода Мамдани
#
FuzzyLogic.MamdaniFuzzySystem
— Type
struct MamdaniFuzzySystem{And<:FuzzyLogic.AbstractAnd, Or<:FuzzyLogic.AbstractOr, Impl<:FuzzyLogic.AbstractImplication, Aggr<:FuzzyLogic.AbstractAggregator, Defuzz<:FuzzyLogic.AbstractDefuzzifier, R<:FuzzyLogic.AbstractRule} <: FuzzyLogic.AbstractFuzzySystem
Структура данных, представляющая систему нечеткого вывода Мамдани 1-го типа. Ее можно создать с помощью макроса @mamfis
. Ее можно вызвать как функцию для оценки системы при заданных входных данных. Входные данные должны быть заданы как именованные аргументы.
-
name::Symbol
: имя системы. -
inputs::Dictionaries.Dictionary{Symbol, FuzzyLogic.Variable}
: входные переменные и соответствующая область. -
outputs::Dictionaries.Dictionary{Symbol, FuzzyLogic.Variable}
: выходные переменные и соответствующая область. -
rules::Vector{R} where R<:FuzzyLogic.AbstractRule
: правила вывода. -
and::FuzzyLogic.AbstractAnd
: метод, используемый для вычисления конъюнкции в правилах (по умолчаниюMinAnd
). -
or::FuzzyLogic.AbstractOr
: метод, используемый для вычисления дизъюнкции в правилах (по умолчаниюMaxOr
). -
implication::FuzzyLogic.AbstractImplication
: метод, используемый для вычисления импликации в правилах (по умолчаниюMinImplication
). -
aggregator::FuzzyLogic.AbstractAggregator
: метод, используемый для агрегирования нечетких выводов (по умолчаниюMaxAggregator
). -
defuzzifier::FuzzyLogic.AbstractDefuzzifier
: метод, используемый для приведения результата к четкости (по умолчаниюCentroidDefuzzifier
).
Расширенная справка
Пример
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)
# Вывод
1-element Dictionaries.Dictionary{Symbol, Float64}
:tip │ 5.558585929783786
Система вывода Сугено
#
FuzzyLogic.SugenoFuzzySystem
— Type
struct SugenoFuzzySystem{And<:FuzzyLogic.AbstractAnd, Or<:FuzzyLogic.AbstractOr, R<:FuzzyLogic.AbstractRule} <: FuzzyLogic.AbstractFuzzySystem
Структура данных, представляющая систему нечеткого вывода Сугено 1-го типа. Ее можно создать с помощью макроса @sugfis
. Ее можно вызвать как функцию для оценки системы при заданных входных данных. Входные данные должны быть заданы как именованные аргументы.
-
name::Symbol
: имя системы. -
inputs::Dictionaries.Dictionary{Symbol, FuzzyLogic.Variable}
: входные переменные и соответствующая область. -
outputs::Dictionaries.Dictionary{Symbol, FuzzyLogic.Variable}
: выходные переменные и соответствующая область. -
rules::Vector{R} where R<:FuzzyLogic.AbstractRule
: правила вывода. -
and::FuzzyLogic.AbstractAnd
: метод, используемый для вычисления конъюнкции в правилах (по умолчаниюMinAnd
). -
or::FuzzyLogic.AbstractOr
: метод, используемый для вычисления дизъюнкции в правилах (по умолчаниюMaxOr
).
#
FuzzyLogic.ConstantSugenoOutput
— Type
struct ConstantSugenoOutput{T<:Real} <: FuzzyLogic.AbstractSugenoOutputFunction
Представляет постоянный вывод в системах вывода Сугено.
-
c::Real
: значение постоянного вывода.
#
FuzzyLogic.LinearSugenoOutput
— Type
struct LinearSugenoOutput{T} <: FuzzyLogic.AbstractSugenoOutputFunction
Представляет выходную переменную, которая имеет полиномиальное отношение первого порядка к входным данным. Используется для систем вывода Сугено.
-
coeffs::Dictionaries.Dictionary{Symbol}
: коэффициенты, связанные с каждой входной переменной. -
offset::Any
: смещение вывода.
Общие функции
#
FuzzyLogic.set
— Function
set(fis::FuzzyLogic.AbstractFuzzySystem; kwargs...) -> Any
Создает копию заданных нечетких систем, но с новыми параметрами, указанными в именованных аргументах.
Входные данные
-
fis::AbstractFuzzySystem
— входная нечеткая система
Именованные аргументы
-
kwargs...
— новые параметры системы вывода, подлежащие настройке