Клеточный автомат в общем виде представляет собой упорядоченное множество
конечных автоматов
, обменивающихся информацией с соседними автоматами. В клеточном автомате фон Неймана ячейки упорядочены в виде двухмерной прямоугольной решетки и взаимодействуют с четырьмя непосредственно прилегающими ячейками, образующими
окрестность фон Неймана
. Решетка считается имеющей бесконечный размер в обоих направлениях, а ячейки — идентичными в плане правил перехода. Изменение состояний всех ячеек происходит синхронно.
Состояния
Каждый конечный автомат в пространстве фон Неймана может принимать одно из 29 состояний:
базовое состояние
U
транзитные (или чувствительные) состояния
S
S
0
S
00
S
01
S
000
S
1
S
10
S
11
конфлюентные состояния
C
00
C
10
C
01
C
11
обычное передающее состояние
T
00
вправо
T
01
вверх
T
02
влево
T
03
вниз
специальное передающее состояние
T
10
вправо
T
11
вверх
T
12
влево
T
13
вниз
Каждое из передающих состояний (8 состояний) также характеризуется возбужденностью/невозбужденностью (зеленые/синие стрелочки), что дает в итоге 16 передающих состояний. Возбужденное состояние переносит данные со скоростью 1 бит за такт. Конфлюентные состояния имеют задержку на один такт, и таким образом могут хранить 2 бита информации.
Правила перехода передающих состояний
Поток информации между ячейками определяется свойством направленности. Применяются следующие правила:
Передающие состояния применяют оператор ИЛИ к входным сигналам, то есть ячейка в передающем состоянии (обычном или специальном) перейдет в возбужденное на такте
t+1
если любой из входных сигналов является возбужденным на такте
t
Состояния передаются между передающими ячейками соответственно свойству направленности.
Обычные и специальные передающие состояния являются «антагонистами»:
Если ячейка
А
на такте
t
в обычном возбужденном передающем состоянии указывает на ячейку
В
в любом специальном передающем состоянии, то на такте
t+1
ячейка
В
перейдет в базовое состояние
U
. Особое передающее состояние будет «уничтожено».
Аналогичное событие произойдет, если ячейка в специальном передающем состоянии будет указывать на обычную передающую ячейку.
Правила перехода конфлюентных состояний
Следующие правила применяются к конфлюентным состояниям:
Конфлюентные ячейки не передают данных между собой.
Конфлюентные ячейки принимают входные сигналы от одной или нескольких обычных передающих ячеек и выдают их передающим ячейкам (обычным или специальным), которые не указывают на текущую ячейку.
Данные не передаются в направлении, обратном направленности передающей ячейки.
Данные, хранимые конфлюентной ячейкой, теряются, если у неё нет прилегающих передающих ячеек (не указывающих на неё).
Конфлюентные ячейки служат мостами между обычными и специальными передающими ячейками.
Конфлюентные ячейки применяют оператор И к входным сигналам.
Конфлюентные ячейки задерживают сигнал на один такт дольше, чем обычные передающие ячейки.
Правила перехода транзитных состояний
В исходном состоянии большая часть клеточного пространства является «пустой», то есть заполненной ячейками в состоянии
U
. Получив входной сигнал от передающей ячейки, соседняя ячейка в состоянии
U
переходит в транзитное состояние, проходит ряд состояний и оказывается в одном из передающих или конфлюентных состояний. Это конечное состояние определяется последовательностью входных сигналов. То есть транзитные состояния могут рассматриваться как точки
бифуркации
на пути от базового состояния к передающим и конфлюентным.
В следующих правилах последовательность входных сигналов указана в скобках двоичной строкой:
ячейка в базовом состоянии
U
, получив сигнал, переходит в состояние
S
(1)
ячейка в состоянии
S
, не получив сигнала, переходит в состояние
S
0
(10)
ячейка в состоянии
S
0
, не получив сигнала, переходит в
S
00
(100)
ячейка
S
00
, не получив сигнала, переходит в
S
000
(1000)
ячейка
S
000
, не получив сигнала, переходит в
T
00
(10000)
ячейка
S
000
, получив сигнал, переходит в
T
01
(10001)
ячейка
S
00
, получив сигнал, переходит в
T
02
(1001)
ячейка
S
0
, получив сигнал, переходит в
S
01
(101)
ячейка
S
01
, не получив сигнала, переходит в
T
03
(1010)
ячейка
S
01
, получив сигнал, переходит в
T
10
(1011)
ячейка
S
, получив сигнал, переходит в
S
1
(11)
ячейка
S
1
, не получив сигнала, переходит в
S
10
(110)
ячейка
S
10
, не получив сигнала, переходит в
T
11
(1100)
ячейка
S
10
, получив сигнал, переходит в
T
12
(1101)
ячейка
S
1
, получив сигнал, переходит в
S
11
(111)
ячейка
S
11
, не получив сигнала, переходит в
T
13
(1110)
ячейка
S
11
, получив сигнал, переходит в
C
00
(1111)
Разрушающие правила
Входной сигнал от специальной передающей ячейки, полученный ячейкой в конфлюентном или обычном передающем состоянии, переводит эту ячейку в базовое.
Входной сигнал от обычной передающей ячейки, полученный специальной передающей ячейкой, переводит эту ячейку в базовое.
Модификации
Одной из разновидностей автомата фон Неймана является
автомат Нобили
, в котором введены дополнительные состояния для обеспечения памяти и возможности пересечения сигналов без интерференции, для чего использована возможность хранения информации группами клеток. Последняя функция требует три дополнительных состояния, в силу чего автомат Нобили имеет 32 состояния, а не 29. Является изобретением
(
итал.
Renato Nobili
), профессора физики университета
Падуя
,
Италия
. Фон Нейман намеренно исключил состояния, предназначенные для пересечения сигналов.
Конфлюентное состояние изменено таким образом, чтобы передавать независимо друг от друга два одновременно приходящих сигнала, либо запоминать и передавать с задержкой входные сигналы.
Ещё одной разновидностью является
автомат Хаттона
(
англ.
Hutton
), допускающий репликацию кольцевых структур (см.
на
английском языке
).