Нечітка логіка
Нечітка логіка (англ. fuzzy logic) — розділ математики, який є узагальненням класичної логіки і теорії множин. Уперше введений Лотфі Заде в 1965 році[1][2][3] як розділ, що вивчає об'єкти з функцією належності елемента до множини, який приймає значення у інтервалі [0, 1], а не тільки 0 або 1. На основі цього поняття вводяться логічні операції над нечіткими множинами, і формулюється поняття лінгвістичної змінної, якою виступають нечіткі множини.
Предметом нечіткої логіки вважається дослідження суджень в умовах нечіткості, які схожі з судженнями у звичайному сенсі, та їх застосування у обчислювальних системах.
Основи нечіткої логіки були закладені наприкінці 60-х років у працях відомого американського математика Лотфі Заде[4]. Соціальне замовлення на дослідження подібного роду було викликано зростаючим незадоволенням експертними системами. Хвалений «штучний інтелект», що легко справлявся із задачами керування складними технічними комплексами, був безпорадним при найпростіших висловленнях повсякденного життя, типу «Якщо машиною перед тобою керує недосвідчений водій — тримайся від неї подалі». Для створення дійсно інтелектуальних систем, здатних адекватно взаємодіяти з людиною, необхідний був новий математичний апарат, що переводить невиразні і неоднозначні життєві твердження в мову чітких і формальних математичних формул.
Першим серйозним кроком у цьому напрямку з'явилася теорія нечітких множин, розроблена Заде. Його робота «Fuzzy Sets», що з'явилася в 1965 році в журналі «Information and Control», заклала основи моделювання інтелектуальної діяльності людини і з'явилася початковим поштовхом до розвитку нової математичної теорії. Він же дав і назву для нової області науки -«fuzzy logic»(fuzzy — нечіткий, розмитий, м'який).
У США розвиток нечіткої логіки йде по шляху створення систем, що потрібні великому бізнесу і військовим. Нечітка логіка застосовується при аналізі нових ринків, біржовій грі, оцінці політичних рейтингів, виборі оптимальної цінової стратегії, оцінці рівня зрілості процесів захисту інформації[5] і т. ін. З'явилися і комерційні системи масового застосування.
Зсув центра досліджень нечітких систем вбік практичних застосувань привело до постановки цілого ряду проблем, зокрема:
- нові архітектури комп'ютерів для нечітких обчислень;
- елементна база нечітких комп'ютерів і контролерів;
- інструментальні засоби розробки;
- інженерні методи розрахунку і розробки нечітких систем керування, тощо.
На відміну від булевої алгебри, у котрій існує лише дві величини (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.). Конкретне визначення ступеня приналежності може проходити тільки при роботі з експертами.
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 — одна з найбільш могутніх комерційних експертних систем на основі нечіткої логіки, що дозволяє створювати власні прикладні експертні системи ;
- CubiQuick — дешева <університетська> версія пакета CubiCalc ;
- RuleMaker — програма автоматичного витягу нечітких правил із вхідних даних ;
- FuziCalc — електронна таблиця з нечіткими полями, що дозволяє робити швидкі оцінки при неточно відомих даних без нагромадження похибки;
- OWL — пакет, що містить вихідні тексти усіх відомих видів нейронних мереж, нечіткої асоціативної пам'яті тощо.
Основними споживачами нечіткої логіки на ринку в пострадянських країнах є банкіри і фінансисти, а також фахівці в області політичного й економічного аналізу. Вони використовують CubiCalc для створення моделей різних економічних, політичних, біржових ситуацій. Що ж стосується легкого в освоєнні пакета FuziCalc, то він зайняв своє місце на комп'ютерах великих банкірів і фахівців з надзвичайних ситуацій — тобто тих, для кого найбільше важлива швидкість проведення розрахунків в умовах неповноти і неточності вхідної інформації. Однак можна з упевненістю сказати, що епоха розквіту прикладного використання нечіткої логіки на вітчизняному ринку ще попереду.
Сьогодні елементи нечіткої логіки можна знайти в десятках промислових виробів — від систем керування електропоїздами і бойовими вертольотами до пилососів і пральних машин. Рекламні кампанії багатьох фірм (переважно японських) підносять успіхи у використанні нечіткої логіки як особливу конкурентну перевагу. Без застосування нечіткої логіки немислимі сучасні ситуаційні центри керівників західних країн, у яких приймаються ключові політичні рішення і моделюються всілякі кризові ситуації. Одним із вражаючих прикладів масштабного застосування нечіткої логіки стало комплексне моделювання системи охорони здоров'я і соціального забезпечення Великої Британії (National Health Service — NHS), що вперше дозволило точно оцінити й оптимізувати витрати на соціальні нестатки.
Не обійшли засоби нечіткої логіки і програмні системи, що обслуговують великий бізнес. Першими, зрозуміло, були фінансисти, задачі яких вимагають щоденного прийняття правильних рішень у складних умовах непередбаченого ринку. Перший рік використання системи Fuji Bank приносив банку в середньому $770000 на місяць (і це тільки офіційно оголошений прибуток !).
Слідом за фінансистами, стурбовані успіхами японців і втратою стратегічної ініціативи, когнітивними нечіткими схемами зацікавилися промислові гіганти США. Motorola, General Electric, Otis Elevator, Pacific Gas & Electric, Ford і інші на початку 90-х почали інвестувати в розробку виробів, що використовують нечітку логіку. Маючи солідну фінансову «підтримку», фірми, що спеціалізуються на нечіткій логіці, одержали можливість адаптувати свої розробки для широкого кола застосувань. «Зброя еліти» вийшла на масовий ринок.
Серед лідерів нового ринку виділяється американська компанія Hyper Logic, заснована в 1987 році Фредом Воткінсом (Fred Watkins). Спочатку компанія спеціалізувалася на нейронних мережах, однак незабаром цілком сконцентрувалася на нечіткій логіці. Недавно вийшла на ринок друга версія пакета CubiCalc фірми HyperLogic, яка є однієї з найбільш могутніх експертних систем на основі нечіткої логіки. Пакет містить інтерактивну оболонку для розробки нечітких експертних систем і систем керування, а також run-time модуль, що дозволяє оформляти створені користувачем системи у виді окремих програм.
Крім Hyper Logic серед «патріархів» нечіткої логіки можна також назвати такі фірми як IntelligenceWare, InfraLogic, Aptronix. Усього ж на світовому ринку представлено більш 100 пакетів, які тим чи іншим видом використовують нечітку логіку. У трьох десятках СУБД реалізована функція нечіткого пошуку. Власні програми на основі нечіткої логіки анонсували такі гіганти як IBM, Oracle і інші.
Символічна нечітка логіка Символічна нечітка логіка засновується на понятті t-норми. Після вибору деякої t-норми з'являється можливість визначити основні операції: кон'юнкцію диз'юнкцію, імплікацію, заперечення та ін.
Неважко довести теорему про те, що дистрибутивніть, притаманна класичній логіці, виконується тільки у випадку якщо t-норма є t-нормою Гьоделя.
Нечітка логіка та нейронні мережі Оскільки нечіткі множини описуються функціями належності, а t-норми та k-норми звичайними математичними операціями, можна уявити нечіткі логічні міркування у вигляді нейронної мережі. Для цього функції приналежності треба інтерпретувати як функції активації нейронів, передачу сигналів як зв'язку, а логічні t-норми та k-норми, як спеціальні види нейронів, що виконують математичні відповідні операції. Існує велика різноманітність подібних нейро-нечітких мереж. Наприклад, ANFIS (Adaptive Neuro fuzzy Inference System) — адаптивна нейро-нечітка система виводу.
Вона може бути описана в універсальній формі апроксиматорів як
,
крім того цією формулою можуть бути описані деякі нейронні мережі, так як радіально базисні мережі (RBF), багатошарові персептрони (MLP), а також вейвлети і сплайни.
У визначеннях, прийнятих для лінгвістичної змінної:
- X = «Температура в кімнаті»
- U = [5, 35]
- T = {"холодно", «комфортно», «жарко»}
Характеристичні функції:
Правило G породує нові терми з використанням зв'я́зок «і», «або», «не», «дуже», «більш менш».
- не A:
- дуже A:
- більш менш A:
- A або B:
- ↑ Zadeh, L. A. (1965). Fuzzy sets. Information and Control. 8 (3): 338. doi:10.1016/S0019-9958(65)90241-X. (англ.)
- ↑ Zadeh, L. A. (1996). Fuzzy logic = computing with words. IEEE Transactions on Fuzzy Systems. 4 (2): 103. doi:10.1109/91.493904. (англ.)
- ↑ Zadeh, L. A. (1968). Fuzzy algorithms. Information and Control. 12 (2): 94. doi:10.1016/S0019-9958(68)90211-8. (англ.)
- ↑ Беллман Р., Заде Л. (1976). Принятие решений в расплывчатых условиях - в книге Вопросы анализа и принятия решений (рос.). Москва: Мир. с. 172—215.
- ↑ Потій О.В., Лєншин А.В. (2005). Основні положення математичного апарату суб’єктивної логіки та його застосування для оцінки рівня зрілості систем забезпечення безпеки інформації //Радіотехніка. Тематичний випуск “Інформаційна безпека” (укр.). Харків: Харківський національний університет радіоелектроніки. с. 144—160.
- Нечітка логіка на Порталі знань [Архівовано 17 квітня 2009 у Wayback Machine.]
- Нечітка логіка: лекція [Архівовано 25 вересня 2009 у Wayback Machine.]
- http://www.znannya.org/?view=fuzzy-logic-q [Архівовано 29 листопада 2014 у Wayback Machine.]
- https://sites.google.com/site/ne4itkalogika/osnovi-teoriie-necitkih-mnozin/necitki-mnozini-ta-zminni [Архівовано 24 грудня 2014 у Wayback Machine.]
- Нечітке прогнозування очікуваного збитку від повеней на основі екстраполяцій / Ю. Д. Стефанишина // Екологічна безпека та природокористування: Зб. наук. пр. — К., 2009. — Вип. 4. — С. 49-60. http://dspace.nbuv.gov.ua/handle/123456789/19377 [Архівовано 12 серпня 2016 у Wayback Machine.]