
- •Нечеткое моделирование: основные понятия и принципы
- •Задача нечеткой классификации
- •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 Под продукцией понимается кортеж следующего вида:
4.1.3. Кроссовер
Оператор кроссовера (crossover operator) является основным генетическим оператором, за счет которого производится обмен генетическим материалом между особями. Кроссовер моделирует процесс скрещивания особей.
Пусть
имеются две родительские особи с
хромосомами
и
.
Хромосомы, представляющие собой
отображения решений, должны быть
гомологичны, так как являются
взаимозаменяемыми альтернативами.
Случайным образом определяется точка
внутри хромосомы, в которой обе хромосомы
делятся на две части и обмениваются
ими. Назовем эту точку точкой разрыва.
Вообще говоря, в англоязычной литературе
она называется точкой кроссовера
(crossover
point).
Описанный процесс изображен на рисунке
5.
Родительские особи Потомки
Рис. 5 - Кроссовер
Данный тип кроссовера называется одноточечным, так как при нем родительские хромосомы разрезаются только в одной случайной точке. Также существует 2-х и n-точечный операторы кроссовера. В 2-х точечном кроссовере точек разрыва 2, а n-точечный кроссовер является своеобразным обобщением 1- и 2-точечного кросоеверов для n>2.
Кроме
описанных типов кроссовера есть еще
однородный кроссовер. Его особенность
заключается в том, что значение каждого
бита в хромосоме потомка определяется
случайным образом из соответствующих
битов родителей. Для этого вводится
некоторая величина
, и если случайное число больше
, то на n-ю
позицию первого потомка попадает n-й
бит первого родителя, а на n-ю
позицию сторого – n-й
бит второго родителя. В противном случае
к первому потомку попадает бит второго
родителя, а ко второму – первого. Такая
операция проводится для всех битов
хромосомы.
4.1.4. Мутация
Оператор мутации (mutation operator) необходим для вывода популяции из локального экстремума и способствует защите от преждевременной сходимости. Это достигается за счет того, что инвертируется случайно выбранный бит в хромосоме, что показано на рисунке 6.
До
мутации После
мутации
Рис. 6. Мутация
Так же как и кроссовер, мутация проводится не только по одной случайной точке. Можно выбирать некоторое количество точек в хромосоме для инверсии, причем их число также может быть случайным. Также можно инвертировать сразу некоторую группу подряд идущих точек. Среди рекомендаций по выбору вероятности мутации нередко можно встретить варианты 1/L или 1/N, где L – длина хромосомы, N – размер популяции.
Необходимо также отметить, что есть мнение, что оператор мутации является основным поисковым оператором и известны алгоритмы, не использующие других операторов, кроме мутации.
Постановка задачи
Задача состоит в том, чтобы для заданных параметров нечеткой системы построить базу правил, которая минимизирует среднеквадратическую ошибку аппроксимации. В правилах используются трапециевидные нечеткие переменные.
Для получения решения необходимо задать следующие параметры: t-норму, s-норму, импликацию, дефазификацию, левую и правую границы множеств, число точек в дискретном представлении нечеткого множества, число наблюдений, число итераций генетического алгоритма, число правил в искомой базе знаний.
Алгоритм генерации базы знаний – эволюционная стратегия.
Для генерации базы знаний используется эволюционная стратегия, являющаяся подклассом генетического алгоритма.
Идея эволюционных стратегий была предложена Инго Рехенбергом (Ingo Rechenberg) в 1960-70 годах. Так же, как и генетические алгоритмы, они работают с популяцией решений и основываются только на целевой функции и ограничениях. Основные отличия от классического генетического алгоритма заключаются в том, что эволюционная стратегия работает с векторами действительных чисел и использует только оператор мутации. При мутации каждому элементу вектора добавляется случайная нормально распределенная величина.
В
данном алгоритме используются
трапециевидные функции принадлежности.
Они описываются с помощью четырех
параметров и имеют два индекса i
и j.
Таким образом, функция принадлежности
относится к i-му
правилу и j-й
входной переменной,
– выходная функция принадлежности для
i-го
правила. Функция принадлежности j-й
нечеткой переменной в i-м
правиле записывается следующим образом:
Метод кодирования нечеткой системы с двумя входами и одним выходом показан на рисунке 7.
Правило 1 |
Правило 2 |
Правило 3 |
Правило 4 |
… |
Правило n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 7. Нечеткие правила, закодированные в хромосому.
Правило 3 на рисунке 7 означает следующее:
Если
есть
и
есть
,
то
y
есть
Здесь
и
– трапециевидные функции принадлежности
с четырьмя параметрами.
В нашей задаче один вход и один выход, поэтому правила представлены в следующем виде:
Если x есть , то y есть ,
где i – номер правила.
Получение «родительского» элемента
Сначала создается произвольный вектор – начальная хромосома. То есть, создается хромосома, все функции принадлежности в которой случайным образом инициализированы.