Нечітка логіка () — розділ математики, який є узагальненням класичної логіки і теорії множин. Уперше введений Лотфі Заде в 1965 році як розділ, що вивчає об'єкти з функцією належності елемента до множини, який приймає значення у інтервалі [0, 1], а не тільки 0 або 1. На основі цього поняття вводяться логічні операції над нечіткими множинами, і формулюється поняття лінгвістичної змінної, якою виступають нечіткі множини.
Предметом нечіткої логіки вважається дослідження суджень в умовах нечіткості, які схожі з судженнями у звичайному сенсі, та їх застосування у обчислювальних системах.
Історія Основи нечіткої логіки були закладені наприкінці 60-х років у працях відомого американського математика Лотфі Заде. Соціальне замовлення на дослідження подібного роду було викликано зростаючим незадоволенням експертними системами. Хвалений «штучний інтелект», що легко справлявся із задачами керування складними технічними комплексами, був безпорадним при найпростіших висловленнях повсякденного життя, типу «Якщо машиною перед тобою керує недосвідчений водій — тримайся від неї подалі». Для створення дійсно інтелектуальних систем, здатних адекватно взаємодіяти з людиною, необхідний був новий математичний апарат, що переводить невиразні і неоднозначні життєві твердження в мову чітких і формальних математичних формул.
Першим серйозним кроком у цьому напрямку з'явилася теорія нечітких множин, розроблена Заде. Його робота «Fuzzy Sets», що з'явилася в 1965 році в журналі «Information and Control», заклала основи моделювання інтелектуальної діяльності людини і стала початковим поштовхом до розвитку нової математичної теорії. Він же дав і назву для нової області науки -«fuzzy logic»(fuzzy — нечіткий, розмитий, м'який).
У США розвиток нечіткої логіки йде по шляху створення систем, що потрібні великому бізнесу і військовим. Нечітка логіка застосовується при аналізі нових ринків, біржовій грі, оцінці політичних рейтингів, виборі оптимальної цінової стратегії, оцінці рівня зрілості процесів захисту інформації і т. ін. З'явилися і комерційні системи масового застосування.
Зсув центра досліджень нечітких систем вбік практичних застосувань привело до постановки цілого ряду проблем, зокрема: нові архітектури комп'ютерів для нечітких обчислень; елементна база нечітких комп'ютерів і контролерів; інструментальні засоби розробки; інженерні методи розрахунку і розробки нечітких систем керування, тощо.
На відміну від булевої алгебри, у котрій існує лише дві величини (0 та 1, правда чи неправда) у нечіткій логіці існують також перехідні величини (стани).
Одні з основних понять нечіткої логіки: нечіткі множини, фазіфікація/дефазіфікація, фазі-операція.
У останні роки значення нечіткої логіки стрімко виросло у світі високих технологій.
Нечітка множина Нечітка множина — це пара (A, m), де A — ім'я нечіткої множини, наприклад: ВЕЛИКИЙ, МОЛОДИЙ, НЕГАТИВНО МАЛИЙ, а m — функція m: X → L, звана функцією приналежності і позначала зазвичай грецькою буквою мю. Часто покладається L = [0,1], а як X використовується деяка множина дійсних чисел. m (x) інтерпретується як ступінь приналежності елемента x з X нечіткій множині A. Функція приналежності може розглядатися як узагальнена характеристична функція множини. Зазвичай на нечітку множину посилаються або за її ім'ям, або за функцією приналежності. Нечітка множина A може розглядатись як значення деякої лінгвістичної змінної. Наприклад, лінгвістична змінна ПОМИЛКА може мати значення НЕГАТИВНО ВЕЛИКА, НЕГАТИВНО МАЛА, НУЛЬ, ПОЗИТИВНО МАЛА, ПОЗИТИВНО ВЕЛИКА, які в нечітких регуляторах позначаються звичайно як НВ, НМ, Н, ПМ, ПВ. Оскільки операції над нечіткими множинами визначаються операціями над їх функціями належності, то при дослідженні алгебраїчних властивостей нечітких множин, часто нечітку множину ототожнюють з її функцією приналежності і визначають як функцію A: X → L.
Апарат теорії нечітких множин, продемонструвавши ряд багатообіцяючих можливостей застосування — від систем керування літальними апаратами до прогнозування підсумків виборів, виявився разом з тим надмірно складним для втілення, враховуючи наявний на той час рівень технології — і на багато років нечітка логіка зайняла своє місце в ряді інших спеціальних наукових дисциплін — десь посередині між експертними системами і нейронними мережами…
Нечітка підмножина
Нечітка підмножина відрізняється від звичайної тим, що для елементів u з U немає однозначної відповіді «ні» або «так» щодо властивості G.
Нечітка і лінгвістична змінні При описі об'єктів і явищ за допомогою нечітких множин використовується поняття нечіткої і лінгвістичної змінних.
Нечітка змінна Нечітка змінна характеризується трійкою <a, X, A>, де a — найменування змінної, X — універсальна множина (область визначення a), A — нечітка множина на X, що описує обмеження (тобто m A(x)) на значення нечіткої змінної a.
Лінгвістична змінна
Лінгвістичною змінною називається набір <b ,T, X, G, M>, де b - найменування лінгвістичної змінної; Т — множина її значень (терм-множина), що представляють собою імена нечітких змінних, областю визначення, кожної з яких є множина X. Множина T називається базовою терм-множиною лінгвістичної змінної; G — синтаксична процедура, що дозволяє оперувати елементами терм-множини T, зокрема, генерувати нові терми (значення). Множина TИG(T), де G(T) — множина згенерованих термів, називається розширеною терм-множиною лінгвістичної змінної; М — семантична процедура, що дозволяє перетворити кожне нове значення лінгвістичної змінної, утвореною процедурою G, у нечітку змінну, тобто сформувати відповідну нечітку множину.
Нечіткі множини в системах керування Найбільш важливим застосуванням теорії нечітких множин є контролери нечіткої логіки. Їх функціонування дещо відрізняється від роботи звичайних контролерів; для опису системи замість диференційних рівнянь використовуються знання експертів. Ці знання можуть бути виражені за допомогою лінгвістичних змінних, які описані нечіткими множинами.
Загальна структура нечіткого мікроконтролера Загальна структура мікроконтролера, що використовує нечітку логіку. Вона містить у своєму складі наступні складові: блок фазіфікації; базу знань; блок рішень; блок дефазіфікації. Блок фазіфікації перетворює чіткі величини, виміряні на виході об'єкта керування, у нечіткі величини, що описані лінгвістичними змінними в базі знань.
Блок рішень використовує нечіткі продукційні правила (if — then), закладені в базі знань, для перетворення нечітких вхідних даних у необхідні керуючі впливи, що носять також нечіткий характер.
Блок дефазіфікації перетворює нечіткі дані з виходу блоку рішень у чітку величину, що використовується для керування об'єктом
Як приклад відомих мікроконтролерів, що підтримують нечітку логіку можна назвати 68HC11, 68HC12 фірми Motorola, MCS-96 фірми Intel, а також деякі інші.
Всі системи з нечіткою логікою функціонують за одним принципом: показання вимірювальних приладів: фазіфікуються (перетворюються в нечіткий формат), обробляються, дефазіфікуються й у вигляді звичайних сигналів подаються на виконавчі пристрої.
Розглянемо випадок керування мобільним роботом, задачею якого є об'їзд перешкод. Введемо дві лінгвістичні змінні: ДИСТАНЦІЯ (відстань від робота до перешкоди) і НАПРЯМОК (кут між подовжньою віссю робота та напрямком на перешкоду).
Розглянемо лінгвістичну змінну ДИСТАНЦІЯ. Значеннями її можна визначити терми ДАЛЕКО, СЕРЕДНЬО, БЛИЗЬКО і ДУЖЕ БЛИЗЬКО. Для фізичної реалізації лінгвістичної змінної необхідно визначити точні фізичні значення термів цієї змінної. Нехай змінна ДИСТАНЦІЯ може приймати будь-які значення з діапазону від нуля до нескінченності. Відповідно до теорії нечітких множин, у такому випадку кожному значенню відстані з зазначеного діапазону може бути поставлене у відповідність деяке число від нуля до одиниці, що визначає ступінь приналежності даної фізичної відстані (припустимо 40 см) до того чи іншого терму лінгвістичної змінної ДИСТАНЦІЯ. Ступінь приналежності визначаємо функцією приналежності М(d), де d-відстань до перешкоди. У нашому випадку відстані 40 см. Можна задати ступінь приналежності до терму ДУЖЕ БЛИЗЬКО рівним 0,7, а до терму БЛИЗЬКО — 0,3 (рис. 2.). Конкретне визначення ступеня приналежності може проходити тільки при роботі з експертами.
Нечітка логіка в Matlab Fuzzy logic toolbox — вбудована в Matlab сукупність функцій, що містить набір засобів, які дозволяють: створювати і редагувати нечіткі системи всередині середовища Matlab; вбудовувати нечітку підсистему в SimuLink (поставляється з Matlab) при моделюванні загальної системи; побудувати нечітку систему в Matlab у вигляді процедури, що викликається з програми, яка написана на мові Сі. Даний набір інструментів забезпечує три категорії інструментальних засобів програмування нечітких систем: функції командного рядка (command line functions); графічний інтерактивний інтерфейс; використання вбудованих блоків SimuLink. Перша категорія — готові функції, які можна викликати відразу з командного рядка Matlab. Практично усі вони являють собою м-файли, що містять послідовність виразів, що виконують спеціалізований нечіткий алгоритм. Для перегляду вихідного коду функцій необхідно набрати в командному рядку: type ім'я_функції
Крім того, Matlab дозволяє їх модифікувати шляхом копіювання і перейменування відповідного файлу та наступного його редагування. Таким чином, нечіткий набір інструментів є розширеним власними функціями.
Друга категорія дозволяє отримати доступ до тих самих функцій через графічний користувальницький інтерфейс, за допомогою якого набагато зручніше конструювати й аналізувати нечіткі системи.
Третя категорія — моделювання в середовищі SimuLink. Тут підсистеми представляються у виді блоків — можна з'єднати будь-яким чином і відразу отримати результати.
У Matlab є багато вбудованих функцій приналежності, зокрема: сигмоїдальна; двостороння сигмоїдальна; гаусова; дзвоноподібної форми S-функція приналежності; Z-функція приналежності; трапецеподібна; трикутна й ін. Усі дії над нечіткими числами задаються мінімальним набором функцій і відбуваються всередині програми. Таким чином, користувачу необов'язково вивчати усі тонкощі теорії нечітких множин, достатньо лише визначити усі вхідні і вихідні змінні і задати таблицю правил, а решту роботи робить Matlab. Дефазифікація виконується в один з п'ятьох методів, зазначених програмістом. Крім того, можна вивести на екран відповідно до введених правил результуючі поверхні керування в залежності від комбінації входів, схему отриманої нечіткої програми, і це лише мала частина всіх можливостей даного набору інструментів
Переваги нечітких систем Коротко перелічимо відмітні переваги fuzzy-систем у порівнянні з іншими: можливість оперувати вхідними даними, заданими нечітко: наприклад, що безупинно змінюються в часі значення (динамічні задачі), значення, що неможливо задати однозначно (результати статистичних опитувань, рекламні кампанії тощо); можливість нечіткої формалізації критеріїв оцінки і порівняння: оперування критеріями «більшість», «можливо», «переважно» тощо; можливість проведення якісних оцінок як вхідних даних, так і виведених результатів: ви оперуєте не тільки значеннями даних, але їхнім ступенем достовірності (не плутати з імовірністю!) і її розподілом; можливість проведення швидкого моделювання складних динамічних систем і їхній порівняльний аналіз із заданим ступенем точності: оперуючи принципами поведінки системи, описаними fuzzy-методами, ви по-перше, не витрачаєте багато часу на з'ясування точних значень змінних і складання рівнянь, що їх описують, по-друге, можете оцінити різні варіанти вихідних значень.
Застосування нечітких систем Що стосується вітчизняного ринку комерційних систем на основі нечіткої логіки, то його формування почалося в середині 1995 року. Найбільш популярні в замовників наступні пакети: CubiCalc 2.0 RTC — одна з найбільш потужних комерційних експертних систем на основі нечіткої логіки, що дозволяє створювати власні прикладні експертні системи ;