SugenoEngine¶
Полное описание генерируется из src/openfll/__init__.py (стаб для griffe)
и src/openfll/__init__.pyi (type hints для IDE). Чтобы обновить —
правьте только docstring'и в стабе, затем пересоберите документацию
(mkdocs build --strict).
Класс¶
Linear facade for Sugeno fuzzy logic model.
See README.md and docs/ for full usage examples. Online docs: https://spars-tusur.github.io/openfll-python/
__init__()
¶
Create an empty Sugeno engine.
add_input_var(name)
¶
add_output_var(name)
¶
add_membership_func(var_name, mf_name, type, params)
¶
add_rule(antecedent, consequent, t_norm=None, s_norm=None)
¶
set_default_t_norm(name)
¶
set_default_s_norm(name)
¶
build()
¶
set_input(name, value)
¶
get_output(name)
¶
calculate()
¶
is_built()
¶
Две формы правил¶
В SugenoEngine есть две формы add_rule:
Текстовая форма¶
- Поддерживает
AND/ORи явные[norm_name]. - Удобна для статических моделей, записанных вручную.
Кортежная (структурная) форма¶
engine.add_rule(
antecedent=[("x1", "low"), ("x2", "high")],
consequent=[("y", "open")],
t_norm="prod_and", # default: "" → engine default t-norm
s_norm="", # default: "" → engine default s-norm
)
- Удобна для программной генерации правил (списки в цикле,
itertools.product). - Все операторы между термами
antecedent—AND. ДляORиспользуйте текстовую форму. - Опциональные
t_norm/s_normсовпадают с именами изset_default_t_norm/set_default_s_norm. Если не заданы — используются дефолтные.
Обе формы полностью эквивалентны по вычислениям: тест на parity даёт max abs diff = 0.0 между текстовой и кортежной формой для одного и того же набора правил.