УДК 519.1 Данеев Александр Васильевич,
доцент кафедры информационных технологий, Бурятский государственный университет, тел. 89833360002, e-mail: [email protected] Бурзалова Татьяна Васильевна, к. ф.-м. н., доцент, заведующая кафедрой «Прикладнаяматематика», Бурятский государственный университет, тел. 89834323778, e-mail: [email protected]
ИССЛЕДОВАНИЕ ДИНАМИКИ ПОВЕДЕНИЯ КЛЕТОЧНЫХ АВТОМАТОВ СРЕДСТВАМИ ПАКЕТА «MATHEMATICA»
A. V. Daneev, T. V. Burzalova
THE BEHAVIOUR OF CELLULAR AUTOMAT DYNAMICS STUDY BY TOOLS OF THE «MATHEMATICA» PACKAGE
Аннотация. В статье обсуждается роль компьютерного эксперимента в проведении исследований в областях естественных наук. Решение большинства математических задач по существу есть тоже форма эксперимента. Она позволяет исследователю выдвигать различные гипотезы и затем их доказывать или опровергать, строя конкретный контрпример. При исследовании, как правило, не всегда можно получить аналитическое и даже качественное решение математической задачи. И здесь на помощь приходит численный эксперимент на компьютере для решения уравнений или исследования динамики дискретных систем. Дальнейший анализ полученных данных эксперимента, еще даже на этапе их визуализации, позволяет установить некоторые закономерности и характеристики. Это, в свою очередь, стимулирует теоретические исследования данной задачи. В работе исследуется динамика поведения дискретных динамических систем на примере клеточных автоматов с помощью пакета «Mathematica».
Ключевые слова: компьютерный эксперимент, клеточные автоматы, пакет «Mathematica».
Abstract. The article discusses the role of computer simulation in a research in the fields of natural sciences. Solution of majority of mathematical problems on the merits is also a form of experiment. It allows the researcher to put forward various hypothesis, and then prove them or disprove by building a concrete counterexample. In the study, as a rule, it isn't always possible to obtain an analytical and even qualitative solution of the mathematical problem. And here helps numerical experiment on computer to solve equations or study the dynamics of discrete systems. Further analysis of the data of the experiment, yet even at the stage of visualization, allows to set some patterns and characteristics. This, in turn, stimulates theoretical studies of this problem. We study the dynamic behavior of discrete dynamical systems on the example of cellular automata using a «Mathematica» package.
Keywords: computer experiment, cellular automat, «Mathematica» package.
Введение
Всем понятна роль эксперимента в преподавании и в естественно-научных исследованиях. Решение большинства задач по математике по существу есть тоже форма эксперимента. Эта форма задач позволяет исследователю выдвигать различные гипотезы и затем их доказывать или опровергать, строя конкретный контрпример. При исследовании, как правило, не всегда можно получить аналитическое и даже качественное решение математической задачи. И здесь на помощь приходит численный эксперимент на компьютере для решения уравнений или исследования динамики дискретных систем. Дальнейший анализ полученных данных эксперимента, еще даже на этапе их визуализации, позволяет установить некоторые закономерности и характеристики. Это, в свою очередь, стимулирует теоретические исследования данной задачи. Так, в 1950 г. Э. Ферми, проведя эксперимент на ЭВМ по численному решению дифференциального уравнения Кортевега -
де Фриза, обнаружил, что поведение солитонов подобно поведению твердых тел.
Основные положения
Исследуем динамику поведения дискретных динамических систем на примере клеточных автоматов [1]. Важная особенность клеточных автоматов заключается в том, что их поведение можно наблюдать визуально.
Клеточный автомат состоит из ряда черных и белых клеток. На каждом шаге к каждой клетке применяется определенное правило, которое определяет цвет текущей клетки в зависимости от ее цвета и цвета непосредственно соседних с ней слева и справа клеток на предыдущем шаге.
На следующем рисунке показана эволюция одного клеточного автомата до десятого шага.
Для этого автомата правило определяет, что клетка должна быть черной во всех случаях, когда она сама или хотя бы один из ее соседей окрашены в черный цвет.
На этом рисунке представлено это правило. Верхний ряд каждой ячейки содержит одну из восьми возможных комбинаций цветов клетки и ее соседей. В нижнем ряду показан цвет центральной клетки на следующем шаге. Нижний ряд может быть представлен как двоичное число 11111110, или 254 в десятичном представлении. Таким образом, этот клеточный автомат выполняет правило (программу) номер 254 [1, 2]. Всего есть 256 таких простых программ.
Предыдущий рисунок показывает, что, стартуя из состояния с одной черной клеткой, это правило ведет к простому растущему образцу состояния, единообразно окрашенному в черный цвет. Но, немного изменив правило, получаем другой образец, в котором чередуются черные и белые клетки, как на шахматной доске.
Клеточный автомат выполняет слегка измененное правило: если хотя бы один из соседей клетки черный, то клетка становится черной, иначе клетка становится белой. Графически это правило представлено ниже и имеет номер 250, в двоичном представлении 11111010.
Можно предположить, что рассматриваемый клеточный автомат, выполняя остальные правила программы, продуцирует такие же простые образцы. На нижнем рисунке показан результат работы клеточного автомата такого же типа, но с небольшим отличием от предыдущего правила.
Мы получили фрактал с последовательно вложенной структурой - ковер Серпинского. Образец получен после 47-го шага, начиная так же из состояния с одной черной клеткой по вышеприведенному правилу номер 90, которое математически описывается формулой а? = МОБ[ам + ам, 2], означающейостаток при делении на 2 суммы значений соседних клеток. Правило определяет, что клетка становится черной, когда либо левая, либо правая, но не обе вместе окрашены в черный цвет.
Приведем результат работы автомата после большего числа шагов.
На этом рисунке более наглядно проявляется фрактальная структура, состоящая из вложенных треугольников, каждый из которых есть меньшая копия всего рисунка и их вложение также имеет четко определенную регулярную структуру.
Рассматривая эти автоматы, можно видеть, что все они продуцируют образцы состояний регулярной структуры: простой однородный образец, простой чередующийся образец. Можно выдвинуть гипотезу, что, может быть, после больше-
го числа шагов поведение автомата перейдет в более простое. Следующий рисунок показывает, что этого не случилось по истечении 1000 шагов.
Наоборот, мы видим, что теряется ясно наблюдаемая регулярность и порядок переходит в хаос. Здесь большая упорядоченная структура выглядит как врезанный в беспорядок клин. И повсюду хаотично разбросаны белые треугольники и другие мелкие структуры. С другой стороны, наблюдается довольно однородная плотность черных и белых клеток.
Эксперименты для исследования данного автомата можно продолжать далее, чередуя взгляд как на общую картину, так и на увеличенные детали целого изображения.
Будут ли некоторые фрагменты в конце концов аннигилироваться, оставляя только регулярности? Или, наоборот, будут появляться все новые и новые структуры, достигая полной случайности образца?
Проведем еще один эксперимент с клеточным автоматом, работающим по правилу 110 [1]:
Поведение данного клеточного автомата кажется не совсем регулярным и не полностью случайным. Рисунок получен после 150 шагов, начиная с одной черной клетки. Заметим, что некоторые детали распространяются влево, но не вправо. Часть клеток вовлекается в границу, образуя регулярную структуру, пока другие переходят в расположение разносортных локальных структур. Ка-
жется, что хотя каждая клетка подчиняется одному правилу поведения, различные конфигурации клеток с разной последовательностью цветов могут сообща продуцировать все виды поведения.
Глядя только на правило, кажется невозможным предугадать поведение каждого клеточного автомата. Но, проводя соответствующий компьютерный эксперимент, можно увидеть то, что происходит на самом деле, - и в результате открывается путь исследования целого мира отмеченного феномена, связанного с простыми программами эволюции.
иркутским государственный университет путей сообщения
Приведем еще несколько примеров эволю-ций клеточного автомата для некоторых правил. Экспериментатор может попробовать провести дальнейшую классификацию их поведения и исследовать детальную графическую структуру.
Если же для одномерных клеточных автоматов в качестве соседей клетки рассматривать по две клетки слева и справа от нее, то состояние клетки будет зависеть от 32 комбинаций нолей и единиц в пяти подряд идущих клетках. Мы получим уже 232 = 4294967296 различных правил. Применив, например, правило 4067213884 к начальному состоянию из случайного распределения черных и белых клеток, после 600 шагов эволюции клеточного автомата получится следующая картина.
Можно рассмотреть поведение клеточных
автоматов с тремя, а не с двумя цветами клеток, добавив третий цвет. В этом случае есть 33 = 27 различных сочетаний значений трех соседних клеток и правило может сопоставлять каждому сочетанию одно из трех значений цветов. Таким образом, получаем 327 = 7 625 597 484 987 правил. Проанализировав, рисунки, можно сделать вывод, что характер поведения этих клеточных автоматов похож на поведение двуцветных клеточных автоматов. Во всех этих примерах начальное состояние представлено одной серой клеткой.
Двумерные клеточные автоматы
Клеточные автоматы, которые рассматривались ранее, были одномерными, на каждом шаге они состоят только из одного ряда клеток. Рассмотрим двумерные клеточные автоматы, действующие на двумерной сетке клеток, цвет каждой клетки которой меняется по некоторому правилу в зависимости от предыдуших цветов ее самой и четырех ее соседей, как показано ниже.
□
Ограничимся только двумя цветами и только такими суммирующими правилами этого преобразования, в которых новый цвет центральной клетки зависит не от цветов соседей, а только от среднего значения предыдущих цветов ее 4 соседей и ее собственного прежнего цвета.
—>
■ ♦ + + *
1 2 3 4 5 6 7 8
11
21
31
Обсудим схему кодировки правил. Всего имеется 5 различных значений суммы цветов 4 соседей: 0, 1, 2, 3, 4 - и два значения цвета центральной клетки. Получаем 10 различных комбинаций. Правило должно назначить один из 2 цветов каждой из этих 10 комбинаций. Итого получаем 210 = 1024 правила. Расположим 10 комбинаций цветов в первой строке таблицы в следующем порядке и, для примера, во второй строке таблицы укажем новый цвет клетки. В первой строке через запятую указаны сумма цветов соседей текущей клетки и цвет самой клетки.
Во второй строке получилось двоичное число 11101011102, или 942ю. Будем говорить, что это правило имеет код 942.
Нижний рисунок показывает эволюцию двумерного клеточного автомата из состояния с одной черной клеткой, с вышеприведенным правилом (код 942). На словах это правило выглядит таким: ячейка становится черной, если только один или все из ее соседей на предыдущем шаге были черными, а в остальных случаях она не меняет своего цвета.
Узоры, производимые этим автоматом, имеют непростую, но регулярную геометрическую форму, часто напоминающую снежинки.
Заключение
С помощью клеточных автоматов, используя пакет «МаШешайса», можно исследовать не только динамику роста снежинок, но и динамику роста растений, эволюцию живых организмов, технических систем, включая железнодорожный транс-
порт, и т. д. [3-5]. Ниже для примера приведена программа, реализующая трехмерное представление эволюции двумерного клеточного автомата для случая, когда начальное состояние и правило не меняются:
CenterList[n_Integer]:=PadLeft[{{1}},{n,n},0, Floor[{n,n}/2]]
Total5Rule[code_Integer]:=IntegerDigits[code,10]
Функция формирования следующего состояния также не меняется: CAStep[rule_,aJ:=Map[rule[[10-#]]&, ListConvolve[{{0,2,0},{2,1,2},{0,2,0}},a,2],{2}]
Накапливаем с помощью встроенной функции NestList все состояния от первого шага до шага t, формируя трехмерную таблицу CAStepEvolveList[rule_,init_List,t_Integer]:= NestList[CAStep[rule,#]&,init,t];
Таблица запоминается в переменной a a=CAStepEvolveList[Total5Rule[942],CenterList[ 43] ,20];
Выводим изображение Show [Graphics3D [Map[Cuboid[-everse [#] ] &,Position[a,1]]]];
4, 4, 3, 3, 2, 2, 1, 1, 0, 0,
1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 0 1 1 1 0
Здесь для каждого элемента трехмерного списка а, содержащего 1, графическим примитивом Cuboid [3] строится единичный кубик, координаты которого определяются положением этого элемента в списке.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Дьяконов В.П. Mathematica. СПб. : Питер, 2001. 92 с.
2. Бурзалова Т.В., Данеев А.В. Развитие творческих способностей учащихся с помощью ком-
пьютерной системы «Mathematica». Улан-Удэ : Изд-во БГУ, 2008. 188 с.
3. Бурзалова Т.В. Учебно-методический комплекс по решению задач дискретной математики с использованием компьютерной системы «Mathematica». Улан-Удэ : Изд-во БГУ, 2007. 407 с.
4. Джонассен Д.Х. Компьютеры как инструменты познания // Информатика и образование. 1996. № 4. С. 117-131.
5. Данеев А.В., Деменчонок О.Г. Информатика. Базовый курс. Иркутск : Изд-во ИрГУПС, 2012. 160 с.