05 — Авторинг нечіткої системи¶
🇬🇧 English | 🇺🇦 Українська
Проєктуйте від рішення назад¶
Спочатку визначте числові виходи, які справді потрібні грі: Aggression, Brake, Altitude, Priority. Потім перелічіть вимірювані входи, що пояснюють ці рішення. Це допомагає уникнути змінних і правил, які нічого не змінюють.
Імена¶
Ім’я змінної або множини починається з літери й містить літери, цифри або _. Правила посилаються на ці імена буквально. Добрі назви описують сенс:
Distance, ReactorHeat, Integrity
Near, Mid, Far
Cautious, Watchful, Aggressive
Не використовуйте пробіли в ідентифікаторах. Імена входів і виходів мають бути унікальними в межах системи.
Діапазони та типові значення¶
Діапазон повинен охоплювати всі корисні значення. Вхід поза діапазоном буде затиснуто. Default Value входу використовується, доки компонент не отримав явне значення через Set Input.
Для нормалізованих рішень зручно використовувати 0…1. Фізичні входи можна лишати у природних одиницях: сантиметрах Unreal, градусах, відсотках або секундах.
Кількість множин¶
Для першої версії часто достатньо трьох множин: низьке, середнє, високе. Додавайте більше лише тоді, коли вони представляють окремий задум дизайнера. Надмірна кількість множин різко збільшує можливу кількість правил.
Кілька виходів¶
Одна система може формувати кілька незалежних рішень:
IF Distance IS Near THEN Aggression IS Aggressive
IF Distance IS Near THEN OrbitSpeed IS Slow
IF ReactorHeat IS Hot THEN Altitude IS High
Кожне правило має один наслідок, але кілька правил можуть використовувати ту саму передумову для різних виходів.
Робочий цикл у редакторі¶
- Створіть входи та їх множини в Details.
- Перевірте покриття діапазону на вкладці Variables.
- Додайте виходи та їх множини.
- Запишіть мінімальний набір правил.
- Перейдіть у Inference: входи видно ліворуч, результати — праворуч.
- Перевірте крайні значення, точки перетину множин і типові сценарії.
- Перегляньте Compile Log і усуньте помилки.
- Збережіть Data Asset або експортуйте пресет через Save To JSON.
Практичні поради¶
- Покрийте весь робочий діапазон входу хоча б однією множиною.
- Починайте зі стандартних налаштувань Мамдані та
Centroid. - Спочатку використовуйте короткі правила з однією-двома умовами.
- Не намагайтеся відтворити таблицю точних винятків. Для дискретних винятків краще звичайний код.
- Якщо результат дивує, дивіться не лише число, а й
InputMemberships,RuleActivationsта агреговану поверхню.
Повний синтаксис правил описано у 06 — Мова правил.