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

Санкт-Петербургский государственный университет информационных технологий,

точной механики и оптики

Кафедра компьютерных технологий

Тихомиров А.В.

Генерация клеточных автоматов на основе обучающих примеров при помощи генетического программирования

Магистерская работа

Научный руководитель: Шалыто А.А.

Санкт-Петербург

2010

Оглавление

Введение 5

Глава 1 Обзор генетических алгоритмов и клеточных автоматов 9

1.1.Основные определения 9

1.2.Генетический алгоритм 9

1.3.Генетическое программирование 12

1.4.Стандартные операции скрещивания 13

1.5.Стратегии отбора нового поколения 14

1.6.Модели генетических алгоритмов 15

1.7.Клеточный автомат, его определение и свойства 17

1.8.Постановка задачи 19

Глава 2. Строение хромосомы клеточного автомата для генетического программирования 21

2.1.Строение хромосомы клеточного автомата 21

2.2.Генетические операции 23

2.2.1.Операции скрещивания 24

2.2.2.Операция скрещивания с использованием хранилища хромосом. 27

2.2.3.Операция инъекции хромосом 28

2.2.4.Операция мутации 30

Выводы по главе 2 33

Глава 3. Применение генетического алгоритма для генерации клеточных автоматов на основе тестовых наборов 34

3.1.Недостатки существующих генетических алгоритмов при решении поставленной задачи. 34

3.3.Генетический алгоритм 35

3.4.Генетические операции 37

3.5.Режимы работы генератора 37

3.5.1. Нормальный режим работы генератора 37

3.5.2.Форсированный режим работы генератора 38

3.5.3. Режим доводки 38

3.6.Обработка некорректных автоматов 38

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

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

3.9.Генетическая модель 41

3.9.1. Островная модель 41

3.9.2. Каскадная модель 43

3.10.Отбор нового поколения 45

Выводы по главе 3 49

Глава 4. Апробация предложенного метода на ряде задач 50

4.1.Структура генератора клеточных автоматов 50

4.2.Игры на двумерном поле 52

4.3.Клеточный автомат для модификации текстурных раскладок 55

Выводы по главе 4 60

Заключение 61

Список публикаций 63

Литература 64

Введение

В настоящее время сильно возросла потребность в симуляции различных процессов, таких, как физические процессы или химические реакции. Однако довольно часто такая симуляция оказывается довольно трудоемкой задачей, но в части случаев ее можно заменить задачей симуляции эквивалентной системы, которая состоит из клеточных автоматов [1–3]. Такие автоматы зачастую обладают сложным поведением и строением, и в общем случае их проектирование является нетривиальной и трудоемкой задачей.

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

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

На данный момент нет универсального генетического алгоритма для автоматической генерации клеточных автоматов для использования в широком спектре задач. Существуют разработанные методы автоматической генерации конечных автоматов при помощи генетического программирования, например в работе [4]. Также есть метод генерации клеточных автоматов на основе тестов, описанный в работе [5], но в нем присутствуют ограничения на строение клеточных автоматов из-за представления хромосом в виде строк.

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

  • генерация разнообразных клеточных автоматов на основе обучающих тестов;

  • оптимизация уже существующих клеточных автоматов.

Для достижения этой цели предлагается решение следующих задач:

  • разработка структуры хромосомы клеточного автомата для алгоритма генетического программирования;

  • представление клеточных автоматов, которое можно использовать в генетическом программировании

  • разработка алгоритмов скрещивания и мутации, апробация нескольких вариантов их реализации для выбора более оптимального подхода;

  • разработка алгоритмов отбора нового поколения и очистки поколения от «устаревших» и дублирующихся хромосом;

  • разработка методов и алгоритмов, которые помогают бороться с вырождение и стагнацией популяции в генетическом алгоритме;

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

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

Рис. 1. Схема процесса генерации клеточных автоматов

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

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

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

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