Научная статья на тему 'Реализация клеточного автомата "Жизнь" в пакете Mathcad'

Реализация клеточного автомата "Жизнь" в пакете Mathcad Текст научной статьи по специальности «Математика»

CC BY
167
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КЛЕТОЧНЫЙ АВТОМАТ / МАТЕМАТИЧЕСКАЯ МОДЕЛЬ / ДИНАМИКА / ОКРЕСТНОСТЬ / MATHCAD. / CELLULAR AUTOMATON / MATHEMATICAL MODEL / DYNAMICS / NEIGHBORHOOD

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

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

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

Похожие темы научных работ по математике , автор научной работы — Виноградов Д.В.

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

IMPLEMENTATION OF A CELLULAR AUTOMATON "LIFE" IN THE MATHCAD

This article deals with the modeling of one of the types of cellular automata «Life» by means of a mathematical package. It also provides a historical overview of the development of this class of mathematical models and its main features and configuration.

Текст научной работы на тему «Реализация клеточного автомата "Жизнь" в пакете Mathcad»

Виноградов Д.В.

к.п.н., доцент, замдиректора по ИТ

МУП НТТЭС г.Нижний Тагил, Россия

РЕАЛИЗАЦИЯ КЛЕТОЧНОГО АВТОМАТА «ЖИЗНЬ» В ПАКЕТЕ

MATHCAD

Аннотация

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

Ключевые слова: клеточный автомат, математическая модель, динамика, окрестность, Mathcad.

Vinogradov D. V.

PhD, associate Professor, deputy it director MUP Thermal power plant Nizhny Tagil, Russia

IMPLEMENTATION OF A CELLULAR AUTOMATON "LIFE" IN

THE MATHCAD

Abstract

This article deals with the modeling of one of the types of cellular automata -«Life» by means of a mathematical package. It also provides a historical overview of the development of this class of mathematical models and its main features and configuration.

Key words: cellular automaton, mathematical model, dynamics, neighborhood, Mathcad.

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

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

Клеточные автоматы были впервые рассмотрены еще в 1948 г. фон Нейманом и Уламом в качестве биологической идеализации процесса самовоспроизводства.

Клеточный автомат можно представить как регулярную решетку (или «таблицу») ячеек («клеток»), каждая из которых может находиться в конечном числе возможных состояний, например 0 или 1. Состояние системы полностью определяется значениями переменных в каждой клетке.

Клеточные автоматы, как было выявлено, обладают рядом особенностей, а именно:

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

- Переменные в каждой ячейке изменяются одновременно («синхронно»), исходя из значений переменных на предыдущем шаге.

- Правило определения нового состояния ячейки зависит только от локальных значений ячеек из некоторой окрестности данной ячейки.

Как правило [1], при анализе используются автоматы для моделирования динамического поведения двумерных сред. Каждой частице такой среды, занимающей некоторое пространство, ставиться в соответствие элементарный автомат, имеющий форму квадрата (реже треугольника или шестиугольника) и именуемый клеткой. Совокупность клеток образует клеточное пространство, в котором функционирует КА. Как отмечалось выше, отдельная клетка имеет конечный набор состояний Q, а выходные сигналы клеток есть номера их состояний. Функция переходов 5 определяется текущим состоянием q клетки, а также состоянием ее окружения. В зависимости от свойств моделируемого объекта выбирают различные типы окрестностей (рис. 1).

Рис. 1. Типы окрестностей

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

Рис.2. «Сворачивание» области

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

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

Для устранения отмеченных недостатков нами, средствами пакета МаШсаё реализован клеточный автомат «Жизнь», предложенный в 1970 г. Джоном Конвеем, который подчиняется определенным правилам и «живет» по следующим законам [3]:

- клетка может быть в активном, либо в пассивном состоянии;

- клетка остается активной или «выживает» на следующем шаге, при условии, что имеет в своей окрестности две или три активных клетки;

- клетка становится пассивной («умирает») либо из-за обособленности, если в окрестности имеется менее двух активных клеток, либо из-за перенаселения, если в окрестности три и более активных клеток;

- клетка становится активной («рождается»), на следующем временном шаге, если имеет строго 3 активных («живых») соседа;

- каждая клетка имеет 8 соседей: клетки, которые имеют с ней общие стороны или вершины;

- изменение состояния всех клеток происходит одновременно.

В игре «Жизнь» встречаются самые разнообразные конфигурации «живых клеток»:

- конфигурации, которые вымирают за конечное число шагов;

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

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

- движущиеся конфигурации;

- «генераторы» - конфигурации, которые порождают новые конфигурации.

Документ пакета Mathcad реализующий КА «Жизнь»

1. Задание размерности поля D ■= 20

2. Задание индексов массива значений i ■= 0. .D -1 j ■= 0..D -1

3. Формирование начального состояния популяции Мг ■= rnd(1) < 0.5

Рис. 1. Начальное состояние популяции. Живые клетки - красные, мертвые - синие

4. Задание функции, возвращающей вектор из N элементов, состоящий из двумерных массивов размерности Б х Б, отражающих состояние популяции на каждом отдельном шаге. Аргументами функции являются начальное состояние популяции и число отсчетов времени.

5. Задание числа тактов N := 600

6. Вычисление состояний популяции Res := Life(M, N)

7. Вывод состояния популяции на /-том такте задание номера такта / :=90

III ■■■■■■■■■■■■■■

■■■■■■■■в

■■■■а ■■■■

■■■■■■■■ ■■■

■■■■■■■■ ■■■

■■■■■■■■ ■ ■■■■■■■■■■

■■■■■■■■ ■■■ ■■■■■■■■

■ ■■■■ ■■■■■■■■

■ ■■■■■■■■

■ ■■

■■■■■■■■■■■■■■■■■■и

Рис. 2. Начальное состояние Рис.3. Состояние системы на 1-системы том такте

8. Создание анимационного клипа динамики популяции

В.&ИРКАМЕ

Рис.4. График для создания анимационного клипа

9. Задание функции, возвращающей вектор из N элементов, отражающий число живых клеток в популяции на каждом временном такте. Аргументом функции является вектор содержащий историю системы.

10. Вычисление значения численности живых клеток на каждом временном такте.

W := Member(Res) к := 0..N -1

150 -LOO

50

с _I_I_I_I_I_I_I_I_I_

0 20 40 60 SO 100 120 140 160 ISO 200

к

Рис. 5. Зависимость численности живых клеток в системе от времени Таким образом, мы рассмотрели простейший пример того, как можно средствами математического пакета смоделировать поведение клеток одного из классов - «клеточного автомата».

ЛИТЕРАТУРА

1. Советов Б.Я., Яковлев С. А. Моделирование систем. - М.: Высшая школа, - 1989. - 97 с.

2. Гулд Х., Тобочник Я. Компьютерное моделирование в физике: В 2-х частях. - М.: Мир, - 1990.

3. Введение в математическое моделирование: Учебное пособие под ред. П.В. Турусова. - М.: «Интермет Инжиниринг», 2000.

4. Гарднер М. Математические досуги М.: Мир - 1972.

5. Вязовова Е.В. Математика в естественном языке // Наука и перспективы. - 2017. - № 2. - С. 96-99.

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