Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГА / ГА / tikhomirov.docx
Скачиваний:
69
Добавлен:
26.04.2015
Размер:
1.11 Mб
Скачать
    1. Обработка некорректных автоматов

Сначала надо определиться, что такое “некорректный” клеточный автомат. В данной работе под таким автоматом подразумевается такой, у которого из какого-либо состояния возможен переход в несколько других состояний. В таком случае возникает неоднозначность, так как нет четкого правила, какой из переходов необходимо выбрать.

В данной работе были рассмотрены два подхода работы с такими клеточными автоматами:

  1. Они не участвуют в отборе.

    • На их место ставятся случайно сгенерированные особи.

  • Они участвуют в отборе.

        • Ошибки игнорируются.

    На тестовых примерах было установлено, что второй подход оказался эффективнее, так как на поздних этапах выращивания вероятность случайно сгенерировать особь, содержащую “хорошие” гены очень мала, а следовательно случайные особи сразу же выбывают из популяции. Ошибочные же особи могут иметь полезные части для операции скрещивания с другими особями.

      1. Упрощение клеточных автоматов

    В процессе генерации клеточных автоматов время от времени происходит добавление переходов, условий или действий, которые не задействуются во время проверки, то есть во время прохождения тестовых наборов. Очевидно, что такие элементы не несут смысловой нагрузки, но могут участвовать в генетических операциях.

    При работе с ними возможно несколько подходов:

    1. такие элементы необходимо удалять, чтобы повысить эффективность генетических операций;

    2. такие элементы необходимо оставлять в качестве избыточной информации, которая может пригодиться на следующих этапах генерации, так как в некоторой мере тоже была получена в процессе эволюции особей. Однако их необходимо помечать специальным маркером, чтобы не использовать в ряде операций.

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

    Второй же подход более эффективно работает в случае стагнации генетического алгоритма, так как позволяет накапливать множественные мутации в неиспользуемых частях хромосом, которые в последствие могут пригодиться при скрещивании. Очевидно, что в случае стагнации выход генетического алгоритма в нормальное состояние является в большинстве случаев случайным процессом, так как в основном выход происходит за счет мутаций.

    Поэтому в рассматриваемой работе были применены оба варианта. В нормальном режиме используются хромосомы, которые были получены из упрощенных клеточных автоматов, в случае режима стагнации используются хромосомы с избыточной информацией, чтобы повысить вероятность выхода из локального минимума.

      1. Фитнесс-функция

    Функция приспособленности особи, то есть клеточного автомата состоит из нескольких значений. Первое значение характеризует автомат с точки зрения решения поставленной задачи, то есть при моделировании сравниваются эталонные и полученные результаты для каждого шага моделирования. Второе значение характеризует автомат с точки зрения избыточности, то есть хранятся “длина автомата” и количество неиспользуемых переходов и условий.

    .

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

    Ниже рассмотрены плюсы и минусы при использовании каскадной фитнесс функции:

    Минусы:

    1. Дополнительные затраты при смене функции.

    2. Сложность сравнения эффективности особей (особенно это проявляется при сравнении особей из разных «островов»)

    3. Если клеточный автомат хорошо описывает N шагов, это не всегда означает, что он будет также эффективно решать задачу для (N+1) шагов. Часть эффективных решений могут теряться на ранних этапах.

    Плюсы:

    1. Прирост производительности, так как на ранних этапах уменьшается количество этапов проверки клеточного автомата.

    2. После каждого этапа полученный автомат частично решает поставленную задачу.

    Прирост скорости генерации (числа поколений, необходимых для получения решения) сильно зависит от начальных настроек при этом подходе.