Введение

Дискретная модель, изучаемая в информатике. Клеточный автомат (мн. ч. клеточные автоматы, аббр. КА) — дискретная модель вычислений, изучаемая в теории автоматов. Клеточные автоматы также называют клеточными пространствами, тесселяционными автоматами, однородными структурами, клеточными структурами, тесселяционными структурами и итеративными массивами. Клеточные автоматы нашли применение в различных областях, включая физику, теоретическую биологию и моделирование микроструктур. Клеточный автомат состоит из регулярной сетки ячеек, каждая из которых находится в одном из конечного числа состояний, например, включено и выключено (в отличие от связанной решетки отображений). Сетка может иметь любое конечное число измерений. Для каждой ячейки определяется набор ячеек, называемый её окрестностью, относительно данной ячейки. Начальное состояние (время t = 0) выбирается путем присвоения состояния каждой ячейке. Создается новое поколение (t увеличивается на 1) в соответствии с некоторым фиксированным правилом (обычно математической функцией), которое определяет новое состояние каждой ячейки на основе текущего состояния ячейки и состояний ячеек в её окрестности. Как правило, правило обновления состояния ячеек одинаково для каждой ячейки и не меняется со временем, и применяется ко всей сетке одновременно, хотя известны исключения, такие как стохастический клеточный автомат и асинхронный клеточный автомат. Концепция была первоначально открыта в 1940-х годах Станиславом Уламом и Джоном фон Нейманом, когда они работали вместе в Лос-Аламосской национальной лаборатории. Хотя некоторые исследователи изучали её в 1950-х и 1960-х годах, интерес к этой теме значительно расширился за пределы академических кругов только в 1970-х годах с появлением игры «Жизнь» Конвея, двухмерного клеточного автомата. В 1980-х годах Стивен Вольфрам провел систематическое исследование одномерных клеточных автоматов, или, как он их называет, элементарных клеточных автоматов; его ассистент Мэтью Кук показал, что одно из этих правил является Тьюринг-полным. Основные классификации клеточных автоматов, предложенные Вольфрамом, пронумерованы от одного до четырех. Они, в порядке возрастания, представляют собой автоматы, в которых шаблоны обычно стабилизируются в однородность, автоматы, в которых шаблоны эволюционируют в основном в стабильные или колеблющиеся структуры, автоматы, в которых шаблоны эволюционируют, казалось бы, хаотично, и автоматы, в которых шаблоны становятся чрезвычайно сложными и могут сохраняться в течение длительного времени, со стабильными локальными структурами. Считается, что последний класс является вычислительно универсальным, то есть способен имитировать машину Тьюринга. Особые типы клеточных автоматов — обратимые, где только одна конфигурация непосредственно приводит к следующей, и тоталистические, в которых будущее значение отдельной ячейки зависит только от суммарного значения группы соседних ячеек. Клеточные автоматы могут моделировать различные системы реального мира, включая биологические и химические.

Обзор

Один из способов моделирования двухмерного клеточного автомата – бесконечный лист графической бумаги вместе с набором правил, которым должны следовать клетки. Каждый квадрат называется «клеткой», и каждая клетка имеет два возможных состояния: чёрный и белый. Окрестность клетки – это соседние, обычно смежные, клетки. Два наиболее распространённых типа окрестностей – окрестность фон Неймана и окрестность Мура. Первая, названная в честь основателя теории клеточных автоматов, состоит из четырёх ортогонально смежных клеток. Таким образом, в двухмерной системе с окрестностью Мура общее количество возможных автоматов будет 2<sup>29</sup>, или 1,34 x 10<sup>8</sup>. Обычно предполагается, что каждая клетка во Вселенной начинается в одном и том же состоянии, за исключением конечного числа клеток в других состояниях; назначение значений состояния называется конфигурацией. В более общем смысле, иногда предполагается, что Вселенная начинается с периодического рисунка, и только конечное число клеток нарушает этот рисунок. Последнее предположение распространено в одномерных клеточных автоматах. Клеточные автоматы часто моделируются на конечной сетке, а не на бесконечной. В двух измерениях Вселенная будет представлять собой прямоугольник, а не бесконечную плоскость. Очевидная проблема с конечными сетками – как обрабатывать клетки на краях. Способ обработки клеток на краях повлияет на значения всех клеток в сетке. Один из возможных методов – позволить значениям в этих клетках оставаться постоянными. Другой метод – определить окрестности по-разному для этих клеток. Можно сказать, что у них меньше соседей, но тогда потребуется определить новые правила для клеток, расположенных на краях. Эти клетки обычно обрабатываются с использованием периодических граничных условий, что приводит к тороидальной организации: когда клетка выходит за верхний край, она появляется в соответствующей позиции внизу, а когда выходит за левый край, она появляется справа. (Это по сути имитирует бесконечную периодическую плитку, и в области дифференциальных уравнений в частных производных иногда называется периодическими граничными условиями.) Это можно представить как склеивание левого и правого краёв прямоугольника для образования трубки, а затем склеивание верхнего и нижнего краёв трубки для образования тора (формы пончика). Вселенные других измерений обрабатываются аналогично. Это решает проблемы границ с окрестностями, но ещё одно преимущество заключается в том, что это легко программируется с использованием функций модульной арифметики. Например, в одномерном клеточном автомате, как в примерах ниже, окрестность клетки x<sub>i</sub><sup>t</sup> – это {x<sub>i-1</sub><sup>t-1</sup>, x<sub>i</sub><sup>t-1</sup>, x<sub>i+1</sub><sup>t-1</sup>}, где t – шаг времени (вертикальный), а i – индекс (горизонтальный) в одном поколении.

История

Станислав Улам, работая в Национальной лаборатории Лос-Аламоса в 1940-х годах, изучал рост кристаллов, используя в качестве модели простую решётчатую сеть. В то же время Джон фон Нейман, коллега Улама в Лос-Аламосе, работал над проблемой самовоспроизводящихся систем. Первоначальный проект фон Неймана основывался на идее робота, создающего другого робота. Эта конструкция известна как кинематическая модель. В процессе разработки этого проекта фон Нейман осознал значительную сложность создания самовоспроизводящегося робота и высокую стоимость обеспечения робота "запасом деталей", из которых он мог бы построить свою копию. Фон Нейман опубликовал статью под названием "Общая и логическая теория автоматов" для Симпозиума Хиксона в 1948 году. Нильс Алл Барричелли выполнил многие из первых исследований этих моделей искусственной жизни. Улам и фон Нейман разработали метод расчета движения жидкости в конце 1950-х годов. Основная концепция метода заключалась в рассмотрении жидкости как группы дискретных элементов и вычислении движения каждого из них на основе поведения его соседей. Так возникла первая система клеточных автоматов. Как и решётчатая сеть Улама, клеточные автоматы фон Неймана двумерны, а его саморепликатор реализован алгоритмически. Результатом стал универсальный копировальщик и конструктор, работающий в клеточном автомате с небольшим радиусом действия (соседями считаются только непосредственно прилегающие клетки; для клеточных автоматов фон Неймана – только ортогональные клетки) и с 29 состояниями на клетку. Фон Нейман доказал существование конфигурации, способной создавать бесконечное количество своих копий в заданной клеточной вселенной, спроектировав конфигурацию из 200 000 клеток. Также в 1940-х годах Норберт Винер и Артуро Розенблют разработали модель возбудимых сред, обладающих некоторыми характеристиками клеточного автомата. Их основной целью было математическое описание проведения импульсов в сердечных системах. Однако их модель не является клеточным автоматом, поскольку среда, в которой распространяются сигналы, непрерывна, а фронты волн – кривые. Истинная модель клеточного автомата возбудимых сред была разработана и изучена Дж. М. Гринбергом и С. П. Гастингсом в 1978 году; см. клеточный автомат Гринберга-Гастингса. Оригинальная работа Винера и Розенблюта содержит множество ценных идей и продолжает цитироваться в современных исследовательских публикациях по сердечной аритмии и возбудимым системам. В 1960-х годах клеточные автоматы изучались как особый тип динамической системы, и впервые была установлена связь с математической областью символической динамики. В 1969 году Густав А. Хедлунд собрал множество результатов, основанных на этой точке зрения, в статье, которая до сих пор считается основополагающей для математического изучения клеточных автоматов. Наиболее фундаментальным результатом является характеризация в теореме Кертиса — Хедлунда — Линдона множества глобальных правил клеточных автоматов как множества непрерывных эндоморфизмов пространств сдвига. В 1969 году немецкий пионер в области вычислительной техники Конрад Цузе опубликовал свою книгу "Вычислительное пространство", в которой предположил, что физические законы Вселенной дискретны по своей природе и что вся Вселенная является результатом детерминированного вычисления на одном клеточном автомате; "Теория Цузе" стала основой области исследований, называемой цифровой физикой. Также в 1969 году ученый-компьютерщик Элви Рэй Смит завершил докторскую диссертацию в Стэнфордском университете на тему "Теория клеточных автоматов", представляющую собой первое математическое рассмотрение CA как общего класса компьютеров. Из этой диссертации вышло множество работ: он показал эквивалентность соседств различных форм, способы сведения соседства Мура к соседству фон Неймана или сведения любого соседства к соседству фон Неймана. Он доказал, что двумерные CA являются универсальными вычислительными устройствами, представил одномерные CA и показал, что они также являются универсальными вычислительными устройствами, даже с простыми соседствами. Он показал, как включить сложное доказательство фон Неймана универсальности конструкции (и, следовательно, самовоспроизводящихся машин) в следствие универсальности вычислений в одномерном CA. Написанная в качестве введения к немецкому изданию книги фон Неймана о CA, он подготовил обзор области, содержащий десятки ссылок на работы многих авторов из разных стран за десятилетие исследований, часто упускаемые из виду современными исследователями CA. В 1970-х годах двумерный клеточный автомат с двумя состояниями, названный "Игра Жизни", получил широкую известность, особенно в раннем вычислительном сообществе. Изобретенная Джоном Конвеем и популяризированная Мартином Гарднером в статье в журнале Scientific American, её правила следующие:
Любая живая клетка с менее чем двумя живыми соседями умирает, как будто от недостатка популяции. Любая живая клетка с двумя или тремя живыми соседями продолжает жить в следующем поколении. Любая живая клетка с более чем тремя живыми соседями умирает, как будто от перенаселения. Любая мертвая клетка с ровно тремя живыми соседями становится живой клеткой, как будто от размножения. Несмотря на свою простоту, система демонстрирует впечатнительное разнообразие поведения, колеблющееся между кажущейся случайностью и порядком. Одной из наиболее заметных особенностей "Игры Жизни" является частое появление планеров – конфигураций клеток, которые фактически перемещают себя по сетке. Можно организовать автомат таким образом, чтобы планеры взаимодействовали и выполняли вычисления, и после значительных усилий было показано, что "Игра Жизни" может эмулировать универсальную машину Тьюринга. Она рассматривалась как в основном развлекательная тема, и мало работы было выполнено за пределами изучения особенностей "Игры Жизни" и нескольких связанных с ней правил в начале 1970-х годов. Стивен Вольфрам независимо начал работать над клеточными автоматами в середине 1981 года, размышляя о том, как сложные закономерности, по-видимому, формируются в природе в нарушение Второго закона термодинамики. Неожиданная сложность поведения этих простых правил заставила Вольфрама предположить, что сложность в природе может быть обусловлена аналогичными механизмами, и предположил, что правило 110 может быть универсальным, что позже было доказано помощником Вольфрама Мэтью Куком в 1990-х годах.

Классификация

В своей книге «Новая наука» и ряде работ, датируемых серединой 1980-х годов, Вольфрам определил четыре класса, на которые можно разделить клеточные автоматы и несколько других простых вычислительных моделей в зависимости от их поведения. В то время как более ранние исследования клеточных автоматов, как правило, стремились выявить типы паттернов для конкретных правил, классификация Вольфрама стала первой попыткой классифицировать сами правила. В порядке возрастания сложности классы следующие:
Класс 1: Почти все начальные паттерны быстро эволюционируют в стабильное, однородное состояние. Любая случайность в начальном паттерне исчезает. Класс 2: Почти все начальные паттерны быстро эволюционируют в стабильные или колеблющиеся структуры. Часть случайности в начальном паттерне может отфильтровываться, но часть сохраняется. Локальные изменения в начальном паттерне, как правило, остаются локальными. Стабильные или колеблющиеся структуры типа класса 2 могут быть конечным результатом, но число шагов, необходимых для достижения этого состояния, может быть очень большим, даже если начальный паттерн относительно прост. Локальные изменения в начальном паттерне могут распространяться неограниченно. Вольфрам предположил, что многие клеточные автоматы класса 4, если не все, способны к универсальным вычислениям. Это было доказано для правила 110 и игры «Жизнь» Конвея. Эти определения носят качественный характер и допускают некоторую интерпретацию. По словам Вольфрама, «при почти любой общей схеме классификации неизбежно возникают случаи, которые относят к одному классу по одному определению, а к другому классу – по другому. И то же самое справедливо для клеточных автоматов: иногда встречаются правила, демонстрирующие некоторые признаки одного класса и некоторые признаки другого». Классификация Вольфрама эмпирически сопоставлена с кластеризацией сжатых длин выходных данных клеточных автоматов. Было предпринято несколько попыток классифицировать клеточные автоматы в формально строгие классы, вдохновленные классификацией Вольфрама. Например, Кулик и Ю предложили три четко определенных класса (и четвертый для автоматов, не соответствующих ни одному из них), которые иногда называют классами Кулика — Ю; принадлежность к этим классам оказалась неразрешимой задачей. Класс 2 Вольфрама можно разделить на две подгруппы: стабильных (фиксированных точек) и колеблющихся (периодических) правил. Идея о том, что существует 4 класса динамических систем, изначально возникла у химика Ильи Пригожина, лауреата Нобелевской премии, который выделил эти 4 класса термодинамических систем: (1) системы в термодинамическом равновесии, (2) пространственно-временные однородные системы, (3) хаотические системы и (4) сложные системы, далекие от равновесия, с диссипативными структурами (см. рисунок 1 в статье 1974 года Николиса, ученика Пригожина).

Возвратимый

Клеточный автомат обратим, если для каждой текущей конфигурации клеточного автомата существует ровно одна конфигурация прошлого (прообраз). Если рассматривать клеточный автомат как функцию, отображающую конфигурации в конфигурации, то обратимость подразумевает, что эта функция является биекцией. Для клеточных автоматов, в которых не каждая конфигурация имеет прообраз, конфигурации без прообразов называются узорами Эдемского сада. Для одномерных клеточных автоматов существуют известные алгоритмы для определения, является ли правило обратимым или необратимым. Однако для клеточных автоматов двух и более измерений обратимость неразрешима; то есть, не существует алгоритма, который принимает на вход правило автомата и гарантированно правильно определяет, является ли автомат обратимым. Доказательство Яркко Кари связано с задачей о покрытии плитками Ванга. Обратимые клеточные автоматы часто используются для моделирования таких физических явлений, как динамика газов и жидкостей, поскольку они подчиняются законам термодинамики. Правила таких клеточных автоматов специально конструируются таким образом, чтобы обеспечивать обратимость. Такие системы изучались Томасо Тоффоли, Норманом Марголусом и другими исследователями. Для явного построения обратимых клеточных автоматов с известными обратными можно использовать несколько методов. Два распространенных метода – клеточный автомат второго порядка и блочный клеточный автомат, оба из которых подразумевают модификацию определения клеточного автомата. Хотя такие автоматы не строго соответствуют приведенному выше определению, можно показать, что они могут быть эмулированы обычными клеточными автоматами с достаточно большими окрестностями и количеством состояний, и поэтому могут рассматриваться как подмножество обычных клеточных автоматов. И наоборот, было показано, что любой обратимый клеточный автомат может быть эмулирован блочным клеточным автоматом.

Тоталистический

Особый класс клеточных автоматов — тоталистические клеточные автоматы. Состояние каждой клетки в тоталистическом клеточном автомате представляется числом (обычно целым числом из конечного множества), и значение клетки в момент времени t зависит только от суммы значений клеток в её окрестности (возможно, включая саму клетку) в момент времени t − 1. Если состояние клетки в момент времени t зависит как от её собственного состояния, так и от суммы значений её соседей в момент времени t − 1, то клеточный автомат корректно называется внешним тоталистическим.

Связанные автоматы

Существует множество возможных обобщений концепции клеточного автомата. Один из способов — использовать нечто иное, чем прямоугольная (кубическая и т. д.) сетка. Например, если плоскость покрыта правильными шестиугольниками, эти шестиугольники можно использовать в качестве ячеек. Во многих случаях полученные клеточные автоматы эквивалентны тем, которые имеют прямоугольные сетки со специально разработанными окрестностями и правилами. Другой вариант — сделать саму сетку нерегулярной, например, с использованием плиток Пенроуза. Кроме того, правила могут быть вероятностными, а не детерминированными. Такие клеточные автоматы называются вероятностными клеточными автоматами. Вероятностное правило задает, для каждого шаблона в момент времени t, вероятности перехода центральной ячейки в каждое возможное состояние в момент времени t + 1. Иногда используется более простое правило; например: «Правило — Игра Жизни, но на каждом шаге времени существует вероятность 0,001%, что каждая ячейка перейдет в противоположный цвет». Окрестность или правила могут меняться со временем или в пространстве. Например, первоначально новое состояние ячейки может определяться горизонтально соседними ячейками, но для следующего поколения будут использоваться вертикальные ячейки. В клеточных автоматах новое состояние ячейки не зависит от нового состояния других ячеек. Это можно изменить так, чтобы, например, блок ячеек 2x2 определялся самим собой и соседними с ним ячейками. Существуют также непрерывные автоматы. Они похожи на тоталистические клеточные автоматы, но вместо дискретных правил и состояний (например, таблицы, использующей состояния {0, 1, 2}), используются непрерывные функции, а состояния становятся непрерывными (обычно значения в [0, 1]). Состояние местоположения представляется конечным числом действительных чисел. Определенные клеточные автоматы могут таким образом моделировать диффузию в жидких структурах. Непрерывные пространственные автоматы имеют континуум местоположений. Состояние местоположения представляется конечным числом действительных чисел. Время также непрерывно, и состояние эволюционирует в соответствии с дифференциальными уравнениями. Важным примером являются реакционно-диффузионные текстуры — дифференциальные уравнения, предложенные Аланом Тьюрингом для объяснения того, как химические реакции могут создавать полосы на зебрах и пятна на леопардах. При аппроксимации этими уравнениями клеточных автоматов часто получаются схожие структуры. МакЛеннан рассматривает непрерывные пространственные автоматы как модель вычислений. Известны примеры непрерывных пространственных автоматов, демонстрирующих распространяющиеся явления, аналогичные планерам в Игре Жизни. Автоматы переписывания графов являются расширениями клеточных автоматов, основанными на системах переписывания графов.

Элементарные клеточные автоматы

Самый простой нетривиальный клеточный автомат был бы одномерным, с двумя возможными состояниями для каждой клетки, а соседями клетки считаются непосредственно прилегающие клетки с обеих сторон. Клетка и её два соседа образуют окрестность из 3 клеток, поэтому существует 2³ = 8 возможных конфигураций окрестности. Правило заключается в определении, будет ли клетка содержать 1 или 0 в следующем поколении, для каждой конфигурации. Таким образом, существует 2⁸ = 256 возможных правил. В 2004 году доказательство Кука было наконец опубликовано в журнале Complex Systems издательства Wolfram (Vol. 15, No. 1), более чем через десять лет после того, как Кук его сформулировал. Правило 110 послужило основой для некоторых из самых компактных универсальных машин Тьюринга.

Пространство правил

Элементарное правило клеточного автомата задается 8 битами, и все элементарные правила клеточного автомата можно рассматривать как расположенные в вершинах 8-мерного гиперкуба. Этот гиперкуб и является пространством правил клеточного автомата. Для клеточных автоматов со следующими ближайшими соседями правило задается 25 = 32 битами, а пространство правил клеточного автомата – 32-мерным гиперкубом. Расстояние между двумя правилами можно определить как число шагов, необходимых для перехода от одной вершины, представляющей первое правило, к другой вершине, представляющей другое правило, по ребру гиперкуба. Это расстояние между правилами также называется расстоянием Хэмминга. Пространство правил клеточного автомата позволяет задаться вопросом, находятся ли правила с похожим динамическим поведением "близко" друг к другу. Графическое представление высокомерного гиперкуба на двумерной плоскости остается сложной задачей, и одним из способов приблизительного определения положения правила в гиперкубе является количество единичных битов в 8-битной строке для элементарных правил (или в 32-битной строке для правил с учетом следующих ближайших соседей). Изображение правил, относящихся к различным классам Вольфрама, на этих срезах пространства правил показывает, что правила класса 1, как правило, имеют меньшее количество единичных битов и, следовательно, расположены в одной области пространства, в то время как правила класса 3, как правило, имеют более высокую долю (50%) единичных битов. Это наблюдение является основой для выражения «край хаоса» и напоминает фазовый переход в термодинамике.

Биология

[[Файл:Текстильный конус. JPG|мини|слева|Конус текстильный демонстрирует рисунок, напоминающий клеточный автомат, на своей раковине. Полоса клеток оставляет цветной узор на раковине по мере её медленного роста. Например, широко распространенный вид *Conus textile* имеет узор, напоминающий клеточный автомат по правилу 30 Вольфрама. Движущиеся волновые узоры на коже головоногих моллюсков можно смоделировать с помощью двухсостоятельного двумерного клеточного автомата, где каждое состояние соответствует расширенному или сокращенному хроматофору. Пороговые автоматы были разработаны для моделирования нейронов, и с их помощью можно моделировать сложные поведения, такие как распознавание и обучение. Фибробласты обладают сходством с клеточными автоматами, поскольку каждый фибробласт взаимодействует только со своими ближайшими соседями. Кроме того, биологические явления, требующие явного моделирования скоростей агентов (например, связанные с коллективной миграцией клеток), могут быть смоделированы клеточными автоматами с более сложным пространством состояний и правилами, такими как биологические решетчатые газовые клеточные автоматы. К ним относятся явления, имеющие большое медицинское значение, такие как:

Характеристика различных механизмов метастатического вторжения. Роль гетерогенности в развитии агрессивных карцином. Фенотипическое переключение во время пролиферации опухоли.

Химия

Реакция Белоусова–Жаботинского – это пространственно-временной химический осциллятор, который можно смоделировать с помощью клеточного автомата. В 1950-х годах А. М. Жаботинский (развивая работы Б. П. Белоусова) обнаружил, что при смешивании тонкого однородного слоя смеси малоновой кислоты, подкисленного бромата и соли церия и оставлении его в покое, по среде распространяются завораживающие геометрические узоры, такие как концентрические круги и спирали. В разделе «Компьютерные зарисовки» августовского выпуска журнала Scientific American за 1988 год А. К. Дьюдни описал клеточный автомат, разработанный Мартином Герхардтом и Хайке Шустер из Университета Билефельда (Германия). Этот автомат генерирует волновые паттерны, напоминающие те, что наблюдаются в реакции Белоусова–Жаботинского.

Физика

Визуализация клеточного газового автомата. Оттенки серого отдельных пикселей пропорциональны плотности частиц газа (от 0 до 4) в данном пикселе. Газ окружен оболочкой из желтых ячеек, которые действуют как отражатели, создавая замкнутое пространство. Вероятностные клеточные автоматы используются в статистической физике и физике конденсированного состояния для изучения явлений, таких как гидродинамика и фазовые переходы. Модель Изинга является прототипическим примером, в котором каждая ячейка может находиться в одном из двух состояний, называемых "вверх" и "вниз", представляя собой идеализированную модель магнита. Путем настройки параметров модели можно изменять долю ячеек, находящихся в одном и том же состоянии, что помогает понять, как ферромагнетики теряют намагниченность при нагревании. Более того, результаты изучения фазового перехода демагнетизации могут быть применены к другим фазовым переходам, например, к испарению жидкости в газ; эта удобная универсальность известна как универсальность. Фазовый переход в двухмерной модели Изинга и других системах, принадлежащих к ее классу универсальности, представляет особый интерес, поскольку для его глубокого понимания требуется конформная теория поля. Другие клеточные автоматы, имеющие значение для физики, включают решетчатые газовые автоматы, которые моделируют потоки жидкости.