Лекция. fuzzy logic.
Нечеткий подход к моделированию неопределенности
Среди методов моделирования неопределенных знаний в настоящее время выделяются методы изучающие стохастическую и лингвистическую неопределенность.
История fuzzy logic
Основы нечеткой логики были заложены в конце 60-х годов в трудах известного американского математика Заде. В это время весьма популярными были эксперименты с т.н. "мажоритарными" пространствами, в которых намеренно устранялось понятие меры и вместо него вводился ряд качественных факторов (типа квантора "большинства") - прообраз первых нечетких утверждений. Социальный заказ на исследования подобного рода был вызван растущим недовольством экспертными системами.
Для создания действительно интеллектуальных систем, способных адекватно взаимодействовать с человеком, необходим был новый математический аппарат, переводящий невнятные и неоднозначные житейские утверждения в язык четких и формальных математических формул. Первым серьезным шагом в этом направлении явилась теория нечетких множеств, разработанная Заде. Он дал и название для новой области науки -"fuzzy logic". Термин "fuzzy" (что означает "нечеткий, размытый ) не совсем точно отражает существо самой теории, которую - в ее сегодняшнем виде - правильнее было бы называть "непрерывной логикой".
Аппарат теории нечетких множеств, продемонстрировав ряд многообещающих возможностей применения - от систем управления летательными аппаратами до прогнозирования итогов выборов, оказался вместе с тем чрезмерно сложен для воплощения при тогдашнем уровне технологии - и на многие годы нечеткая логика заняла свое место в ряду других специальных научных дисциплин - где-то посередине между экспертными системами и нейронными сетями...
Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда сразу несколько групп исследователей (в основном в США и Японии) всерьез занялись созданием электронных систем различного применения, использующих нечеткие управляющие алгоритмы. Теоретические основы для этих попыток были заложены в ранних трудах Барта Коско (Bart Kosko), и других ученых.
Так , в нашумевшей книге Коско "Fuzzy Thinking" ("Нечеткое мышление") автор, доказывает, что два тысячелетия назад человечество сделало роковую ошибку, заложив в фундамент науки не зыбкую поэтику ранних восточных философий, а выхолощенную двоичную логику Аристотеля. И с тех пор классическая "черно-белая" бинарная логика, зажатая шорами закона "исключенного третьего", все более отдаляется от реального многоцветного мира, где нет ничего абсолютного, а все самое интересное происходит в туманной области между "да" и "нет". Фундаментальным изложением современной теории нечеткой логики является книга Барта Коско "Neural Networks and Fuzzy Systems : a Dynamical Systems Approach To Machine Intelligence" (Prentice-Hall, 1992)
Для признания и дальнейшего развития fuzzy logic наибольшую роль сыграли два научных результата : доказательство FAT-теоремы, дающей нечеткой логике "путевку в жизнь" и комбинация нечеткой логики с нейронными сетями Кохонена, указавшая путь к преодолению наиболее критического "узкого места" новой теории - автоматизированного формирования системы нечетких правил по содержимому входных данных.
Так, к 90-му году появилось около 40 патентов, относящихся к нечеткой логике (30 - японских). Сорок восемь японских компаний образовали совместную лабораторию LIFE (Laboratory for International Fuzzy Engineering), японское правительство финансировало 5-летнюю программу по нечеткой логике, включающую 19 различных проектов - от систем оценки глобального загрязнения атмосферы и предсказания землетрясений до АСУ заводских цехов и складов. Результатом выполнения этой программы явилось появление целого ряда новых массовых микрочипов, основанных на нечеткой логике. Сегодня их можно найти в стиральных машинах и видеокамерах, цехах заводов и моторных отсеках автомобилей, в системах управления складскими роботами и боевыми вертолетами.
Основные понятия fuzzy logic
Нечеткое множество (fuzzy set) представляет собой совокупность элементов произвольной природы, относительно которых нельзя с полной определенностью утверждать — принадлежит ли тот или иной элемент рассматриваемой совокупности данному множеству или нет.
Математическое определение нечеткого множества. Формально нечеткое множество Л определяется как множество упорядоченных
пар или кортежей вида: <х, m(x)>, где х является элементом некоторого универсального множества или универсума X, а m(x) — функция принадлежности, которая ставит в соответствие каждому из элементов хХ некоторое действительное число из интервала [0, 1], т. е. данная функция определяется в форме отображения:
m(x): X[0, 1]
Пример
понедельник вторник
среда четверг пятница суббота
воскресенье
M={<понедельник, О, <вторник, 0.1>, <среда, 0>, <четверг, 0.1>, <пятница, 0.5>, <суббота, 0.9>, <воскресенье, 0.8>}.
Рис. 2.5. Графическое изображение некоторой буквы (а) и некоторой десятичной цифры (б)
Первое изображение порождает на множестве всех прописных букв (например, русского) алфавита Я={А, Б, В,..., Я} некоторое конечное нечеткое множество Это нечеткое множество содержательно описывает соответствие изображения, представленного на рис. 2.5, а), той или иной букве русского алфавита. Таким множеством может быть, например следующее нечеткое множество: С={<А, 0>, <Б, 0>,...,<И, 1.0>, <И,0.9>, <К, 0.4>, <Л, 0>, <М, 1.0>, <Н, 1.0>, <О, 0>,...,<Х, 0.3>,...,<Я, 0>}. Пропущенные элементы соответствуют нулевым значениям функции принадлежности для остальных букв алфавита.
Второе изображение порождает на множестве всех десятичных цифр ЛГ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Это нечеткое множество содержательно описывает соответствие изображения, представленного на рис. 2.5, б, той или иной десятичной цифре. В частном случае таким нечетким множеством может быть, например, следующее: С={<0,0.8>,<1,0>, <2,0>,<3,0.9>,<4,0>,<5,0.2>, <6, 1.0>, <7,0>, <8, 1.0>, <9, 0.9>}. Здесь указаны все значения функции принадлежности для элементов универсума.
Применение
Нечеткий вывод и нечеткое управление
Нечеткая модель управления смесителем воды при принятии душа
Опыт принятия душа позволяет сформулировать несколько эвристических правил, которые мы применяем в случае регулирования температуры воды на выходе смесителя:
Если вода горячая, то следует повернуть вентиль крана горячей воды на большой угол вправо.
Если вода не очень горячая, то следует повернуть вентиль крана горячей воды на небольшой угол вправо.
Если вода теплая, то оставить вентиль крана горячей воды без воздействия.
Если вода прохладная, то следует повернуть вентиль крана горячей воды на небольшой угол влево.
Если вода холодная, то следует повернуть вентиль крана горячей воды на большой угол влево.
Эта информация будет использоваться при построении базы правил системы нечеткого вывода, которая позволяет реализовать данную модель нечеткого управления.