Научная статья на тему 'Применение направленной мутации для генерации клеточных автоматов'

Применение направленной мутации для генерации клеточных автоматов Текст научной статьи по специальности «Математика»

CC BY
388
78
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КЛЕТОЧНЫЕ АВТОМАТЫ / CELLULAR AUTOMATA / ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ / GENETIC ALGORITHMS

Аннотация научной статьи по математике, автор научной работы — Тихомиров Андрей Владимирович, Шалыто Анатолий Абрамович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Тихомиров Андрей Владимирович, Шалыто Анатолий Абрамович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION OF THE DIRECTED MUTATION TO CELLULAR AUTOMATA GENERATION PROCESS

Cellular automata are widely used for the simulation of discrete systems. However, in most cases creation of controlling cellular automata is done manually, empirically or by exhaustive search. A number of papers describe methods for automatic generation of finite automata and cellular automata using genetic programming. However, relatively simple genetic operators are used in these issues not taking into account the current test patterns and the population state that makes strong impact on the performance and convergence of these methods. This paper deals with the classical mutation operator applied to the process of cellular automata generation and directed mutation operator, designed to eliminate the above shortcomings. Both described operators are used in the adaptive genetic algorithm. The operator of directed mutation performs the analysis of the current chromosome, test pattern, and offers an optimal variant of mutation on the basis of the information received. The main differences and advantages as compared with the standard mutation operator are described. Testing on several training examples is performed; data about the resulting performance for genetic algorithm is presented.

Текст научной работы на тему «Применение направленной мутации для генерации клеточных автоматов»

5

КОМПЬЮТЕРНЫЕ СИСТЕМЫ И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

COMPUTER SCIENCE

УДК 004.4'242

ПРИМЕНЕНИЕ НАПРАВЛЕННОЙ МУТАЦИИ ДЛЯ ГЕНЕРАЦИИ КЛЕТОЧНЫХ АВТОМАТОВ А.В. Тихомиров a, А.А. Шалыто a

a

а Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (Университет ИТМО), Санкт-Петербург, Россия, [email protected]

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

APPLICATION OF THE DIRECTED MUTATION TO CELLULAR AUTOMATA

GENERATION PROCESS A.V. Tikhomirov a, A.A. Shalyto a

a Saint Petersburg National Research University of Information Technologies, Mechanics and Optics (ITMO University), Saint Petersburg, Russia, [email protected]

Cellular automata are widely used for the simulation of discrete systems. However, in most cases creation of controlling cellular automata is done manually, empirically or by exhaustive search. A number of papers describe methods for automatic generation of finite automata and cellular automata using genetic programming. However, relatively simple genetic operators are used in these issues not taking into account the current test patterns and the population state that makes strong impact on the performance and convergence of these methods. This paper deals with the classical mutation operator applied to the process of cellular automata generation and directed mutation operator, designed to eliminate the above shortcomings. Both described operators are used in the adaptive genetic algorithm. The operator of directed mutation performs the analysis of the current chromosome, test pattern, and offers an optimal variant of mutation on the basis of the information received. The main differences and advantages as compared with the standard mutation operator are described. Testing on several training examples is performed; data about the resulting performance for genetic algorithm is presented. Keywords: cellular automata, genetic algorithms.

Симуляция физических процессов используется в самых разных областях наук [1-7]. Но процесс расчета зачастую оказывается очень трудоемкой задачей. Исходя из этого, для упрощения задачу симуляции замещают на расчет эквивалентной ей модели клеточных автоматов, которые замечательно поддаются параллельным и распределенным вычислениям. Клеточные автоматы - это дискретные динамические системы, поведение которых может быть описано при помощи набора состояний, переходов и условий на них. Они широко применяются для моделирования различных систем, генерации псевдослучайных последовательностей, теории вычислительной сложности и даже криптографии, однако основная сфера их применения - моделирование сложных физических процессов. Один из главных недостатков автоматов -сложность проектирования, так как они обладают сложно предсказуемым и зачастую хаотическим поведением. Классификация клеточных автоматов приведена в работах [1, 8].

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

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

Введение

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

Настоящая работа развивает идеи, описанные в работах [12, 13], в них представлен адаптивный генетический алгоритм (ГА) для автоматической генерации клеточных автоматов на основе тестовых наборов. Этот генетический алгоритм учитывает строение клеточного автомата и использует специализированные генетические операторы. Стоит отметить, что в работах, посвященным генетическим алгоритмам, используются простые генетические операторы, производительность которых достаточно низка в силу их применения только к текущей особи.

ГА, описанныах в работе [12, 13], имеет следующие недостатки: у разработанного ГА оператор мутации никак не зависит от тестовых наборов и производит мутации строго «случайным» образом, что крайне неэффективно. Цель настоящей работы - устранить недостатки оператора мутации для клеточного автомата.

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

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

Процесс Набор Генератор > Клеточный

тестов автомат

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

Целью работы алгоритма является выращивание автомата, наиболее полно удовлетворяющего тестовым наборам за наименьшее число поколений. Подробное описание механизмов работы клеточных автоматов приведено в работах [14-16].

Операция мутации

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

Рис. 2. Примеры применения оператора мутации к деревьям разбора: 1) - мутация вершины соответствующей операции; 2) - изменение узла дерева, связанного с константой; 3) - замена узла дерева

на случайное поддерево

Операторы мутации, предложенные в данной работе, делятся на два вида:

- точечная мутация - модификация одного гена;

- множественная мутация - модификация набора генов или всей хромосомы целиком.

Для деревьев решения был разработаны следующие варианты мутаций (все операции являются модификацией поддеревьев) (рис. 2):

1. изменение вершины, соответствующей какой-либо операции, т.е. замена одного типа операции на другой;

2. изменение значения константы в листе дерева;

3. замена какого-либо поддерева на новое, полученное случайным образом;

4. модификация узла, соответствующего переменной:

- замена на другую переменную;

- замена на случайное поддерево;

- замена на константу, значение которой равно текущему значению переменной.

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

Операция направленной мутации

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

- анализ хромосомы и ее составляющих генов;

- анализ следующего шага симуляции;

- анализ родительских хромосом и истории мутаций и скрещиваний.

Таким образом, принцип работы оператора направленной мутации выглядит следующим образом:

- анализ хромосомы/популяции;

- вычленение граничных условий;

- решение задачи удовлетворения граничным условиям:

- нахождение генов для модификации и набора вариантов изменений;

- изменение хромосом и регистрация их в истории (чтобы впоследствии не подвергать их мутации).

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

Отметим также, что для ускорения расчетов граничных условий эти условия создаются только для одного состояния и одного перехода, т.е. по сути, определяется условие только одного ребра перехода. Таким образом, в процессе работы оператора вычисляется набор ребер и условий для них. Для каждого такого вычисления запоминается значение, которое характеризует его «успешность» (разница значений функции приспособленности для хромосомы до модификации и после): K d = Fitness - Fitness ld.

edge new old

Таким образом, оператор работает в двух режимах:

1. вычисление ребер переходов между состояниями;

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

Ниже представлен алгоритм работы оператора направленной мутации:

- выборка гена хромосомы для мутации;

- проверка на наличие гена в базе уже вычисленных мутаций:

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

- если ген не участвовал в вычислениях ранее, то:

- выбирается участок тестового поля;

- выбирается пара состояний:

- состояние рассматриваемой текущей ячейки;

- состояние этой же ячейки на следующем шаге расчета;

- создаются граничные условия для выбранной пары состояний и одного из состояний окружающих клеток;

- на основе граничных условий получается условие ребра перехода;

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

- полученная особь участвует в отборе;

- после вычисления функции приспособленности для ребра записывается в параметр K следующее значение:

Kedge = maX (Knew - Kold )■

Несмотря на то, что оператор называется мутацией, механизм работы мало похож на классический оператор мутации, так как изменения в хромосоме делаются направленно. Таким образом, он является чем-то средним между операторами классической мутацией и скрещивания (кроссовера). Оператор направленной мутации не является заменой обычному оператору мутации, они дополняют друг друга:

- оператор обычной мутации позволяет «выходить» из локальных минимумов и состояния стагнации генетического алгоритма;

- оператор направленной мутации улучшает сходимость генетического алгоритма и уменьшает среднее время генерации решения.

Полученные результаты

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

а б

Рис. 3. Пример тестового набора из двух шагов симуляции произвольного клеточного автомата: начальное состояние (а); после нескольких шагов симуляции (б)

s н о о и и

H

Ю 900

о

0

1 700

1200 1100 1000

800

s s я

(D

s и

(D

и

го

600 500 400 300 200 100

500 1000

1500 2000 2500 Номер поколения

3000 3500 4000

Рис. 4. График зависимости значения функции приспособленности от номера поколения для генетического алгоритма с использованием только оператора мутации

0

s н о о и и

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

о

4 ю о о о а

о

5

6

S

s я

<ц S

и

о g

и

со

1400 1300 1200 1100 1000 900 800 700 600 500 400 300 200 100

0

100 125 150 175 200 Номер поколения

Рис. 5. График зависимости значения функции приспособленности от номера поколения для генетического алгоритма с использованием только оператора направленной мутации

На рис. 4 представлен график зависимости значения функции приспособленности от номера поколения для ГА, который использует только оператор мутации. Видно, что обычный оператор мутации дает хорошие результаты только для начала процесса генерации. Его основное предназначение - выход из состояния стагнации. В отличие от него, оператор направленной мутации эффективен для большей части процесса генерации (рис. 5).

В большинстве тестов сходимость ГА при использовании оператора направленной мутации примерно в десять раз превышает сходимость обычного ГА (использование операторов скрещивания и мутации). Однако стоит отметить, что трудоемкость оператора направленной мутации зависит от тестовых наборов и строения анализируемых особей. В среднем время обработки поколения увеличивается в несколько раз по сравнению с традиционными генетическими операторами.

В таблице представлены время генерации для двух клеточных автоматов - при помощи оператора направленной мутации и стандартным оператором мутации (в случае традиционной мутации в некоторых случаях ГА не сходился, и его приходилось перезапускать).

T ■ ± min T 1 ave T ± max

Направленная мутация 15 45 97

Традиционная мутация 40 150 413*

Таблица. Сравнение времени работы генератора для генерации эталонов с использованием разных операторов мутации (* - без учета случаев стагнации)

Заключение

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

Литература

1. Frisch U., d'Humieres, D., Hasslacher B. et. al. Lattice gas hydrodynamics in two and three dimensions // Complex Systems. 1987. V. 1. N 4. P. 649-707.

2. Wolfram S. Cellular automation fluids 1: Basic theory // Journal of Statistical Physics. 1986. V. 45. N 3-4. Р. 471-526.

3. Vose M.D., Wright A.H. Simple genetic algorithms with linear fitness // Evolutionary Computation. 1994. V. 2, N 4. P. 347-368.

4. Vose M.D. A critical examination of the schema theorem. Technical Report UT-CS-93212. University of Tennessee, 1993. [Электронный ресурс]. Режим доступа: http://citeseer.ist.psu.edu/129900.html, свободный. Яз. англ. (дата обращения 20.02.2014).

5. Vose M.D., Wright A.H. The simple genetic algorithm and the Walsh transform. Part I. Theory // Evolutionary Computation. 1998. V. 6. N 3. P. 253-273.

6. Das R., Crutchfield J.P., Mitchell M., Hanson J.E. Evolving Globally synchronized cellular automata // Proceedings of the Sixth International Conference on Genetic Algorithms. San Francisco, USA: 1995. P. 336-343.

7. Psakhie S.G., Horie Y., Ostermeyer G.P. et. al. Movable cellar automata method for simulating materials with mesostructure // Theoretical and Applied Fracture Mechanics. 2001. V. 37. P. 311-334.

8. Скаков П.С. Классификация поведения одномерных клеточных автоматов. Магистерская диссертация. СПбГУ ИТМО, 2007. [Электронный ресурс]. Режим доступа: http://is.ifmo.ru/papers/_skakov_master.pdf, свободный. Яз. рус. (дата обращения 20.02.2014).

9. Панченко Е.В., Ульянцев В.И. Применение методов решения задачи о выполнимости квантифициро-ванной булевой функции для построения управляющих конечных автоматов по сценариям работы и темпоральным свойствам // Научно-технический вестник информационных технологий, механики и оптики. 2013. № 4 (86). C. 151-153.

10. Бедный Ю. Д. Применение генетических алгоритмов для построения клеточных автоматов [Электронный ресурс]. - Режим доступа: http://is.ifmo.ru/papers/genalgcelaut.pdf, свободный. Яз. рус. (дата обращения 20.02.2014).

11. Царев Ф.Н., Шалыто А. А. Применение генетического программирования для генерации автомата в задаче об «умном муравье» [Электронный ресурс]. Режим доступа: http://is.ifmo.ru/genalg/_ant_ga.pdf, свободный. Яз. рус. (дата обращения 20.02.2014).

12. Тихомиров А.В., Шалыто А.А. Применение адаптивного генетического алгоритма для генерации клеточных автоматов // Научно-технический вестник информационных технологий, механики и оптики. 2012. № 1 (77). С. 100-105.

13. Тихомиров А.В., Шалыто А. А. Применение генетического подхода для генерации клеточных автоматов // Научно-технический вестник СПбГУ ИТМО. 2011. № 2 (72). С. 62-66.

14. Тоффоли Т., Марголус Н. Машины клеточных автоматов. М.: Мир, 1991. 280 с.

15. Фон Нейман Дж. Теория самовоспроизводящихся автоматов: Пер. с англ. М.: Мир, 1971. 384 с.

16. Наумов Л.А. Метод введения обобщенных координат и инструментальное средство для автоматизации проектирования программного обеспечения вычислительных экспериментов с использованием клеточных автоматов. Дис... канд. техн. наук: 05.13.12. СПб, 2007. 283 с.

Тихомиров Андрей Владимирович - кандидат технических наук, докторант, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (Университет ИТМО), Санкт-Петербург, Россия, [email protected]

Шалыто Анатолий Абрамович - профессор, доктор технических наук, зав. кафедрой, Санкт-

Петербургский национальный исследовательский университет информационных технологий, механики и оптики (Университет ИТ-МО), Санкт-Петербург, Россия, [email protected]

Andrey V. Tikhomirov - PhD, doctoral candidate, Saint Petersburg National Research University

of Information Technologies, Mechanics and Optics (ITMO University), Saint Petersburg, Russia, [email protected]

Anatoly A. Shalyto - D.Sc., Professor, Department head, Saint Petersburg National Research

University of Information Technologies, Mechanics and Optics (ITMO University), Saint Petersburg, Russia, [email protected]

Принято к печати 10.02.14 Accepted 10.02.14

i Надоели баннеры? Вы всегда можете отключить рекламу.