Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diplom(1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
386.12 Кб
Скачать
    1. Функциональные возможности

Программа находит оптимальный набор правил, минимизирующий среднеквадратическую ошибку аппроксимации функции y=x. Данная функция была выбрана для наглядности результата. Решение ищется модифицированным генетическим алгоритмом – эволюционной стратегией. Для получения результата необходимо задать следующие входные параметры:

  • t-норму

  • s-норму

  • импликацию

  • дефазификацию

  • левую и правую границы нечетких множеств

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

  • число наблюдений

  • число итераций генетического алгоритма

  • число правил в искомой базе знаний

Операторы t-нормы, s-нормы, импликации и дефазификации выбираются из выпадающего списка. Реализованы следующие операторы:

  • t-нормы и s-нормы: Заде, Фодор, Алгебраическая

  • импликация: Фодор, Райхенбах, Клине-Динс, Заде

  • дефазификация – центр тяжести (Center of Gravity – COG)

    1. Представление данных

Нечеткие переменные в программе представлены двумя классами: TrapezoidalVariable и DiscreteVariable.

TrapezoidalVariable представляет собой трапециевидную нечеткую переменную, задаваемую четырьмя параметрами a, b, c, d. Функция принадлежности данной переменной имеет следующий вид:

DiscreteVariable представляет собой нечеткую переменную с функцией принадлежности, заданной в конечном числе точек. Создание этого класса обусловлено тем, что в результате применения операции импликации, t- или s-нормы к трапециевидным переменным, получается переменная произвольного вида.

Классы, описанные выше, унаследованы от базового класса Variable, и реализуют общий для всех нечетких переменных интерфейс. Таким образом, в задачу не составит труда добавить новый класс, более точно описывающий какую-либо нечеткую переменную, который легко впишется в уже построенную систему.

    1. Реализация

В основе программы лежит следующий набор классов:

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, полученный в результате работы данной нечеткой системы.

ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы были изучены

  • основы нечеткого моделирования

  • модель и принцип работы нечеткого классификатора

  • процесс проектирования нечеткого классификатора и формирования базы правил

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

Целью дальнейших исследований является изучение и применения генетического алгоритма для оптимизации базы правил

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1. Леденева Т. М. Основы нечеткого моделирования в среде MatLab: учебное пособие / Т.М. Леденева, Д.С. Татаркин, А.С. Тарасова. – Воронеж: ЛОП ВГУ, 2006. – 51с.

  2. Леденева Т.М. Обработка нечеткой информации / Т.М. Леденева. – Воронеж: ВГУ, 2006. – 232с.

  3. Roubos J.A. Learning Fuzzy Classification Rules from Labeled Data. / J.A. Roubos, M. Setnes, J. Abonyi. // Elsevier Preprint, 2001.

  4. Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы. / Рутковская Д., Пилинский М., Рутковский Л. – Москва: Горячая линия – Телеком, 2004. – 315с.

  5. Тэрано Т. Прикладные нечеткие системы. / Тэрано Т., Асаи К., Сугено М.– Москва: Мир, 1993. – 386с.

  6. Гладков Л. А. Генетические алгоритмы: Учебное пособие. – 2-е изд. / Л.А. Гладков, В.В. Курейчик, В.М. Курейчик. – М.: Физматлит, 2006. – 320с.

  7. Рыжков А.П. Элементы Теории нечетких множеств и измерения нечеткости. / А.П. Рыжков – М.: Диалог-МГУ, 1998.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]