
- •Глава 4. Апробация предложенного метода на ряде задач 50
- •Введение
- •Глава 1 Обзор генетических алгоритмов и клеточных автоматов
- •Основные определения
- •Генетический алгоритм
- •Генетическое программирование
- •Стандартные операции скрещивания
- •Стратегии отбора нового поколения
- •Модели генетических алгоритмов
- •Клеточный автомат, его определение и свойства
- •Постановка задачи
- •Глава 2. Строение хромосомы клеточного автомата для генетического программирования
- •Строение хромосомы клеточного автомата
- •Генетические операции
- •Операции скрещивания
- •Операция скрещивания с использованием хранилища хромосом.
- •Операция инъекции хромосом
- •Операция мутации
- •Выводы по главе 2
- •Глава 3. Применение генетического алгоритма для генерации клеточных автоматов на основе тестовых наборов
- •Недостатки существующих генетических алгоритмов при решении поставленной задачи.
- •Генетический алгоритм
- •Генетические операции
- •Режимы работы генератора
- •Нормальный режим работы генератора
- •Форсированный режим работы генератора
- •Режим доводки
- •Обработка некорректных автоматов
- •Упрощение клеточных автоматов
- •Фитнесс-функция
- •Генетическая модель
- •Островная модель
- •Каскадная модель
- •Отбор нового поколения
- •Выводы по главе 3
- •Глава 4. Апробация предложенного метода на ряде задач
- •Структура генератора клеточных автоматов
- •Игры на двумерном поле
- •Клеточный автомат для модификации текстурных раскладок
- •Выводы по главе 4
- •Заключение
- •Список публикаций
- •Литература
Клеточный автомат, его определение и свойства
Клеточные автоматы – одни из наиболее интересных объектов дискретной математики. Идея клеточных автоматов, принадлежащая Джону фон Нейману, появилась в конце 40-х годов ХХ века. В нашей стране первые работы анализирующих структуру, поведение и свойства клеточных автоматов появились в середине 70-х годов ХХ века в Московском государственном университете (А.Н. Колмогоров, Г.Л. Курдюмов, А.Л.Тоом, Л.А. Левин, П. Гач). Одним из самых известных клеточных автоматов является клеточный автомат под названием игра «Жизнь», созданный Джоном Хортоном Конвеем в 1970 г. Данный автомат эмулирует процессы, происходящие при зарождении, развитии и гибели колонии живых организмов.
Клеточный автомат – набор клеток, образующих некоторую периодическую решетку с заданными правилами перехода, определяющими состояние клетки в следующий момент времени через состояние клеток, находящимися от нее на расстоянии не больше некоторого, в текущий момент времени. Как правило, рассматриваются автоматы, где состояние определяется самой клеткой и ближайшими соседями. В качестве решетки обычно рассматривается кубическая решетка.
Клеточный автомат является дискретной динамической системой, поведение которой полностью определяется в терминах локальных зависимостей.
Отметим основные свойства классической модели клеточных автоматов.
Локальность правил: на новое состояние клетки могут влиять только элементы ее окрестности и, возможно, она сама.
Однородность системы: ни одна область решётки не может быть отличена от другой по каким-либо особенностям правил.
Множество возможных состояний клетки – конечно. Это условие необходимо, чтобы для получения нового состояния клетки требовалось конечное число операций.
Значения во всех клетках меняются единовременно, в конце итерации, а не по мере вычисления. В противном случае порядок перебора клеток решетки, при совершении итерации, существенно влиял бы на результат.
Для расчета процесса диффузии используется две дублирующие матрицы клеток. Первый массив используется для получения значений при расчете очередного шага итерации, второй для хранения промежуточных результатов. В конце итерации происходит обмен данными между массивами.
Этот подход позволяет реализовать четвертое свойство клеточных автоматов: значения во всех клетках меняются единовременно, в конце итерации. Благодаря этому свойству значение шага расчета не зависит от выбора начальной ячейки, а также от способа перебора клеток, но требует дополнительных затрат памяти для хранения матрицы клеток с промежуточными результатами.
Также следует отметить, что клеточные автоматы обладают интересной способностью – он удобны для осуществления распределенных вычислений. Наиболее весомым их достоинством является локальность взаимодействий и слабая восприимчивость клеточных автоматов к помехам. Это свойство клеточных автоматов позволяет надеяться, что на их основе возможно создание как программных, так и аппаратных, эффективных и надежных систем, осуществляющих распределенные вычисления. В последнее время особые надежды возлагаются на использование графических акселераторов “GPU” для распределенного расчета клеточных автоматов. Так как значения состояний и данных клеточных автоматов в большинстве случаев удобно сохранять в соответствующих каналах текстур, используемых в графических акселераторах.
Подробно про клеточные автоматы и способы их применения написано в работах [11–16]. В работе [17] освещены современные методы реализации машины клеточных автоматов.