ЛИСП-реализация основных операций над нечеткими множествами
Рассмотрение методов совершения основных операций (содержания, равенства, пересечения, объединения, разности, произведения, отрицания и дизъюнктивной суммы) над нечеткими множествами, их функциональных моделей и программной реализации решения задачи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.01.2010 |
Размер файла | 486,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
СОДЕРЖАНИЕ
Введение
1. Постановка задачи
- 2. Математические и алгоритмические основы решения задачи
- 2.1 Понятие нечеткого множества
- 2.2 Операции над нечеткими множествами
- 2.2.1 Содержание
- 2.2.2 Равенство
- 2.2.3 Пересечение
- 2.2.4 Объединение
- 2.2.5 Разность
- 2.2.6 Произведение
- 2.2.7 Отрицание
- 2.2.8 Дизъюнктивная сумма
- 2.2.3 Наглядное представление операций над нечеткими множествами
- 3. Функциональные модели и блок-схемы решения задачи
- 4. Программная реализация решения задачи
- 5. Пример выполнения программы
- Заключение
- Список использованных источников и литературы
- ВВЕДЕНИЕ
- Наверное, самым впечатляющим у человеческого интеллекта является способность принимать правильные решения в условиях неполной и нечеткой информации. Построение моделей приближенных размышлений человека и использование их в компьютерных системах представляет сегодня одну из важнейших проблем науки.
- Основы нечеткой логики были заложены в конце 60-х лет в работах известного американского математика Латфи Заде. Исследования такого рода было вызвано возрастающим неудовольствием экспертными системами. Хваленый "искусственный интеллект", который легко справлялся с задачами управления сложными техническими комплексами, был беспомощным при простейших высказываниях повседневной жизни, типа "Если в машине перед тобой сидит неопытный водитель - держись от нее подальше". Для создания действительно интеллектуальных систем, способных адекватно взаимодействовать с человеком, был необходим новый математический аппарат, который переводит неоднозначные жизненные утверждения в язык четких и формальных математических формул. Первым серьезным шагом в этом направлении стала теория нечетких множеств, разработанная Заде. Его работа "Fuzzy Sets", опубликованная в 1965 году в журнале "Information and Control", заложила основы моделирования интеллектуальной деятельности человека и стала начальным толчком к развитию новой математической теории. Он же дал и название для новой области науки - "fuzzy logic" (fuzzy - нечеткий, размытый, мягкий).
- Чтобы стать классиком, надо немного опередить свое время. Существует легенда о том, каким образом была создана теория "нечетких множеств". Один раз Заде имел длинную дискуссию со своим другом относительно того, чья из жен более привлекательна. Термин "привлекательная" является неопределенным и в результате дискуссии они не смогли прийти к удовлетворительному итогу. Это заставило Заде сформулировать концепцию, которая выражает нечеткие понятия типа "привлекательная" в числовой форме.
- Дальнейшие работы профессора Латфи Заде и его последователей заложили фундамент новой теории и создали предпосылки для внедрения методов нечеткого управления в инженерную практику.
- Аппарат теории нечетких множеств, продемонстрировав ряд многообещающих возможностей применения - от систем управления летательными аппаратами до прогнозирования итогов выборов, оказался вместе с тем сложным для воплощения. Учитывая имеющийся уровень технологии, нечеткая логика заняла свое место среди других специальных научных дисциплин - где-то посредине между экспертными системами и нейронными сетями.
- Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда несколько групп исследователей (в основном в США и Японии) всерьез занялись созданием электронных систем различного применения, использующих нечеткие управляющие алгоритмы. Теоретические основы для этого были заложены в ранних работах Коско и других ученых.
- Третий период начался с конца 80-х годов и до сих пор. Этот период характеризуется бумом практического применения теории нечеткой логики в разных сферах науки и техники. До 90-ого года появилось около 40 патентов, относящихся к нечеткой логике (30 - японских). Сорок восемь японских компаний создают лабораторию LIFE (Laboratory for International Fuzzy Engineering), японское правительство финансирует 5-летнюю программу по нечеткой логике, которая включает 19 разных проектов - от систем оценки глобального загрязнения атмосферы и предвидения землетрясений до АСУ заводских цехов. Результатом выполнения этой программы было появление целого ряда новых массовых микрочипов, базирующихся на нечеткой логике. Сегодня их можно найти в стиральных машинах и видеокамерах, цехах заводов и моторных отсеках автомобилей, в системах управления складскими роботами и боевыми вертолетами.
- В США развитие нечеткой логики идет по пути создания систем для большого бизнеса и военных. Нечеткая логика применяется при анализе новых рынков, биржевой игре, оценки политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения.
- Целью данной курсовой работы является ЛИСП - реализация основных операций над нечеткими множествами.
- 1.Постановка задачи
- Требуется реализовать основные операции над нечеткими множествами:
- 1) содержание;
- 2) равенство;
- 3) пересечение;
- 4) объединение;
- 5) разность;
- 6) произведение;
- 7) отрицание;
- 8) дизъюнктивная сумма.
- Пример 1.
- Пусть:
- ;
- .
- Решение:
- 1. Содержание: так как
- , B доминирует A.
2. Равенство: так как
, следовательно A не равно B.
3. Пересечение: .
4. Объединение: .
5. Разность: .
6. Произведение:
7. Отрицание: ,
.
8. Дизъюнктивная сумма: .
Пример 2.
Пусть:
;
.
Решение:
1. Содержание: так как
, B доминирует A.
2. Равенство: так как
, следовательно A равно B.
3. Пересечение:
.
4. Объединение:
.
5. Разность:
.
6. Произведение
7. Отрицание:
,
.
7. Дизъюнктивная сумма:
.
2. Математические и алгоритмические основы решения задачи
2.1 Понятие нечеткого множества
Нечёткое (или размытое, расплывчатое, туманное, пушистое) множество -- понятие, введённое Лотфи Заде в 1965 г. в статье "Fuzzy Sets" (нечёткие множества) в журнале Information and Control [1]. Л. Заде расширил классическое канторовское понятие множества, допустив, что характеристическая функция (функция принадлежности элемента множеству) может принимать любые значения в интервале [0,1], а не только значения 0 или 1.
Под нечётким множеством A понимается совокупность
,
где-- X универсальное множество, а -- функция принадлежности (характеристическая функция), характеризующая степень принадлежности элемента нечёткому множеству A.
Функция принимает значения в некотором вполне упорядоченном множестве M. Множество M называют множеством принадлежностей, часто в качестве M выбирается отрезок . Если , то нечёткое множество может рассматриваться как обычное, чёткое множество.
2.2 Операции над нечеткими множествами
Пусть A и B - нечеткие множества на универсальном множестве E.
2.2.1 Содержание
Говорят, что A содержится в B, если
.
Обозначение: A М B.
Иногда используют термин "доминирование", то есть в случае если A М B, говорят, что B доминирует A.
2.2.2 Равенство
A и B равны, если
.
Обозначение: A = B.
2.2.3 Пересечение
Пересечением нечётких множеств A и B называется наибольшее нечёткое подмножество, содержащееся одновременно в A и B:
.
2.2.4 Объединение
- наименьшее нечеткое подмножество, которое включает как А, так и В, с функцией принадлежности:
2.2.5 Разность
с функцией принадлежности:
.
2.2.6 Произведение
Произведением нечётких множеств A и B называется нечёткое подмножество с функцией принадлежности:
.
2.2.7 Отрицание
Отрицанием множества A при называется множество с функцией принадлежности:
.
2.2.8 Дизъюнктивная сумма
Дизъюнктивной суммой нечетких множеств A и B называется множество с функцией принадлежности:
.
2.3 Наглядное представление операций над нечеткими множествами
Для нечетких множеств можно применить визуальное представление. Рассмотрим прямоугольную систему координат, на оси ординат которой откладываются значение mA(x), на оси абсцисс в произвольном порядке расположены элементы E. Если E по своей природе упорядочено, то этот порядок желательно сохранить в расположении элементов на оси абсцисс. Такое представление делает наглядными простые операции над нечеткими множествами.
Пусть A нечеткий интервал между 5 до 8 и B нечеткое число около 4, как показано на рисунке 1 и 2.
Рисунок 1. Множество A Рисунок 2. Множество B
Проиллюстрируем нечеткое множество между 5 AND 8 около 4 (синяя линия).
Рисунок 3. Пересечение множеств А и В
Нечеткое множество между 5 OR 8 около 4 показано на следующем рисунке (синяя линия).
Рисунок 4. Объединение множеств А и В
Следующий рисунок иллюстрирует операцию отрицания. Синяя линия - это отрицание нечеткого множества A.
Рисунок 5. Отрицание множества А
На следующем рисунке заштрихованная часть соответствует нечеткому множеству A и изображает область значений А и всех нечетких множеств, содержащихся в A. Остальные рисунки изображают соответственно .
Рисунок 6. Множества
3. Функциональные модели и блок-схемы решения задачи
Функциональные модели и блок-схемы решения задачи представлены на рисунке 7 - 14.
Условные обозначения:
· X1 - первое множество;
· X2 - второе множество;
· X - множество.
Рисунок 7 - Функциональная модель решения задачи для функции CONTENT (содержание)
Рисунок 8 - Функциональная модель решения задачи для функции EQUAL_ (равенство)
Рисунок 9 - Функциональная модель решения задачи для функции CROSSING (пересечение)
Рисунок 10 - Функциональная модель решения задачи для функции UNION (объединение)
Рисунок 11 - Функциональная модель решения задачи для функции SUBTR (разность)
Рисунок 12 - Функциональная модель решения задачи для функции MULT (произведение)
Рисунок 13 - Функциональная модель решения задачи для функции ADDITION (отрицание)
Рисунок 14 - Функциональная модель решения задачи для функции DIZ_SUMM (дизъюнктивная сумма)
4. Программная реализация решения задачи
;СОДЕРЖАНИЕ mA(x) < mB(x)
;РАВЕНСТВО mA(X) = mB(X)
;ПЕРЕСЕЧЕНИЕ min( mA(x), mB(x))
;ОБЪЕДИНЕНИЕ max(mA(x), m B(x))
;РАЗНОСТЬ А - B = АЗ с функцией принадлежности: mA-B(x) = mA З (x) = min( mA(x), 1 - m B(x))
;ПРОИЗВЕДЕНИЕ mA(x)* m B(x)
;ОТРИЦАНИЕ A^ = 1-mA(X)
;ДИЗЪЮНКТИВНАЯ СУММА АЕB = (А - B)И(B - А) = (А З ) И( З B) с функцией принадлежности:
;mA-B(x) = max{[min{m A(x), 1 - mB(x)}];[min{1 - mA(x), mB(x)}] }
;СОДЕРЖАНИЕ
;ЕСЛИ МНОЖЕСТВО A СОДЕРЖИТСЯ В МНОЖЕСТВЕ B - РЕЗУЛЬТАТОМ ФУНКЦИИ БУДЕТ 0
(DEFUN CONTENT (X1 X2)
(COND
((NULL X1) 0)
((ATOM X1) (IF (> X1 X2) 1 0))
(T (+ (CONTENT (CAR X1) (CAR X2)) (CONTENT (CDR X1) (CDR X2))))
)
)
;РАВЕНСТВО
;ЕСЛИ МНОЖЕСТВО A РАВНО МНОЖЕСТВУ B - РЕЗУЛЬТАТОМ ФУНКЦИИ БУДЕТ 0
(DEFUN EQUAL_ (X1 X2)
(COND
((NULL X1) 0)
((ATOM X1) (IF (EQUAL X1 X2) 0 1))
(T (+ (EQUAL_ (CAR X1) (CAR X2)) (EQUAL_ (CDR X1) (CDR X2))))
)
)
;ПЕРЕСЕЧЕНИЕ
(DEFUN CROSSING (X1 X2)
(MIN X1 X2)
)
;ОБЪЕДИНЕНИЕ
(DEFUN UNION (X1 X2)
(MAX X1 X2)
)
;РАЗНОСТЬ
(DEFUN SUBTR (X1 X2)
(MIN X1 (- 1 X2))
)
;ПРОИЗВЕДЕНИЕ
(DEFUN MULT (X1 X2)
(* X1 X2)
)
;ОТРИЦАНИЕ
(DEFUN ADDITION (X)
(- 1 X)
)
;ДИЗЪЮНКТИВНАЯ СУММА
(DEFUN DIZ_SUMM (X1 X2)
(MAX (MIN X1 (- 1 X2)) (MIN (- 1 X1) X2))
)
;РЕАЛИЗАЦИЯ ОПЕРАЦИЙ НАД МНОЖЕСТВАМИ
;С ПОМОЩЬЮ ОПИСАННЫХ РАННЕЕ ФУНКЦИЙ
;----------------------------------------------
;ПОЛУЧАЕМ МНОЖЕСТВА
(SETQ INPUT (OPEN " D:\MULTITUDE.TXT" :DIRECTION :INPUT))
(SETQ A (READ INPUT))
(SETQ B (READ INPUT))
(CLOSE INPUT)
;СОДЕРЖАНИЕ
(SETQ CONTENT_AB (IF (= (CONTENT A B)) "Mnowestvo A soderzitsya v mnowestve B" "Mnowestvo A NE soderzitsya v mnowestve B"))
;РАВЕНСТВО
(SETQ EQUAL_AB (IF (= (EQUAL_ A B) 0) "Mnowestvo A ravno B" "Mnowestvo A NE ravno B"))
;ПЕРЕСЕЧЕНИЕ
(SETQ CROSS_AB (MAPCAR 'CROSSING A B))
;ОБЪЕДИНЕНИЕ
(SETQ UNION_AB (MAPCAR 'UNION A B))
;ПРОИЗВЕДЕНИЕ
(SETQ MULT_AB (MAPCAR 'MULT A B))
;РАЗНОСТЬ
(SETQ SUBTR_AB (MAPCAR 'SUBTR A B))
;ОТРИЦАНИЕ
(SETQ A_ (MAPCAR 'ADDITION A))
(SETQ B_ (MAPCAR 'ADDITION B))
;ДИЗЪЮКТИВНАЯ СУММА
(SETQ DIZ_SUMM_AB (MAPCAR 'DIZ_SUMM A B))
;ЗАПИСЫВАЕМ РЕЗУЛЬТАТ ОПЕРАЦИЙ В ФАЙЛ
(SETQ OUTPUT (OPEN "D:\RESULT_OPERATIONS.TXT" :DIRECTION :OUTPUT))
(PRINT (LIST 'A A) OUTPUT)
(PRINT (LIST 'B B) OUTPUT)
(PRINT 'OPERATIONS OUTPUT)
(PRINT '------------------------- OUTPUT)
(PRINT (LIST 'CONTENT_AB CONTENT_AB) OUTPUT)
(PRINT (LIST 'EQUAL_AB EQUAL_AB) OUTPUT)
(PRINT (LIST 'CROSS_AB CROSS_AB) OUTPUT)
(PRINT (LIST 'UNION_AB UNION_AB) OUTPUT)
(PRINT (LIST 'MULT_AB MULT_AB) OUTPUT)
(PRINT (LIST 'SUBTR_AB SUBTR_AB) OUTPUT)
(PRINT (LIST 'A_ A_) OUTPUT)
(PRINT (LIST 'B_ B_) OUTPUT)
(PRINT (LIST 'DIZ_SUMM_AB DIZ_SUMM_AB) OUTPUT)
(TERPRI OUTPUT)
(CLOSE OUTPUT)
;КОНЕЦ
5. Пример выполнения программы
Пример 1.
Рисунок 15 - Входные данные
Рисунок 16 - Выходные данные
Пример 2.
Рисунок 17 - Входные данные
Рисунок 18 - Выходные данные
Пример 3.
Рисунок 19 - Входные данные
Рисунок 20 - Выходные данные
ЗАКЛЮЧЕНИЕ
Над нечеткими множествами можно производить различные операции, при этом необходимо определить их так, чтобы в частном случае, когда нечеткое множество является четким (обычным), эти операции переходили в обычные операции теории множеств, то есть операции над нечеткими множествами должны обобщать соответствующие операции над обычными множествами. При этом обобщение может быть реализовано различными способами, из-за чего какой-либо операции над обычными множествами может соответствовать несколько операций в теории нечетких множеств.
Итогом работы можно считать созданную функциональную модель реализации основных операций над нечеткими множествами. Созданная функциональная модель и ее программная реализация могут служить органической частью решения более сложных задач.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ и литературы
Бронштейн, И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н.Бронштейн, К.А.Семендяев. - М.: Наука, 2007. - 708 с.
Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений [Электронный ресурс] / Заде Л. - М.: Мир, 1976. С. 166.
Кофман А. Введение в теорию нечетких множеств [Текст] / А.Кофман. - М.: Радио и связь, 1982. С. 432.
Круглов, В.В. Нечёткая логика и искусственные нейронные сети. [Текст] / В.В. Круглов, М.И. Дли, Р.Ю. Голунов. - М.: Питер, 2001. C. 224.
Нечеткое множество [Электронный ресурс] - Режим доступа: http://ru.wikipedia.org/wiki/Нечеткое_множество
Симанков, В.С. Основы функционального программирования [Текст] / В.С.Симанков, Т.Т.Зангиев, И.В.Зайцев. - Краснодар: КубГТУ, 2002. - 160 с.
Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В. Бржезовский. - М.: ГУАП, 2003. С. 79.
Хювенен Э. Мир Лиспа [Текст] / Э.Хювенен, Й.Сеппянен. - М.: Мир, 1990. - 460 с.
Подобные документы
Изучение представления, основных способов расчета для целых положительных, простых чисел и ряда точек, и вычисления путем аппроксимации логарифма гамма-функции. Предоставление функциональных моделей, блок-схем и программной реализации решения задачи.
курсовая работа [537,9 K], добавлен 25.01.2010Объединение, пересечение, разность, симметричная разность и декартовое произведение множеств. Реализация на одном из языков программирования программы, способной выполнять операции над множествами. Список основных идентификаторов переменных и процедур.
лабораторная работа [469,5 K], добавлен 26.07.2010Анализ математических и алгоритмических значений величин, получающихся в результате решения квадратных уравнений, которые имеют название комплексных чисел. Особенности их сложения, вычитания, деления и произведения. Программная реализация решения задачи.
курсовая работа [443,7 K], добавлен 22.01.2010Виды и особенности ИТ-проектов, риски и управление ими, способы оценки. Описание и правила операций над нечеткими лингвистическими переменными. Программная реализация алгоритмов. Требования к составу, параметрам технических средств. Тестирование системы.
дипломная работа [3,5 M], добавлен 10.06.2013Теория множества, основные операции над множествами, мощность множества. Теорема о сравнении множеств. Размер множества в Turbo Pascal, предельно допустимое количество элементов и их порядок. Выполнение действий объединения, исключения и пересечения.
курсовая работа [376,6 K], добавлен 31.01.2016Математические и алгоритмические основы решения задачи. Функциональные модели и блок-схемы решения задачи. Программная реализация решения задачи. ЛИСП-реализация вычисления неэлементарных функций. Вычисления гамма функции для положительных неизвестных х.
курсовая работа [621,2 K], добавлен 18.01.2010Определение недостатков итерационного численного способа нахождения корня заданной функции (метод Ньютона). Рассмотрение основ математического и алгоритмического решения поставленной задачи, ее функциональной модели, блок-схемы и программной реализации.
курсовая работа [364,8 K], добавлен 25.01.2010Принципы разработки и пример работы программы, реализующей основные операции алгебры матриц: сложение, вычитание, умножение, транспонирование, а также умножение матрицы на число. Функциональные модели и блок-схемы решения задачи операций над матрицами.
курсовая работа [956,7 K], добавлен 25.01.2010Реляционная алгебра как система операций над отношениями в реляционной модели данных. Теоретико-множественные операторы, синтаксис операций объединения, пересечения, вычитания и декартова произведения. Использование баз данных в вычислительной технике.
курсовая работа [46,7 K], добавлен 01.02.2015Принципы разработки и примеры работы программы, реализующей основные операции над базами данных (выбор, добавление, модификация и удаление данных), ее функциональные модели и блок-схемы. Особенности выполнения запроса и скорость операций обновления.
курсовая работа [853,4 K], добавлен 25.01.2010