
- •Нечеткое моделирование: основные понятия и принципы
- •Задача нечеткой классификации
- •2.1 Постановка задачи.
- •Алгоритм решения
- •Формирование базы правил для нечеткого классификатора
- •3.1 Классификация нечетких моделей
- •3.1.1 Структура модели
- •3.1.2 Управляемая данными инициализация
- •3.2 Сокращение модели
- •3.2.1 Отбор свойств, основанный на межклассовой отделимости
- •3.2.2 Упрощение базы правил
- •Использование генетических алгоритмов для оптимизации
- •4.1 Основные понятия эволюционного программирования
- •4.1.1. Символьная модель
- •4.1.3. Кроссовер
- •4.1.4. Мутация
- •Постановка задачи
- •Мутация
- •Нечеткие операторы
- •Условие останова
- •Описание программы
- •Функциональные возможности
- •Представление данных
- •Реализация
- •1 Под продукцией понимается кортеж следующего вида:
Функциональные возможности
Программа находит оптимальный набор правил, минимизирующий среднеквадратическую ошибку аппроксимации функции y=x. Данная функция была выбрана для наглядности результата. Решение ищется модифицированным генетическим алгоритмом – эволюционной стратегией. Для получения результата необходимо задать следующие входные параметры:
t-норму
s-норму
импликацию
дефазификацию
левую и правую границы нечетких множеств
число точек в дискретном представлении нечеткого множества
число наблюдений
число итераций генетического алгоритма
число правил в искомой базе знаний
Операторы t-нормы, s-нормы, импликации и дефазификации выбираются из выпадающего списка. Реализованы следующие операторы:
t-нормы и s-нормы: Заде, Фодор, Алгебраическая
импликация: Фодор, Райхенбах, Клине-Динс, Заде
дефазификация – центр тяжести (Center of Gravity – COG)
Представление данных
Нечеткие переменные в программе представлены двумя классами: TrapezoidalVariable и DiscreteVariable.
TrapezoidalVariable представляет собой трапециевидную нечеткую переменную, задаваемую четырьмя параметрами a, b, c, d. Функция принадлежности данной переменной имеет следующий вид:
DiscreteVariable представляет собой нечеткую переменную с функцией принадлежности, заданной в конечном числе точек. Создание этого класса обусловлено тем, что в результате применения операции импликации, t- или s-нормы к трапециевидным переменным, получается переменная произвольного вида.
Классы, описанные выше, унаследованы от базового класса Variable, и реализуют общий для всех нечетких переменных интерфейс. Таким образом, в задачу не составит труда добавить новый класс, более точно описывающий какую-либо нечеткую переменную, который легко впишется в уже построенную систему.
Реализация
В основе программы лежит следующий набор классов:
Variable +Left +Right +mu()
TrapezoidalVariable +a +b +c +d
DiscreteVariable +Points +Step +Set()
SNorm
+Zade() +Algebraic()+Fodor()
Implication
+
Fodor() +Zade() +Reichenbach() +KleeneDiens()
Defuzzification
+
CenterOfGravity() +LeftMostMaximum() +RightMostMaximum()
TNorm
+Zade() +Algebraic()+Fodor()
Variable
Представляет собой базовый класс для нечеткой переменной.
Left |
Возвращает левую границу множества. |
Right |
Возвращает правую границу множества. |
mu() |
Возвращает значение функции принадлежности в заданной точке. |
TrapezoidalVariable
Трапециевидная нечеткая переменная.
a, b, c, d |
Параметры трапециевидной переменной. |
DiscreteVariable
Нечеткая переменная с функцией принадлежности, заданной в конечном числе точек.
Points |
Возвращает число точек сетки, на которой задана функция принадлежности. |
Step |
Возвращает шаг сетки, на которой задана функция принадлежности. |
Set() |
Ставит в соответствие определенной точке сетки значение функции принадлежности в этой точке. |
TNorm, SNorm, Implication, Defuzzification
Представляют собой статические классы (классы, все члены которых являются статическими), содержащие нечеткие операции. Каждый метод, представляющий собой нечеткую операцию, помечается соответствующим атрибутом: implicationAttribute, TNormAttribute, SNormAttribute, DefuzzificationAttribute. С помощью этих атрибутов во время выполнения можно найти и использовать все доступные операторы. Таким образом, для добавления в программу нового оператора, достаточно описать его в одном из данных статических классов и пометить соответствующим аттрибутом. Опреатор сразу становится доступным во всей программе (в пользовательском интерфейсе при нахождении решения).
Нечеткая система представлена классом FuzzySystem:
FuyyzSystem
+FuzzySystem() +Process()
FuzzySystem() |
Конструктор, принимающий все параметры нечеткой системы: набор правил, левую и правую границы, число точек в дискретном представлении нечеткой переменной, t- и s-нормы, импликацию, дефазификацию. |
Process() |
Ставит в соответствие входному x выходной y, полученный в результате работы данной нечеткой системы. |
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсовой работы были изучены
основы нечеткого моделирования
модель и принцип работы нечеткого классификатора
процесс проектирования нечеткого классификатора и формирования базы правил
Была разработана программа, выполняющая построение нечеткого классификатора на основе наблюдаемых данных.
Целью дальнейших исследований является изучение и применения генетического алгоритма для оптимизации базы правил
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
Леденева Т. М. Основы нечеткого моделирования в среде MatLab: учебное пособие / Т.М. Леденева, Д.С. Татаркин, А.С. Тарасова. – Воронеж: ЛОП ВГУ, 2006. – 51с.
Леденева Т.М. Обработка нечеткой информации / Т.М. Леденева. – Воронеж: ВГУ, 2006. – 232с.
Roubos J.A. Learning Fuzzy Classification Rules from Labeled Data. / J.A. Roubos, M. Setnes, J. Abonyi. // Elsevier Preprint, 2001.
Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы. / Рутковская Д., Пилинский М., Рутковский Л. – Москва: Горячая линия – Телеком, 2004. – 315с.
Тэрано Т. Прикладные нечеткие системы. / Тэрано Т., Асаи К., Сугено М.– Москва: Мир, 1993. – 386с.
Гладков Л. А. Генетические алгоритмы: Учебное пособие. – 2-е изд. / Л.А. Гладков, В.В. Курейчик, В.М. Курейчик. – М.: Физматлит, 2006. – 320с.
Рыжков А.П. Элементы Теории нечетких множеств и измерения нечеткости. / А.П. Рыжков – М.: Диалог-МГУ, 1998.