Skip to content

Архитектура

Слои

┌─────────────────────────────────────────────────────────────┐
│ Python (PyFLL)                                               │
│   engine.add_input_var("x1")                                │
│   engine.add_membership_func("x1", "low", "triangular", ...)│
│   engine.add_rule('IF x1 IS "low" AND x2 IS "fast" THEN ...') │
│   engine.build(); engine.calculate(); engine.get_output("y") │
└─────────────────────────┬───────────────────────────────────┘
                          │ pybind11
┌─────────────────────────▼───────────────────────────────────┐
│ Linear Facade (C++, header-only)                            │
│   OFLL::Linear::SugenoEngine                                │
│   - add_input_var / add_output_var / add_membership_func     │
│   - add_rule (строковый парсер)                              │
│   - set_default_t_norm / set_default_s_norm                  │
│   - build / set_input / calculate / get_output               │
│   - name→shared_ptr индексы (внутри)                         │
│   - NormId → tag-dispatch в switch (Min/Max/ProdAnd/...)     │
└─────────────────────────┬───────────────────────────────────┘
                          │ прямые вызовы
┌─────────────────────────▼───────────────────────────────────┐
│ Ядро OpenFLL (стат. библиотека)                              │
│   SugenoBuilder / MamdaniBuilder / RulesBuilder              │
│   Sugeno / Mamdani (наследники BaseModel)                    │
│   IDefuzzer (WtaverDefuzzer / WtsumDefuzzer для Sugeno)      │
│   Var / IMembershipFunction / t-norm / s-norm операторы      │
│   ResourcePool (internal storage)                           │
└─────────────────────────────────────────────────────────────┘

Документы