Нечеткая логика - это математическая наука, служащая расширением логики классической и основанная на концепции частичной правды, которая находится где-то посредине между “да” и “нет”. Выражения, подобные таким, как “слегка тепло” или “довольно холодно”, становится возможно формулировать математически и обрабатывать на компьютерах. Термин fuzzy (англ. нечеткий, размытый - произносится “фази”) сегодня стал ключевым в ряде важнейших технологий.
Использование нечеткого управления обычно рекомендуется для очень сложных процессов (когда не существует простой математической модели их описания) для нелинейных процессов высоких порядков, а также в том случае, когда должна производиться обработка (лингвистически сформулированных) экспертных знаний. Если же приемлемый результат может быть получен с помощью общей теории управления или уже существует формализованная и адекватная математическая модель, стоит использовать традиционные методы.
Классической стала статья Лотфи Заде “Нечеткие множества”, опубликованная в журнале “Информатика и управление” в 1965 г. Здесь он впервые ввел понятие “нечеткое множество”. В последующих статьях им был разработан фази-алгоритм. Существует легенда о том, каким образом была придумана теория нечетких множеств. Однажды Заде имел длинную дискуссию со своим другом относительно того, чья жена привлекательнее. Термин “привлекательная” - очень неопределенный, и в результате дискуссии они так и не смогли прийти к удовлетворительному итогу. Это вынудило Заде сформулировать концепцию, которая выражает нечеткие понятия типа “привлекательная” в числовой форме. Первое практическое применение фази-теории в начале 80-х годов связано с управлением обжиговой цементной печью и химическим инжектором в установке по очистке воды.
Нечеткая логика
Нечеткие числа, получаемые в результате, как говорят обычно, “не вполне точных измерений”, во многом аналогичны распределениям теории вероятностей, но свободны от их недостатков. В пределе возрастания точности нечеткая логика приходит к стандартной, булевой. К нечетким множествам можно применять следующие операции: объединение, пересечение, дополнение, концентрация, размывание. Под фазификацией понимается сопоставление множества значений х ее функции принадлежности М(х), т. е. перевод значений х в нечеткий формат. Дефазификация - это процесс, обратный фазификации. Для пояснения рассмотрим конкретный пример, связанный с возрастом человека. Так, до 16 лет нельзя однозначно утверждать, что человек молодой (например, 15-летие относится к термину “молодой” с рангом около 0,9 ). Зато диапазону от 16 до 30 лет можно смело присвоить ранг 1, так как человек в этом возрасте действительно молодой. После 30 он вроде уже не молодой, но еще и не старый, здесь принадлежность возрасту (ранг) термина “молодой” будет принимать значения в интервале от 0 до 1. И чем больше возраст человека, тем меньше становится его принадлежность к соответствующему терму (см. ниже), следовательно, ранг будет стремиться к нулю. Все системы с нечеткой логикой функционируют по одному принципу: показания измерительных приборов фазифицируются (переводятся в нечеткий формат), обрабатываются, дефазифицируются и в виде привычных сигналов подаются на исполнительные устройства.
Степень принадлежности - это совсем не вероятность, так как функция распределения неизвестна и нет повторяемости экспериментов. Например, если из прогноза погоды взять два взаимоисключающих события: будет дождь и не будет дождя и присвоить им некоторые ранги, то сумма этих рангов не обязательно окажется равна 1, но если равенство все-таки есть, то нечеткое множество считается нормированным. Значения функции принадлежности M(x) могут быть взяты только из априорных знаний, интуиции, опыта или опроса экспертов.
В нечеткой логике вводится понятие лингвистической переменной, значениями которой являются не числа, а слова естественного языка, называемые термами. Например, в случае управления мобильным роботом, задачей которого является объезд препятствий, можно ввести две лингвистические переменные: “дистанция” (расстояние от робота до препятствия) и “направление” (угол между продольной осью робота и направлением на препятствие). Рассмотрим лингвистическую переменную “дистанция”. Значениями ее можно определить термы “далеко”, “средне” и “очень близко”. Для физической реализации лингвистической переменной необходимо определить точные физические значения термов этой переменной. Пусть переменная “дистанция” может принимать любое значение из диапазона от нуля до бесконечности. Согласно положениям теории нечетких множеств, в таком случае каждому значению расстояния из указанного диапазона может быть поставлено в соответствие некоторое число от нуля до единицы, которое определяет степень принадлежности данного физического расстояния (например, 50 см) к тому или иному терму лингвистической переменной “дистанция”. Степень принадлежности определяется так называемой функцией принадлежности М(d), где d - расстояние до помехи. В нашем случае расстоянию (50 см) можно задать степень принадлежности к терму “очень близко”, равную 0,7, а к терму “близко” - 0,3. Конкретно степень принадлежности можно определить только при работе с экспертами.
На сегодняшний день с помощью нечеткой логики реализованы тысячи проектов - от посудомоечных машин, автомобилей и фотокамер с автофокусировкой в потребительском секторе до контроллеров поточного производства, атомных реакторов, аэрокосмических систем и систем военного назначения. Два ключевых преимущества нечеткой логики по сравнению с другими интеллектуальными системами заключаются в том, что, во-первых, при тех же объемах входной и выходной информации центральный блок принятия решений становится компактнее и проще для восприятия человеком. А во-вторых, решение сложной и громоздкой задачи вычисления точных воздействий подменяется значительно более простой и гибкой стратегией адаптивного приближения при сохранении требуемой точности результата. Очевидной областью внедрения являются всевозможные экспертные системы, в том числе нелинейный контроль за производственными процессами, а также самообучающиеся системы, называемые иначе классификаторами. При исследовании рисковых и критических ситуаций особенно ценится способность системы с нечеткой логикой одновременно совершенствовать несколько каналов обобщения правил, что заметно отличает этот подход от систем искусственного интеллекта, поочередно охватывающих одну закономерность за другой. Внедрение подобных систем перспективно при распознавании образов, финансовом анализе (рынки ценных бумаг), исследовании данных (корпоративные хранилища), совершенствовании стратегий управления и координации действий. Возможно внедрение фази-логики в сферах медицины, психологии, законодательства, юриспруденции.
Аппаратная реализация
Трудности оперирования нечеткими множествами в исходном пространстве преодолеваются путем их преобразования в безразмерные числовые переменные, для чего используются обычные правила, принятые в математическом анализе. Затем после получения результата в терминах безразмерных переменных используется обратное преобразование, которое соответствует получению результата в терминах физических переменных. Подобная ситуация имеет место в элементарной математике, когда такие сложные операции, как умножение и деление путем логарифмического преобразования, могут быть заменены более простыми операциями сложения и вычитания, а затем полученный результат с помощью обратного преобразования превращается в искомый.
Микроконтроллер Motorola 68НС08
Общая структура микроконтроллера, использующего нечеткую логику, обычно содержит в своем составе блок фазификации, базу знаний, блок решений и блок дефазификации. Блок фазификации преобразует четкие величины, измеренные на выходе объекта управления, в нечеткие величины, описываемые лингвистическими переменными в базе знаний. Блок решений использует нечеткие условные правила, заложенные в базе знаний, для преобразования нечетких входных данных в требуемые управляющие воздействия также нечеткого характера. Блок дефазификации преобразует нечеткие данные с выхода блока решений в четкую величину, которая используется для управления объектом.
Аппаратный микропроцессор нечеткой логики может принимать аналоговые сигналы, переводить их в нечеткий формат, а затем, применяя соответствующие правила, преобразовывать результаты в формат обычной логики и далее - в аналоговый исполнительный сигнал. Все это по возможности осуществляется без внешних запоминающих устройств, преобразователей и какого бы то ни было дополнительного программного обеспечения. С другой стороны, реализовать фази-контроллер можно практически на любом микроконтроллере, например Motorola 68HC11 или Intel MCS 96. Дело в том, что нечеткую логику часто значительно дешевле эмулировать, нежели закладывать в специальное “железо”.
Наибольший интерес по понятным причинам вызывает компромиссный вариант. Так, существуют микроконтроллеры, у которых фази-команды интегрированы непосредственно в ассемблеры. Например, это кристаллы Motorola 68HC12 или STMicroelectronics ST52x301. Иными словами, в ядро этих микросхем встроена аппаратная поддержка базовых фази-операций. Вместе с микросхемами поставляются специальные наборы средств, включающие не только программное обеспечение для разработки и отладки устройств, но и дополнительные аппаратные компоненты (кабели, устройства программирования EPROM и т. п.).
Блок-схема архитектуры микроконтроллера ST52x301
В частности, микроконтроллер 68НС12 базируется на ядре с малым потреблением, которое имеет расширенный набор инструкций 68НС11 на 16-разрядном уровне. Стек прерываний и программная модель полностью идентичны 68НС11. Напомним, что 8-разрядный микроконтроллер семейства 68HC11 - один из наиболее широко используемых в мире электронных устройств. Первые образцы подобных кристаллов были изготовлены еще в 1984 г. В настоящее время имеется свыше полусотни модификаций этих микроконтроллеров с множеством опций расположенной на кристалле памяти, периферийных модулей, частоты, напряжений и исполнения корпусов. Самой фирмой Motorola выпущено около полумиллиона микроконтроллеров 68HC11, и спрос на них по-прежнему существует. Недаром говорят, что 68HC11 подтолкнул функционирование 8-разрядных микроконтроллеров к уровню 16-разрядных - благодаря своим 16-разрядным таймеру, аккумулятору и индексным регистрам. Отметим, что это была первая архитектура, предлагавшая на одном кристалле с процессором память с электрическим стиранием информации типа EEPROM (Electrically Erasable Programmable Read Only Memory) и объединившая технологии EPROM и EEPROM.
Ставшая фактически промышленным стандартом архитектура 68HC11 поддерживается наибольшим количеством отладочных средств, свободно распространяемым программным обеспечением и многочисленными примерами применения. Характерная черта семейства 68HC11, принципиально отличающая его от НС05 и НС08, - это способность функционировать не только в однокристальном режиме, но и в расширенном (Expanded Mode), когда к микроконтроллеру подключается внешняя память. В составе микроконтроллеров 68HC11 имеются модули аналого-цифровых преобразователей, многофункциональных таймеров, широтно-импульсных модуляторов и последовательных интерфейсов.
Ядро микроконтроллера 68HC12 включает 64 новые инструкции, 20-разрядное арифметико-логическое устройство, очередь инструкций и расширенную индексную адресацию. Через новые инструкции и страничную адресацию памяти разработчики имеют доступ к более чем четырем мегабайтам программного кода и одному мегабайту данных. Но самое важное, что архитектура 68НС12 оптимизирована для языков высокого уровня, быстрых математических операций и фази-логики.
Ряд экспертов полагает, что у нечеткой логики многообещающее будущее. Сегодня ее элементы можно найти в десятках промышленных изделий - от систем управления электропоездами и боевыми вертолетами до пылесосов и стиральных машин. Рекламные кампании многих фирм преподносят успехи в использовании нечеткой логики как особое конкурентное преимущество. Без нее немыслимы современные ситуационные центры руководителей западных стран, где принимаются ключевые политические решения и моделируются всевозможные кризисные ситуации. Стремительное развитие теоретического аппарата и средств моделирования, расширение сфер применения, коммерческий успех и широкое распространение фази-приложений позволяют надеяться, что со временем они вытеснят некоторые решения, основанные на традиционных методах, но более сложные в реализации.