Обратимый клеточный автомат
—
клеточный автомат
, в котором каждое состояние имеет единственного предшественника. Таким образом, это регулярная решётка из ячеек, состояние каждой из которых берётся из конечного множества состояний, и правило для одновременного обновления состояний ячеек, исходя из состояний её соседей. Условие обратимости заключается в том, что предыдущее состояние любой ячейки может быть определено, зная обновлённые состояния всех ячеек решётки. После обращения времени получается другой обратимый клеточный автомат, возможно — с намного большими окрестностями, но также с правилом для определения будущего состояния ячейки, исходя из текущих состояний ей соседей.
Известно несколько методов задания обратимых клеточных автоматов, включая
блочные клеточные автоматы
, у которых каждый блок обновляется независимо от остальных, и
, в которых правило обновления ячеек определяется двумя предыдущими состояниями автомата. При этом, если автомат задан при помощи таблицы правил, задача проверки его обратимости разрешима для одномерного клеточного автомата, но
неразрешима
в общем случае.
Обратимые клеточные автоматы задают естественную модель
обратимых вычислений
— технологии, которая позволяет создать вычислительные устройства с очень низким потреблением электроэнергии.
, которые позволяют производить вычисления с использованием принципов
квантовой механики
, часто предполагаются обратимыми. Кроме того, многие модели из физики, такие как движение молекул
идеального газа
или
модель Изинга
размещения магнитных зарядов, естественным образом обратимы и моделируются обратимым клеточными автоматами.
Свойства, присущие обратимым клеточным автоматам, могут быть использованы для изучения автоматов, которые необратимы, но имеют
аттрактор
— подмножество состояний, к которому сходятся случайные начальные состояния. Как пишет
Стивен Вольфрам
, «при приближении к аттрактору любая система, даже необратимая, проявляет некоторые свойства, близкие к обратимости»
.
Содержание
Примеры
Элементарные клеточные автоматы
Простейшие клеточные автоматы имеют одномерный массив ячеек, каждая из которых содержит 0 или 1, при том что окрестность ячейки состоит из неё самой и по одному соседу с каждой стороны; такие клеточные автоматы называются
элементарными
. Если функция перехода никогда не меняет состояние ячейки, всегда заменяет его на противоположное, заменяет его на состояние соседа (всегда одного и того же — слева или справа) или применяет комбинацию из последних двух операций, то такой элементарный клеточный автомат обратим. Несмотря на свою простоту, функция перехода, присваивающая каждой ячейке значение её соседа, играет важную роль в
символической динамике
, где она известна как
оператор сдвига
.
Элементарные клеточные автоматы необратимы, не считая упомянутых выше тривиальных случаев, в которых каждая ячейка определяется состоянием только одного из своих соседей. Однако близко к обратимым
правило 90
, в котором будущее состояние каждой ячейки является
суммой по модулю 2
(также известным как исключающее «ИЛИ»,
англ.
XOR
) текущих состояний её двух соседей. Хотя правило 90 необратимо, каждая его конфигурация имеет ровно четыре предшественника, а также правило 90
локально обратимо
, то есть любая последовательность подряд идущих состояний имеет хотя бы одного предшественника
.
Другие одномерные примеры
Немного более сложный пример получается так: пусть состояние каждой ячейки является
упорядоченной парой
(
l
,
r
), а функция перехода берёт левую часть нового состояния у соседа слева, а правую — справа. При этом мы предполагаем, что левая и правая части берутся из двух различных конечных множеств возможных значений. Пример изображён
в начале статьи: левая часть состояния — это форма фигуры, а правая — это её цвет. Такой автомат обратим, поскольку можно взять левую часть предыдущего состояния у ячейки справа, а правую — слева.
Другой пример обратимого одномерного клеточного автомата производит умножение на 2 или 5 в
десятичной записи
. Каждая цифра при таком умножении зависит только от двух предыдущих разрядов, а потому окрестность, определяющая следующее значение, конечна, что и необходимо для клеточного автомата. Вообще говоря, умножение или деление числа в
позиционной записи
на натуральное число n задаётся клеточным автоматом тогда и только тогда, когда все
простые множители
числа n входят в основание системы счисления. Такой автомат одномерен и обратим, поскольку можно поделить или умножить соответственно на то же число. И, например, умножение на 3 в десятичной записи не задаётся клеточным автоматом, поскольку может произвойти
перенос
через сколь угодно большое число разрядов: при умножении 333334*3=1000002 происходит перенос через 5 разрядов
.
Игра «Жизнь»
, один из наиболее известных клеточных автоматов, не является обратимым: например, многие конфигурации вымирают. Также в нём существуют
Сады Эдема
— конфигурации без предшественников. Взамен
и
изобрели
«Криттеров»
— обратимый клеточный автомат с динамическим поведением, во многом схожим с «Жизнью»
.
«Криттеры» —
блочный клеточный автомат
, в котором ячейки разделены на блоки 2 × 2, обновляющиеся отдельно от остальных. При этом после каждого шага разделение на блоки меняется: они сдвигаются на одну ячейку по горизонтали и вертикали. Функция перехода «Криттеров» меняет состояние каждой ячейки на противоположное, если число живых ячеек в блоке не равняется двум, и вращает на 180° блок целиком, если это число равняется трём. Поскольку число живых ячеек меняется на число мёртвых, а функции перехода при каждом значении числа ячеек обратимы, такой клеточный автомат обратим на каждом блоке, а потому обратим в целом
.
Если начать с небольшого количества случайных ячеек внутри бо́льшего региона мёртвых ячеек, то из центрального региона распространится много маленьких шаблонов, подобных
планеру
из игры «Жизнь», которые будут сложным образом взаимодействововать. При этом «Криттеры» допускают сложные
космические корабли
и осцилляторы с бесконечным числом различных периодов
.
Конструкции
Известно несколько общих методов построения обратимых клеточных автоматов.
Блочный клеточный автомат
— клеточный автомат, ячейки которого поделены на равные блоки, а функция перехода применяется к каждому блоку по отдельности. Обычно такой автомат по очереди использует несколько разбиений на блоки
. Типичным примером такой схемы является
окрестность Марголуса
, в которой ячейки
квадратной решётки
поделены на блоки 2 × 2 вертикальными и горизонтальными прямыми, а после каждого шага разделение на блоки сдвигается на одну ячейку по горизонтали и вертикали; таким образом, все четыре ячейки любого блока оказываются в разных блоках на следующем шаге
. «Криттеры»,
, используют окрестность Марголуса.
Чтобы блочный клеточный автомат был обратимым, необходимо и достаточно обратимости функции перехода на каждом блоке, что делает возможной проверку обратимости блочного клеточного автомата при помощи
полного перебора
. При этом обратный клеточный автомат тоже является блочным с такой же структурой разбиений на блоки, но
обратной
функцией перехода
.
Моделирование необратимых автоматов
Любой
-мерный клеточный автомат можно вложить в
-мерный обратимый: при этом каждое состояние нового автомата хранит всю историю эволюции старого. Используя это вложение, Тоффоли показал, что многие свойства необратимых клеточных автоматов переносятся на обратимые, например, они могут быть
полны по Тьюрингу
.
Увеличение размерности в такой конструкции не случайно: при некоторых слабых ограничениях (вроде инвариантности вложения относительно
параллельных переносов
) доказано, что любое вложение клеточного автомата с «
Садом Эдема
», то есть конфигурацией без предшественников, в обратимый клеточный автомат должно увеличивать размерность
.
Однако, при наличии
состояний покоя
(
англ.
quiescent states
), то есть состояний, которые не меняются при условии, что соседние состояния также не меняются
[
как?
]
, возможно моделирование конечной конфигурации клеточного автомата в
обратимом клеточном автомате той же размерности
. Информация, которая должна была бы быть потеряна на следующем шаге, взамен хранится в бесконечном регионе из клеток, находящихся в состоянии покоя. При этом время, необходимое для моделирования части конфигурации, пропорционально её размеру. Тем не менее, такая конструкция позволяет доказать существование обратимого одномерного клеточного автомата, полного по Тьюрингу
.
↑
, Section 14.5, «Partitioning technique», pp. 150—153;
, Section 4.2.1, «Partitioning Cellular Automata», pp. 115—116.
, Chapter 12, «The Margolus Neighborhood», pp. 119—138.
.
Литература
Amoroso, S.; Patt, Y. N. (1972), "Decision procedures for surjectivity and injectivity of parallel maps for tessellation structures",
,
6
: 448—464,
doi
:
,
MR
.
Béal, Marie-Pierre; Carton, Olivier; Prieur, Christophe; Sakarovitch, Jacques (2003), "Squaring transducers: an efficient procedure for deciding functionality and sequentiality",
,
292
(1): 45—63,
doi
:
,
MR
.
Blanchard, Paul;
;
(2004), "Complex dynamics and symbolic dynamics", in Williams, Susan G. (ed.),
Symbolic Dynamics and its Applications
, Proceedings of Symposia in Applied Mathematics, vol. 60, Providence, RI: American Mathematical Society, pp. 37—60,
doi
:
,
MR
.
Boykett, Tim (2004), "Efficient exhaustive listings of reversible one dimensional cellular automata",
,
325
(2): 215—247,
doi
:
,
MR
.
Boykett, Tim;
Kari, Jarkko
; Taati, Siamak (2008),
(PDF)
,
Journal of Cellular Automata
,
3
(2): 115—122,
MR
, Дата обращения:
1 октября 2017
от 30 сентября 2015 на
Wayback Machine
.
Capobianco, Silvio;
(2011), "Can anything from Noether's theorem be salvaged for discrete dynamical systems?",
Proceedings of the 10th International Conference on Unconventional Computation (UC 2011)
,
, vol. 6714, Springer-Verlag, pp. 77—88,
arXiv
:
,
doi
:
.
Chai, Zhenchuan; Cao, Zhenfu; Zhou, Yuan (2005), "Encryption based on reversible second-order cellular automata",
Parallel and Distributed Processing and Applications (ISPA 2005 Workshops)
,
, vol. 3759, Springer-Verlag, pp. 350—358,
doi
:
.
Czeizler, Eugen (2004), "On the size of the inverse neighborhoods for one-dimensional reversible cellular automata",
,
325
(2): 273—284,
doi
:
,
MR
.
Czeizler, Eugen;
Kari, Jarkko
(2007), "A tight linear bound on the synchronization delay of bijective automata",
,
380
(1—2): 23—36,
doi
:
,
MR
.
Di Gregorio, S.; Trautteur, G. (1975), "On reversibility in cellular automata",
,
11
(3): 382—391,
doi
:
,
MR
.
Durand-Lose, Jérôme (2001), "Representing reversible cellular automata with reversible block cellular automata",
Discrete models: combinatorics, computation, and geometry (Paris, 2001)
, Discrete Math. Theor. Comput. Sci. Proc., AA, Maison Inform. Math. Discrèt. (MIMD), Paris, pp. 145—154,
MR
.
Durand-Lose, Jérôme (2002), "Computing inside the billiard ball model", in
(ed.),
Collision-Based Computing
, Springer-Verlag, pp. 135—160
.
(1982), "Simulating physics with computers",
,
21
(6—7): 467—488,
doi
:
,
MR
.
;
(1982), "Conservative logic",
,
21
(3—4): 219—253,
doi
:
,
MR
. Reprinted in
, ed. (2002),
Collision-Based Computing
, Springer-Verlag, pp. 47—82
.
Fukś, Henryk (2007), "Remarks on the critical behavior of second order additive invariants in elementary cellular automata",
,
78
(3): 329—341,
arXiv
:
,
MR
.
(1969), "Endomorphisms and automorphisms of the shift dynamical systems",
Mathematical Systems Theory
,
3
(4): 320—375,
doi
:
,
MR
.
Hertling, Peter (1998), "Embedding cellular automata into reversible ones",
Unconventional models of computation (Auckland, 1998)
, Springer Series in Discrete Mathematics and Theoretical Computer Science, Springer-Verlag, pp. 243—256,
MR
.
Hillman, David (1991), "The structure of reversible one-dimensional cellular automata",
,
52
(2—3): 277—292,
doi
:
,
MR
.
Janzing, Dominik (2010),
Is there a physically universal cellular automaton or Hamiltonian?
,
arXiv
:
.
Kari, Jarkko
(1990), "Reversibility of 2D cellular automata is undecidable", Cellular automata: theory and experiment (Los Alamos, NM, 1989),
,
45
(1—3): 379—385,
doi
:
,
MR
.
Kari, Jarkko
(1992), "On the inverse neighborhoods of reversible cellular automata",
Lindenmayer Systems: Impacts on Theoretical Computer Science, Computer Graphics, and Developmental Biology
, Springer-Verlag, pp. 477—495,
MR
.
Kari, Jarkko
(1996), "Representation of reversible cellular automata with block permutations",
Mathematical Systems Theory
,
29
(1): 47—61,
doi
:
,
MR
.
Kari, Jarkko
(2009), "Structure of reversible cellular automata",
Unconventional Computation: 8th International Conference, UC 2009, Ponta Delgada, Portugal, September 7–11, 2009, Proceedings
,
, vol. 5715, Springer-Verlag, p. 6,
doi
:
,
MR
.
(1984), "Physics-like models of computation",
,
10
: 81—95,
doi
:
,
MR
. Reprinted in
Wolfram, Stephen
(1986),
Theory and Applications of Cellular Automata
, Advanced series on complex systems, vol. 1, World Scientific, pp. 232—246
, and in
, ed. (2002),
Collision-Based Computing
, Springer-Verlag, pp. 83—104
.
(1999), "Crystalline computation", in Hey, Anthony J. G. (ed.),
Feynman and Computation
, Perseus Books, pp. 267—305,
arXiv
:
.
Marotta, Sebastian M. (2005),
,
Revista Ciências Exatas e Naturais
,
7
(1),
из оригинала
19 марта 2012
, Дата обращения:
1 октября 2017
от 19 марта 2012 на
Wayback Machine
.
McIntosh, Harold V. (2009), "12. Reversible cellular automata",
One Dimensional Cellular Automata
, Luniver Press, pp. 205—246
.
Meyer, David A. (1996), "From quantum cellular automata to quantum lattice gases",
,
85
(5—6): 551—574,
arXiv
:
,
doi
:
,
MR
.
Miller, Daniel B.;
(2005), "Two-state, reversible, universal cellular automata in three dimensions",
Proceedings of the 2nd Conference on Computing Frontiers (CF '05)
, New York, NY, USA: ACM, pp. 45—51,
arXiv
:
,
doi
:
,
ISBN
1-59593-019-1
.
Miller, Daniel B.;
(2012),
Circular motion of strings in cellular automata, and other surprises
,
arXiv
:
.
Moraal, Hendrik (2000), "Graph-theoretical characterization of invertible cellular automata",
,
141
(1—2): 1—18,
doi
:
,
MR
.
Morita, Kenichi (1995), "Reversible simulation of one-dimensional irreversible cellular automata",
,
148
(1): 157—163,
doi
:
,
MR
.
Nagaj, Daniel; Wocjan, Pawel (2008), "Hamiltonian quantum cellular automata in one dimension",
Physical Review A
,
78
: 032311,
arXiv
:
,
doi
:
.
Patt, Y. N. (1971),
Injections of neighborhood size three and four on the set of configurations from the infinite one-dimensional tessellation automata of two-state cells
, Technical Report ECON-N1-P-1, Ft. Monmouth, NJ 07703
. As cited by
and
.
Pomeau, Y. (1984), "Invariants in cellular automata",
,
17
(8): L415—L418,
doi
:
,
MR
.
Richardson, D. (1972), "Tessellations with local transformations",
,
6
: 373—388,
doi
:
,
MR
.
Schaeffer, Luke (2015), "A physically universal cellular automaton",
Proceedings of the 6th Innovations in Theoretical Computer Science Conference (ITCS 2015)
,
Association for Computing Machinery
, pp. 237—246,
doi
:
,
.
Schiff, Joel L. (2008),
Cellular Automata: A Discrete View of the World
, Wiley,
ISBN
978-0-470-16879-0
.
Schumacher, B.; Werner, R. F. (2004),
Reversible quantum cellular automata
,
arXiv
:
.
Seck Tuoh Mora, Juan Carlos; Chapa Vergara, Sergio V.; Juárez Martínez, Genaro; McIntosh, Harold V. (2005), "Procedures for calculating reversible one-dimensional cellular automata",
,
202
(1—2): 134—141,
doi
:
,
MR
.
Takesue, Shinji (1990), "Relaxation properties of elementary reversible cellular automata", Cellular automata: theory and experiment (Los Alamos, NM, 1989),
,
45
(1—3): 278—284,
doi
:
,
MR
.
(1977), "Computation and construction universality of reversible cellular automata",
,
15
(2): 213—231,
doi
:
,
MR
.
;
(1987),
Cellular Automata Machines: A New Environment for Modeling
, MIT Press,
ISBN
9780262200608
.
;
(1990), "Invertible cellular automata: a review",
,
45
(1—3): 229—253,
doi
:
,
MR
.
Vichniac, Gérard Y. (1984), "Simulating physics with cellular automata",
,
10
: 96—115,
doi
:
,
MR
.
(1995), "On one-dimensional quantum cellular automata",
Proceedings of the 36th
(Milwaukee, WI, 1995)
, Los Alamitos, CA: IEEE Computer Society Press, pp. 528—537,
doi
:
,
MR
.