- •Глава 4. Апробация предложенного метода на ряде задач 50
- •Введение
- •Глава 1 Обзор генетических алгоритмов и клеточных автоматов
- •Основные определения
- •Генетический алгоритм
- •Генетическое программирование
- •Стандартные операции скрещивания
- •Стратегии отбора нового поколения
- •Модели генетических алгоритмов
- •Клеточный автомат, его определение и свойства
- •Постановка задачи
- •Глава 2. Строение хромосомы клеточного автомата для генетического программирования
- •Строение хромосомы клеточного автомата
- •Генетические операции
- •Операции скрещивания
- •Операция скрещивания с использованием хранилища хромосом.
- •Операция инъекции хромосом
- •Операция мутации
- •Выводы по главе 2
- •Глава 3. Применение генетического алгоритма для генерации клеточных автоматов на основе тестовых наборов
- •Недостатки существующих генетических алгоритмов при решении поставленной задачи.
- •Генетический алгоритм
- •Генетические операции
- •Режимы работы генератора
- •Нормальный режим работы генератора
- •Форсированный режим работы генератора
- •Режим доводки
- •Обработка некорректных автоматов
- •Упрощение клеточных автоматов
- •Фитнесс-функция
- •Генетическая модель
- •Островная модель
- •Каскадная модель
- •Отбор нового поколения
- •Выводы по главе 3
- •Глава 4. Апробация предложенного метода на ряде задач
- •Структура генератора клеточных автоматов
- •Игры на двумерном поле
- •Клеточный автомат для модификации текстурных раскладок
- •Выводы по главе 4
- •Заключение
- •Список публикаций
- •Литература
Обработка некорректных автоматов
Сначала надо определиться, что такое “некорректный” клеточный автомат. В данной работе под таким автоматом подразумевается такой, у которого из какого-либо состояния возможен переход в несколько других состояний. В таком случае возникает неоднозначность, так как нет четкого правила, какой из переходов необходимо выбрать.
В данной работе были рассмотрены два подхода работы с такими клеточными автоматами:
Они не участвуют в отборе.
На их место ставятся случайно сгенерированные особи.
Они участвуют в отборе.
Ошибки игнорируются.
На тестовых примерах было установлено, что второй подход оказался эффективнее, так как на поздних этапах выращивания вероятность случайно сгенерировать особь, содержащую “хорошие” гены очень мала, а следовательно случайные особи сразу же выбывают из популяции. Ошибочные же особи могут иметь полезные части для операции скрещивания с другими особями.
Упрощение клеточных автоматов
В процессе генерации клеточных автоматов время от времени происходит добавление переходов, условий или действий, которые не задействуются во время проверки, то есть во время прохождения тестовых наборов. Очевидно, что такие элементы не несут смысловой нагрузки, но могут участвовать в генетических операциях.
При работе с ними возможно несколько подходов:
такие элементы необходимо удалять, чтобы повысить эффективность генетических операций;
такие элементы необходимо оставлять в качестве избыточной информации, которая может пригодиться на следующих этапах генерации, так как в некоторой мере тоже была получена в процессе эволюции особей. Однако их необходимо помечать специальным маркером, чтобы не использовать в ряде операций.
Каждый из этих подходов имеет свои плюсы и минусы, так первый подход, который предлагает удаление «лишних» элементов эффективно работает на начальных этапах работы генетического алгоритма. Он повышает эффективность операции скрещивания хромосом.
Второй же подход более эффективно работает в случае стагнации генетического алгоритма, так как позволяет накапливать множественные мутации в неиспользуемых частях хромосом, которые в последствие могут пригодиться при скрещивании. Очевидно, что в случае стагнации выход генетического алгоритма в нормальное состояние является в большинстве случаев случайным процессом, так как в основном выход происходит за счет мутаций.
Поэтому в рассматриваемой работе были применены оба варианта. В нормальном режиме используются хромосомы, которые были получены из упрощенных клеточных автоматов, в случае режима стагнации используются хромосомы с избыточной информацией, чтобы повысить вероятность выхода из локального минимума.
Фитнесс-функция
Функция приспособленности особи, то есть клеточного автомата состоит из нескольких значений. Первое значение характеризует автомат с точки зрения решения поставленной задачи, то есть при моделировании сравниваются эталонные и полученные результаты для каждого шага моделирования. Второе значение характеризует автомат с точки зрения избыточности, то есть хранятся “длина автомата” и количество неиспользуемых переходов и условий.
.
Функция приспособленности особи вычисляется при моделировании и запоминается, таким образом, для каждой особи она вычисляется один раз. Для борьбы с вырождением популяции была применена каскадная фитнесс функция. Основная идея заключается в том, что на начальных этапах выращивания клеточных автоматов функция приспособленности учитывает только несколько первых временных срезов входных данных. Когда в популяции существуют клеточные автоматы, которые в какой-то степени удовлетворяют текущей фитнесс функции, то происходит смена на функцию с учетом большего количества слоев.
Ниже рассмотрены плюсы и минусы при использовании каскадной фитнесс функции:
Минусы:
Дополнительные затраты при смене функции.
Сложность сравнения эффективности особей (особенно это проявляется при сравнении особей из разных «островов»)
Если клеточный автомат хорошо описывает N шагов, это не всегда означает, что он будет также эффективно решать задачу для (N+1) шагов. Часть эффективных решений могут теряться на ранних этапах.
Плюсы:
Прирост производительности, так как на ранних этапах уменьшается количество этапов проверки клеточного автомата.
После каждого этапа полученный автомат частично решает поставленную задачу.
Прирост скорости генерации (числа поколений, необходимых для получения решения) сильно зависит от начальных настроек при этом подходе.