Введение

Блочный клеточный автомат, или клеточный автомат с разделением на блоки, – это особый тип клеточного автомата, в котором решетка ячеек разделена на неперекрывающиеся блоки (с различными разбиениями на разных временных шагах), а правило перехода применяется сразу ко всему блоку, а не к отдельной ячейке. Блочные клеточные автоматы полезны для моделирования физических величин, поскольку легко выбирать правила перехода, удовлетворяющие физическим ограничениям, таким как обратимость и законы сохранения.

Районы

Самая простая схема разбиения, вероятно, — окрестность Марголуса, названная в честь Нормана Марголуса, который впервые исследовал блочные клеточные автоматы, используя эту структуру окрестности. В окрестности Марголуса решетка разделяется на блоки из 2 ячеек (или квадраты 2 × 2 в двух измерениях, или кубы 2 × 2 × 2 в трех измерениях и т. д.), которые сдвигаются на одну ячейку (вдоль каждого измерения) через один временной шаг. Тесно связанная техника, предложенная К. Моритой и М. Харао, заключается в разделении каждой ячейки на конечное число частей, каждая из которых соответствует определенному соседу. Эволюция происходит путем обмена соответствующими частями между соседями, а затем применения к каждой ячейке чисто локального преобразования, зависящего только от состояния самой ячейки (а не от состояний ее соседей). При такой схеме построения клеточный автомат гарантированно будет обратимым, если локальное преобразование само по себе является биекцией. Этот метод можно рассматривать как блочный клеточный автомат на более мелкой решетке ячеек, образованной частями каждой большей ячейки; блоки этой более мелкой решетки чередуются между наборами частей внутри одной большой ячейки и наборами частей в соседних ячейках, которые имеют общие части.

Возвратность и сохранение

Пока правило эволюции каждого блока обратимо, обратимым будет и весь автомат. Более строго, в этом случае поведение автомата, обращенное во времени, также можно описать как блочный клеточный автомат, с той же блочной структурой и с правилом перехода, которое инвертирует исходное правило автомата внутри каждого блока. Обратное также верно: если блоки сами по себе не являются обратимыми, глобальная эволюция не может быть обратимой: если две различные конфигурации x и y блока приводят к одному и тому же конечному состоянию z, то глобальная конфигурация с x в одном блоке будет неотличима после одного шага от конфигурации, в которой x заменено на y. То есть, клеточный автомат глобально обратим тогда и только тогда, когда он обратим на уровне блоков. Любой обратимый клеточный автомат может быть смоделирован обратимым блочным клеточным автоматом с большим числом состояний; однако, из-за неразрешимости задачи определения обратимости для неблочных клеточных автоматов, не существует вычислимой границы радиуса областей в неблочном автомате, соответствующих блокам в моделировании, и перевод из неблочного правила в блочное правило также не является вычислимым. Блочные клеточные автоматы также представляют собой удобный формализм для разработки правил, которые, помимо обратимости, реализуют законы сохранения, такие как сохранение числа частиц, сохранение импульса и т.д. Например, если правило внутри каждого блока сохраняет число живых клеток в блоке, то глобальная эволюция автомата также будет сохранять это же число. Это свойство полезно при применении клеточных автоматов к физическому моделированию.

Трон

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