Нечеткая логика: история проблемы

Нечеткая логика: история проблемы, практические приложения

Одним из создателей кибернетики Джоном фон Нейманом было замечено, что стремление получить точную, исчерпывающую модель для достаточно сложного объекта (процесса) не имеет смысла, поскольку сложность такого описания становится соизмеримой со сложностью самого объекта. Следовательно, использование такой модели не позволяет просто и наглядно объяснить механизм его функционирования, воспользоваться какими-либо стандартными математическими процедурами для исследования характеристик объекта и синтеза системы управления им. Это особенно относится к таким объектам управления, как производственные процессы, организационные, транспортные, биологические системы и др.

Известный специалист в области теории систем профессор факультета электротехники и информатики Калифорнийского университета (г. Беркли, США) Лотфи А. Заде сформулировал эту мысль в виде так называемого принципа несовместимости. Согласно этому принципу: "Чем сложнее система, тем менее мы способны дать точные и в то же время имеющие практическое значение суждения об ее поведении.

Для систем, сложность которых превосходит некоторый пороговый уровень, точность и практический смысл становятся почти исключающими друг друга характеристиками. Именно в этом смысле точный качественный анализ поведения гуманистических систем (т.е. систем, в которых участвует человек) не имеет, по-видимому, большого практического значения в реальных социальных, экономических и других задачах, связанных с участием одного человека или группы людей".

Выражаясь словами того же Л.А.Заде, "в большинстве основных задач, решаемых человеком, не требуется высокая точность. Человеческий мозг использует допустимость такой неточности, кодируя информацию, "достаточную для задачи" (или "достаточную для решения"), элементами нечетких множеств, которые лишь приближенно описывают исходные данные.

Поток информации, поступающей в мозг через органы зрения, слуха, осязания и др., суживается, таким образом, в тонкую струйку информации, необходимой для решения поставленной задачи с минимальной степенью точности. Способность оперировать нечеткими множествами и вытекающая из нее способность оценивать информацию является одним из наиболее ценных качеств человеческого разума, которое фундаментальным образом отличает человеческий разум от так называемого машинного разума, приписываемого существующим вычислительным машинам. Наш мир состоит не из одних нулей и единиц – нам нужна более гибкая логика для того, чтобы представлять реальные взаимосвязи. Нужны подходы, для которых точность, строгость и математический формализм не являются чем-то абсолютно необходимым и в которых используется методологическая схема, допускающая нечеткости и частичные истины".

Классическая логика развивается с древнейших времен. Ее основоположником считается Аристотель. Логика известна нам как строгая и сугубо теоретическая наука, и большинство ученых (кроме разработчиков последних поколений компьютеров) продолжают придерживаться этого мнения. Вместе с тем классическая или булева логика имеет один существенный недостаток – с ее помощью невозможно описать ассоциативное мышление человека. Классическая логика оперирует только двумя понятиями: ИСТИНА и ЛОЖЬ, и исключая любые промежуточные значения. Аналогично этому булева логика не признает ничего кроме единиц и нулей.

Все это хорошо для вычислительных машин, но попробуйте представить весь окружающий вас мир только в черном и белом цвете, вдобавок исключив из языка любые ответы на вопросы, кроме ДА и НЕТ. В такой ситуации вам можно только посочувствовать.

Решить эту проблему и призвана нечеткая логика. С термином «лингвистическая переменная» можно связать любую физическую величину, для которой нужно иметь больше значений, чем только ДА и НЕТ. В этом случае вы определяете необходимое число термов и каждому из них ставите в соответствие некоторое значение описываемой физической величины. Для этого значения степень принадлежности физической величины к терму будет равна единице, а для всех остальных значений - в зависимости от выбранной функции принадлежности. Например, можно ввести переменную ВОЗРАСТ и определить для нее термы ЮНОШЕСКИЙ, СРЕДНИЙ и ПРЕКЛОННЫЙ. Обсудив с экспертами значения конкретного возраста для каждого терма, вы с полной уверенностью можете избавиться от жестких ограничений логики Аристотеля.

Получившие наибольшее развитие из всех разработок искусственного интеллекта, экспертные системы завоевали устойчивое признание в качестве систем поддержки принятия решений. Подобные системы способны аккумулировать знания, полученные человеком в различных областях деятельности. Посредством экспертных систем удается решить многие современные задачи, в том числе и задачи управления. Однако большинство систем все еще сильно зависит от классической логики.

Одним из основных методов представления знаний в экспертных системах являются продукционные правила, позволяющие приблизиться к стилю мышления человека. Любое правило продукций состоит из посылок и заключения. Возможно наличие нескольких посылок в правиле, в этом случае они объединяются посредством логических связок И, ИЛИ. Обычно продукционное правило записывается в виде:

«ЕСЛИ (посылка) (связка) (посылка)… (посылка) ТО (заключение)».

Главным же недостатком продукционных систем остается то, что для их функционирования требуется наличие полной информации о системе.

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

Первой работой, заложившей основы нового подхода к анализу сложных систем и процессов принятия решений была опубликованная в 1964 г. статья американского профессора Л.А.Заде. Суть данного подхода, получившего название нечеткой логики (Fuzzy Logic), заключается в следующем: 1) в нем используются так называемые "лингвистические'' переменные вместо обычных числовых переменных или в дополнение к ним; 2) простые отношения между переменными описываются с помощью нечетких высказываний; 3) сложные отношения описываются нечеткими алгоритмами.

Предложенные идеи, в силу своей нацеленности на моделирование процессов принятия решений в условиях неопределенности, нашли много сторонников и получили широкое распространение в качестве инструмента для построения реальных систем ИИ. На вопрос "Что такое нечеткая логика?" дается следующий ответ: "Это технология, которая обеспечивает разработку систем с помощью интуиции и инженерных знаний". Нечеткая логика использует понятия повседневной речи для определения поведения системы. Она дает возможность построения робастных, отказоустойчивых систем.

Несмотря на огромный поток публикаций в данной области (например, с 1965 г. по 1993 г. опубликовано свыше 30 000 работ по данной теме, с 1978 г. издается журнал "Fuzzy Sets and Systems" – официальный орган Международной ассоциации нечетких систем (IFSA)), идеи нечеткой логики имеют и своих противников.

Так, известный американский математик, специалист в области теории систем Р.Е. Калман (1972) пишет: "Наиболее серьезные возражения против выдвигаемой профессором Заде идеи "нечеткого" анализа систем заключаются в том, что недостаток методов системного анализа вовсе не является принципиальной проблемой в теории систем. Эта проблема должна решаться на основе развития существующих концепций и более глубокого изучения природы систем, возможно, отыскания для них нечто вроде "законов" Ньютона. По моему мнению, предложения Заде не имеют никаких шансов, чтобы способствовать решению этой важной проблемы".

Общеизвестно, что практика – критерий истины. Еще в 1983 г. японская фирма «Фуджи Электрик» реализовала на основе нечетких алгоритмов управления установку для обработки питьевой воды. В 1987 г. запущена в производство система управления новым метро в г. Сендаи, около Токио, предложенная на аналогичных принципах фирмой «Хитачи». В 1991 г. Япония экспортировала в общей сложности более чем на 25 млрд. долларов товаров, в которых тем или иным образом использовались компоненты нечеткой логики. Это, в первую очередь, товары культурно-бытового назначения – фотоаппараты, видеокамеры, стиральные машины, холодильники, пылесосы, микроволновые печи и многое другое.

Таким образом, технология, почти не замеченная всем миром, в Японии превратилась в одну из ключевых технологий, что сразу привлекло к себе огромное внимание. Сегодня многие ведущие компании США, Германии, Франции и ряда других стран предлагают самые разнообразные товары и системы с использованием принципов нечеткой логики, осваивая все новые и новые области применения.

Вместе с тем, по оценкам европейских ученых, Япония значительно опережает в развитии своих ближайших конкурентов в этом направлении.

Сам термин «fuzzy» так прочно вошел в жизнь, что на многих языках он даже не переводится. Тем не менее, столь масштабный скачок в развитии нечетких систем управления не случаен. Простота и дешевизна их разработки заставляет проектировщиков все чаще прибегать к этой технологии. Бурный рост рынка нечетких систем показан на рис. 1. После поистине взрывного старта прикладных нечетких систем в Японии многие разработчики США и Европы наконец-то обратили внимание на эту технологию. Но время было упущено, и мировым лидером в области нечетких систем стала Страна восходящего солнца, где к концу 1980-х годов был налажен выпуск специализированных нечетких контроллеров, выполненных по технологии СБИС.

В такой ситуации Intel нашла поистине гениальное решение. Имея большое количество разнообразных контроллеров от MCS-51 до MCS-96, которые на протяжении многих лет успешно использовались во многих приложениях, корпорация решила создать средство разработки приложений на базе этих контроллеров, но с использованием технологии нечеткости. Это позволило избежать значительных затрат на конструирование собственных нечетких контроллеров, а система от Intel, получившая название fuzzy TECH, завоевала огромную популярность не только в США и Европе, но и прорвалась на японский рынок.

 

 

На рис. 1 показаны области наиболее эффективного применения современных технологий управления. Как видно, классические методы управления хорошо работают при полностью детерминированном объекте управления и детерминированной среде, а для систем с неполной информацией и высокой сложностью объекта управления оптимальными являются нечеткие методы управления. В правом верхнем углу рисунка приведена еще одна современная технология управления – с применением искусственных нейронных сетей.

 

Процесс разработки проекта нечеткой системы управления на fuzzy TECH разбивается, на четыре основных этапа. Все они схематично показаны на рис. 3.

 

Этап 1. Описание системы

На этом этапе при помощи средств, доступных в fuzzy TECH, задача формализуется. Здесь необходимо описать лингвистические переменные, которые вы будете использовать; их функции принадлежности; описать стратегию управления посредством нечетких правил, которые вы сможете объединить в единую базу правил или знаний о системе. В целом CASE-технология, на основе которой построен пакет, позволяет все эти действия выполнить только посредством общения с экраном ЭВМ, не заглядывая в программный код. Поэтому начальный этап проектирования вы воспримете с легкостью, несмотря на кажущуюся сложность.

 

Этап 2. Off-line-оптимизация

На этом этапе следует проверить работоспособность созданной системы посредством всех средств fuzzy TECH. Отметим, что можно использовать заранее созданный программный симулятор вашего объекта управления. Для связи системы управления с моделью используется специально разработанный протокол связи fTlink, в основу которого положена концепция обмена сообщениями Windows. Все необходимые средства для установления связи с вашей моделью находятся в исходных текстах программ связи, поставляемых с пакетом.

Этап 3. On-line-оптимизация

На этом шаге разрабатываемая система управления и реальный объект управления соединяются физической линией связи.

Такой вид отладки позволяет наблюдать поведение системы в реальных условиях и при необходимости вносить изменения в систему управления.

Этап 4. Реализация

На этом этапе необходимо получить окончательный вариант кода для конкретного микроконтроллера и, если нужно, связать его с вашей основной программой. Об оптимальности создаваемого fuzzy TECH кода можно судить по данным табл. ниже.

Основу программного кода, генерируемого пакетом fuzzy TECH, составляет аппаратно-ориентированное на конкретный тип процессора ядро. Поставляемое с пакетом fuzzy TECH MCU-96 программное ядро совместимо с такими контроллерами, как 8096BH, 8096-90, 80196KB/KC/KD, 80196 KR, 80196MC, 80196NT/NQ.

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

МАТЕМАТИЧЕСКИЙ АППАРАТ ПРИНЯТИЯ РЕШЕНИЙ НА ОСНОВЕ НЕЧЕТКОЙ ЛОГИКИ.

Нечеткие множества и лингвистические переменные

  то множество "взрослых людей" А может быть задано с помощью…  

Операции с нечеткими множествами

Определение операций, выполняемых с нечеткими множествами, во многом аналогично операциям с обычными (четкими) множествами.

Эквивалентность. Два нечетких множества А и В эквивалентны (это
обозначается как ) тогда и только тогда, когда для всех имеет место .

 

Рис. 2.4. Операции с нечеткими множествами

Включение. Нечеткое множество А содержится в нечетком множестве В ( ) тогда и только тогда, когда

 

Объединение, или дизъюнкция (disjunction), двух нечетких множеств А и В соответствует логической операции "ИЛИ" и определяется как наименьшее нечеткое множество, содержащее оба множества А и В. Функция принадлежности для этого множества находится с помощью операции взятия максимума(рис.2.4, б)

 

Пересечение, или конъюнкция (conjunction), соответствует логической операции "И" и определяется как наибольшее нечеткое множество, являющееся одновременно подмножеством обоих множеств.

Функция принадлежности множества выражается с помощью операции нахождения минимума (рис. 2.4,в)

 

Дополнение (complement) нечеткого множества А, обозначаемое через (или ¯| А), соответствует логическому отрицанию "НЕ" и определяется формулой (рис. 2.4,г)

 

Легко видеть, что применительно к классическим "четким" множествам, для которых функции принадлежности принимают только 2 значения: 0 или 1, формулы определяют известные операции логического "ИЛИ", "И", "НЕ".

Приведем определения еще двух достаточно распространенных операций над нечеткими множествами – алгебраического произведения и алгебраической суммы нечетких множеств.

Алгебраическое произведение АВ нечетких множеств А и В определяется следующим образом:

 

Алгебраическая сумма :

 

Кроме перечисленных имеются и другие операции, которые оказываются полезными при работе с лингвистическими переменными.

Операция концентрации (concentration) CON(А) определяется как алгебраическое произведение нечеткого множества А на самого себя: т.е.

 

В результате применения этой операции к множеству А уменьшаются степени принадлежности элементов х этому множеству, причем если , то это уменьшение относительно мало, а для элементов с малой степенью принадлежности - относительно велико. В естественном языке применение этой операции к тому или иному значению лингвистической переменной А соответствует использованию усиливающего терма "очень" (например, "очень высокий", "очень старый" и т.д.).

Операция растяжения (dilation) DIL(A) определяется как

DIL(A)=A0,5, где

Действие этой операции противоположно действию операции концентрации и соответствует неопределенному терму "довольно", выполняющему функцию ослабления следующего за ним (основного) терма А: "довольно высокий", "довольно старый" и т.п.

Можно ввести и другие аналогичные по смыслу операции, позволяющие модифицировать значения лингвистической переменной, увеличивая, таким образом, их количество. Так, терм "более чем" можно определить следующим образом:

,

составной терм "очень-очень":

 

Рассмотрим применение указанных операций на следующем наглядном примере. Пусть переменная х характеризует "возраст человека", X - интервал [0,100]. Тогда нечеткие подмножества, описываемые термами "молодой" и "старый", можно представить с помощью функции принадлежности (рис. 2.5).

 

 

 

 

Рис. 2.5. Графическое представление лингвистической переменной “возраст человека"

Тогда, в соответствии с выражением, находим (рис. 2.5)

 

Точно так же, используя (2.10) и (2.14), получаем (рис. 2.5)

 

 

Например, если конкретному человеку исполнилось 55 лет (т.е. х = 55), то в соответствии с данными функциями принадлежности имеем:

 

До сих пор предполагалось, что речь идет о единственной переменной , принимающей значения на вещественной числовой оси.

Для случая двух вещественных переменных ( и ) можно говорить о нечетком отношении R: XY, которое определяет некоторое соответствие между элементами множества X и множества У с помощью двумерной функции принадлежности μ(х,у):

 

Приведем еще один пример.

Допустим, что мы имеем два набора чисел

 

и пусть субъективные мнения экспертов о сравнительной величине этих чисел представлены в виде нечетких отношений:

R1(x,y) = "x больше, чем у",

R2(x,y) = "x приблизительно равно у".

Зададим отношение R1 с помощью табл.2.1, а отношение R2 - с помощью табл. 2.2.

 

 

Здесь (i,j) - й элемент таблицы равен значению соответствующей функции принадлежности для i-го значения х и j-гo значения у. Тогда операции объединения и пересечения указанных отношений могут быть интерпретированы как

 

Функции принадлежности и с помощью операций нахождения максимума и минимума, и принимают вид табл. 2.3, 2.4.

Нечеткие алгоритмы

Например, нечеткие алгоритмы могут включать в себя инструкции типа: а) "х = очень малое"; б) "х приблизительно равно 5";

Рис 2.6 Построение правил принятия решений

Воспользуемся для этих целей двумя правилами, записанными в лингвистической форме, 1-е из которых имеет следующий вид:

ПРАВИЛО 1: "ЕСЛИ Температура = низкая, ТО охлаждающий вентиль = полуоткрыт".

Будем полагать, что нечеткие подмножества A1 ("Температура = низкая") и B1 ("Вентиль = полуоткрыт") определяются функциями принадлежности, приведенными на пис.2.7.

 

Рис.2.7. Функции принадлежности нечетких подмножеств А1 и В2

Если измеренное значение температуры Твх равно, например, 18 °С, то степень принадлежности этого значения подмножеству A1 в данном конкретном случае составляет 0,2. Полагая, что меньшее значение степени выполнения условия "ЕСЛИ" должно сопровождаться уменьшением значений функции принадлежности вывода "ТО", ограничим возможные значения функции на уровне 0,2, т.е. получим

(2.18)

(Соответствующая функция выделена в правой половине рис.2.7 заштрихованной площадью).

Сформулируем 2-е лингвистическое правило следующим образом: ПРАВИЛО 2: "ЕСЛИ Температура = средняя, ТО охлаждающий вентиль = почти открыт".

Функции принадлежности и , где А2 и B2 обозначают соответственно нечеткие подмножества, содержащиеся в условии и выводе правила 2, показаны на рис.2.8.

 

Рис.2.8. Функции принадлежности нечетких подмножеств A1 и В2

Степень принадлежности измеренного значения Твх = 18 °С подмножеству А2 здесь равна уже 0,5. Следуя тому же приему, для функции принадлежности получаем

(2.19)

Заметим, что приведенные выше правила 1 и 2 действуют совместно и связаны друг с другом с помощью союза "ИЛИ", т.е. можно записать: ПРАВИЛО 1: "ЕСЛИ Температура = низкая, ТО охлаждающий вентиль = полуоткрыт" ИЛИ

ПРАВИЛО 2: "ЕСЛИ Температура = средняя, ТО охлаждающий вентиль = почти открыт".

Но тогда результирующая функция принадлежности для переменной находится по формуле

(2.20)

График полученной функции принадлежности представлен на рис. 2.9. Использованный в данном случае механизм логического вывода, выражающийся через операции нахождения минимума и максимума (2.18)-(2.20), получил название метода Максимума-Минимума (MAX-MIN- Inference).

 

Рис. 2.9. Функция принадлежности нечеткого множества

На практике часто используется еще один метод построения функции принадлежности выходного нечеткого множества, получивший название метода Максимума - Произведения (MAX-Product-Inference).

Суть этого метода заключается в следующем. При вычислении функций принадлежности вывода (заключения) "ТО" для каждого из правил осуществляется не ограничение их на уровне выполнения соответствующего условия "ЕСЛИ" (как это делалось в методе Максимума-Минимума), а пропорциональное уменьшение их значений в соответствии с уровнем выполнения указанного условия (рис. 2.10,а) с последующим использованием операции "ИЛИ" (рис. 2.10,6).

Важно отметить, что при использовании любого из указанных выше методов вывода (рис. 2.9, 2.10) результатом выполнения правил 1-2 является не конкретное число , а некоторое нечеткое множество, описываемое функцией принадлежности . В то же время данное решение не может считаться окончательным, поскольку сохраняется неопределенность выбора значения искомой переменной внутри рассматриваемого интервала - носителя нечеткого множества .

Переход от полученного нечеткого множества к единственному четкому значению ( )о, которое и признается затем в качестве решения поставленной задачи, называется дефаззификацией (defuzzyfication).

 

Рис. 2.10. Построение механизма вывода с помощью метода

Максимума- Произведения

 

Перечислим некоторые из наиболее известных методов дефаззификации:

1. Метод Максимума - выбирается тот элемент нечеткого множества, который имеет наивысшую степень принадлежности этому множеству.

Если такой элемент не является единственным, т.е. функция принадлежности имеет несколько локальных максимумов y1, у2, – ym, то значениями , или если имеется максимальное "плато" между y1 и уm, то выбор среди элементов, имеющих наивысшую степень принадлежности множеству, осуществляется на основе определенного критерия.

2. Метод левого (правого) максимума - выбирается наименьшее (наибольшее) из чисел y1, у2, – ,ym, имеющих наивысшую степень принадлежности нечеткому множеству.

3. Метод среднего из максимумов - в качестве искомого "четкого" значения у0 принимается среднее арифметическое координат локальных максимумов .

 

4. Метод Центра Тяжести(Center-of-Area) –

в качестве выходного значения у0 выбирается абсцисса центра тяжести площади, расположена под функцией принадлежности :

(2.21)

При необходимости вычисления у0 на ЭВМ в реальном времени, с учетом реальных вычислительных затрат, обычно операцию интегрирования в (2.21) заменяют суммированием.

Существует простая возможность использования для этих целей взвешенного среднего значения

(2.22)

где уi*, (i = l,2,...,n) – центральные значения нечетких подмножеств Вi(у) выходной переменной у; βi – веса, учитывающие уровень выполнения условия "ЕСЛИ" 1-го правила, называемые также уровнями активности соответствующих правил; n - число правил вывода.

5. Модифицированный метод центра тяжести

интегрирование (2.21) производится только в тех областях, где . Параметр используется здесь для подавления шумов, отсеивания влияния малосущественных для процедуры вывода факторов (на практике можно применять α = 0,05÷0,1).

В тех случаях, когда имеется несколько измеряемых входных переменных, механизм вычисления управляющих воздействий в принципе остается неизменным. Так, на рис. 2.11 показан процесс вычисления единственного управляющего воздействия (открытия охлаждающего -вентиля φвых) в зависимости от измеряемых четких значений температуры Твх и относительной влажности воздуха Fвх с помощью метода Максимума- Минимума.

Предполагается, что при этом используются 2 лингвистических правила:

ПРАВИЛО 1: "ЕСЛИ Температура = низкая ИЛИ Влажность = средняя, ТО Вентиль = полуоткрыт".

ПРАВИЛО 2: "ЕСЛИ Температура = низкая И Влажность = высокая, ТО Вентиль = полузакрыт".

 

 

 

Рис 2.11 Процедура логического вывода