Система нечіткого виведення (англ. fuzzy inference system) — система логічного виведення, яка базується на алгоритмі отримання нечітких висновків на основі нечітких передумов з використанням понять нечіткої логікиЛеоненков, А. В. Нечеткое моделирование в среде MATLAB и fuzzyTECH / А. В. Леоненков. — СПб.: БХВ-Петербург, 2005. — 736 с.. Процес нечіткого виведення поєднує в собі всі основні концепції теорії нечітких множин: функції належності, лінгвістичні змінні, нечіткі логічні операції, методи нечіткої імплікації і нечітку композиції. Системи нечіткого виведення дозволяють вирішувати завдання автоматичного керування, класифікації даних, розпізнавання образів, прийняття рішень, машинного навчання та багато інших.

Основні етапи нечіткого виведення

Системи нечіткого виводу призначені для перетворення значень вхідних змінних процесу у вихідні змінні на основі використання нечітких продукційних правил. Для цього системи нечіткого виведення повинні містити базу правил нечітких продукцій і реалізовувати нечітке виведення на основі посилок або умов, поданих у формі нечітких лінгвістичних висловлювань.

Основні етапи нечіткого виводу зображені на рисунку 1.

Формування бази знань у вигляді продукційних правил База правил систем нечіткого виводу призначена для формального зображення емпіричних знань або знань експертів в тій чи іншій проблемній області. У системах нечіткого виведення використовуються правила нечітких продукцій, в яких умови і висновки сформульовані в термінах нечітких лінгвістичних висловлювань.

Сукупність таких правил будемо далі називати базою правил нечітких продукцій. База правил нечітких продукцій є кінцевою множиною правил нечітких продукцій, узгоджених щодо використовуваних в них лінгвістичних змінних. Найбільш часто база правил представляється в формі структурованого тексту:

ПРАВИЛО_1: ЯКЩО «умова_1,  ТО висновок_1» (),

ПРАВИЛО_2: ЯКЩО «умова_2,  ТО висновок_2» (),

…

ПРАВИЛО_n: ЯКЩО «умова_n, ТО висновок_n» (),

де  — вагові коефіцієнти відповідних правил. Ці коефіцієнти можуть приймати значення з інтервалу [0, 1]. У разі, якщо ці вагові коефіцієнти відсутні, зручно прийняти, що їх значення дорівнює 1.

У системах нечіткого виведення лінгвістичні змінні, які використовуються в нечітких висловлюваннях передумови правил нечітких продукцій, часто називають вхідними лінгвістичними змінними, а змінні, які використовуються в нечітких висловлюваннях висновків правил нечітких продукцій, називають вихідними лінгвістичними змінними.

Фазифікація вхідних змінних В контексті нечіткої логіки під фазифікацією розуміють не тільки окремий етап виконання нечіткого виведення, а й власне процес або процедуру знаходження значень функцій належності нечітких множин (термів) на основі звичайних (НЕ нечітких) вихідних даних. Фазифікацію ще називають введенням нечіткості.

Метою етапу фазифікації є встановлення відповідності між конкретним (зазвичай чисельним) значенням окремої вхідної змінної системи нечіткого виведення і значенням функції належності відповідного їй терма вхідної лінгвістичної змінної. Після завершення цього етапу для всіх вхідних змінних повинні бути визначені конкретні значення функцій належності по кожному з лінгвістичних термів, використаних в передумовах бази правил системи нечіткого виведення.

Агрегування передумов в нечітких продукційних правилах. Агрегування (англ. aggregation) являє собою процедуру визначення ступеня істинності умов по кожному з правил системи нечіткого виведення. Формально процедура агрегування виконується наступним чином.

До початку цього етапу передбачаються відомими значення істинності всіх передумов системи нечіткого виведення, тобто множина значень . Далі розглядають кожну з умов правил системи нечіткого виведення. Якщо умова складається з декількох передумов, то визначається ступінь істинності складного висловлювання на основі відомих значень істинності передумов.

При цьому, для визначення результату нечіткої кон'юнкції або зв'язки «І» може бути використана одна з формул: логічна кон'юнкція: алгебраїчний добуток: граничний добуток: драстичний добуток: де  — функції належності нечітких висловлювань А та В відповідно.

Для визначення результату нечіткої диз'юнкції або зв'язки «АБО» може бути використана одна з формул:

логічна диз'юнкція: алгебраїчна сума: гранична сума: драстична сума: де  — функції належності нечітких висловлювань А та В відповідно.

При цьому значення використано як аргументи відповідних логічних операцій. Тим самим знаходяться кількісні значення істинності всіх умов правил системи нечіткого виведення.

Етап агрегування вважається закінченим, коли будуть знайдені всі значення для кожного з правил, що входять в базу правил системи нечіткого виведення.

Для ілюстрації виконання цього етапу розглянемо приклад процесу агрегування двох нечітких висловлювань: «швидкість автомобіля середня» І «кава гаряча» та «швидкість автомобіля середня» АБО «кава гаряча» для вхідної лінгвістичної змінної «швидкість руху автомобіля» та «температура кави».

Припустимо, що поточна швидкість автомобіля дорівнює 55 км/год, тобто , а температура кави дорівнює 70°, тобто . Тоді агрегування першого нечіткого висловлювання з використанням операції нечіткої кон'юнкції дає в результаті число (наближене значення), яке означає його ступінь істинності та визначається як мінімальне зі значень 0.67 та 0.8 (рис. 2, а). Агрегування другого нечіткого висловлювання з використанням операції нечіткої диз'юнкції дає в результаті число , яке означає його ступінь істинності та визначається як максимальне зі значень 0.67 та 0.8 (рис. 2, б).

Активізація або композиція висновків в нечітких продукційних правилах Активізація (англ. activation) в системах нечіткого виведення являє собою процедуру або процес знаходження ступеня істинності кожного з висновків правил нечітких продукцій. Формально процедура активізації виконується наступним чином.

До початку цього етапу передбачено відомими значення істинності всіх передумов системи нечіткого виведення, тобто множина значень та значення вагових коефіцієнтів для кожного правила. Далі розглядається кожне з висновків правил системи нечіткого виведення. Якщо висновком правила є нечітке висловлювання, то ступінь його істинності дорівнює алгебраїчному добутку відповідного значення на ваговий коефіцієнт.

Таким чином, знаходяться всі значення ступенів істинності висновків для кожного з правил, що входять в дану базу правил системи нечіткого виведення. Цю множину значень позначимо через , де  — загальна кількість висновків в базі правил.

Після знаходження множини визначаються функції належності кожного з висновків для розглянутих вихідних лінгвістичних змінних.

Для цієї мети можна використовувати один з методів, які є модифікацією того чи іншого методу нечіткої композиції: min-активізація: prod-активізація: average-активізація: де  — функція належності терму, який є значенням деякої вихідної змінної, заданої на універсумі .

Етап активізації вважається закінченим, коли для кожної з вихідних лінгвістичних змінних, що входять в окремі висновки правил нечітких продукцій, будуть визначені функції належності нечітких множин їх значень, тобто сукупність нечітких множин: , де  — загальна кількість висновків в базі правил системи нечіткого виведення.

Для ілюстрації виконання цього етапу розглянемо приклад процесу активізації укладення в наступному правилі нечіткої продукції: ЯКЩО «швидкість автомобіля середня», ТО «кава гаряча». Вхідною лінгвістичною змінною в цьому правилі є «швидкість руху автомобіля», а вихідною змінної є «температура кави». Припустимо, що поточна швидкість автомобіля дорівнює 55 км/год, тобто .

Оскільки агрегування умови цього правила дає в результаті , а ваговий коефіцієнт дорівнює 1 (за замовчуванням), то значення 0.67 буде використовуватися як для отримання результату активізації.

На рис. 3 (а) зеленим кольором зображено результат, отриманий методом min-активізації, а на рис. 3 (б) — результат, отриманий методом prod-активізації. Слід пам'ятати, що в цьому прикладі на відміну від попереднього «температура кави» — вихідна лінгвістична змінна.

Акумулювання висновків нечітких продукційних правил Акумуляція або акумулювання (англ. accumulation) в системах нечіткого виведення являє собою процедуру або процес знаходження функції належності для кожної з вихідних лінгвістичних змінних множини.

Мета акумуляції полягає в тому, щоб об'єднати або акумулювати всі ступені істинності висновків для отримання функції належності кожної з вихідних змінних. Причина необхідності виконання цього етапу полягає в тому, що висновки, які відносяться до однієї і тієї ж вихідної лінгвістичної змінної, належать різним правилам системи нечіткого виведення. Формально процедура акумуляції виконується наступним чином.

До початку цього етапу передбачаються відомими значення істинності всіх висновків для кожного з правил, що входять в дану базу правил системи нечіткого виведення, в формі сукупності нечітких множин: , де  — загальна кількість висновків в базі правил. Далі послідовно розглядається кожна з вихідних лінгвістичних змінних і пов'язані з нею нечіткі множини. Результат акумуляції для вихідної лінгвістичної змінної визначається як об'єднання нечітких множин за однією з формул: логічна диз'юнкція: алгебраїчна сума: гранична сума: де  — функції належності нечітких висловлюваннь А та В відповідно.

Етап акумуляції вважається закінченим, коли для кожної з вихідних лінгвістичних змінних будуть визначені підсумкові функції належності нечітких множин їх значень, тобто сукупність нечітких множин: , де  — загальна кількість вихідних лінгвістичних змінних в базі правил системи нечіткого виведення.

Для ілюстрації виконання цього етапу розглянемо приклад процесу акумуляції висновків для трьох нечітких множин, отриманих в результаті виконання процедури активізації для вихідної лінгвістичної змінної «швидкість руху автомобіля» в деякій системі нечіткого виведення. Припустимо, що функції належності цих нечітких множин зображені на рис. 4 (а), (б) та (в) відповідно.

Акумуляція цих функцій належності шляхом max-об'єднання нечітких множин дозволяє отримати в результаті функцію належності вихідної лінгвістичної змінної «швидкість руху автомобіля», яка представлена на рис. 4 (г).

Дефазифікація вихідної змінної Дефазифікація в системах нечіткого виведення являє собою процедуру або процес знаходження звичайного (НЕ нечіткого) значення для кожної з вихідних лінгвістичних змінних. Мета дефазифікації полягає в тому, щоб, використовуючи результати акумуляції всіх вихідних лінгвістичних змінних, отримати звичайне кількісне значення (crisp value) кожної з вихідних змінних, яке може бути використане спеціальними пристроями, що не належать до системи нечіткого виведення.

Основні алгоритми нечіткого виведення Розглянуті вище етапи нечіткого виводу можуть бути реалізовані неоднозначним чином, оскільки включають в себе окремі параметри, які повинні бути фіксовані або специфіковані. Тим самим вибір конкретних варіантів параметрів кожного з етапів визначає алгоритм, який в повному обсязі реалізує нечіткий висновок в системах правил нечітких продукцій. До теперішнього часу запропоновано кілька алгоритмів нечіткого виведенняКруглов, В. В. Нечеткая логика и искусственные нейронные сети / В. В. Круглов, М. И. Дли, Р. Ю. Голунов. — М.: ФИЗМАТЛИТ, 2001. — 201с.. Ті з них, які отримали найбільше застосування в системах нечіткого виведення, розглядаються нижче.

Алгоритм Мамдані (Mamdani) Алгоритм Мамдані є одним з перших, який знайшов застосування в системах нечіткого виведення. Він був запропонований у 1975 році англійським математиком Е. Мамдані (Ebrahim Mamdani) як метод для управління паровим двигуномMamdani, E. H., Application of fuzzy algorithms for the control of a simple dynamic plant. In Proc IEEE (1974), 121—159.. За своєю суттю цей алгоритм породжує розглянуті вище етапи, оскільки найбільшою мірою відповідає їх параметрам.