Красота в квадрате Как цифры отражают жизнь и жизнь отражает цифры (Беллос) - страница 184

Клеточные автоматы с более простой структурой, чем игра «Жизнь», могут демонстрировать столь же сложное поведение. Рассмотрим в качестве примера одномерный клеточный автомат: ряд клеток, в котором каждая клетка имеет только двух соседей. Кроме того, каждая клетка может быть либо живой, либо мертвой.

Возьмем следующее правило:

Если оба соседа клетки пребывают в том же состоянии, что и она сама, то клетка умирает в следующем поколении. В противном случае в следующем поколении она остается живой.

Это правило проиллюстрировано ниже. На рисунке показаны восемь возможных комбинаций клетки и двух ее соседей. Под каждой комбинацией изображено состояние клетки после смены поколения. В первой комбинации живая клетка находится в окружении двух живых соседних клеток. Значит, в следующем поколении она умрет. Вторая комбинация содержит живую клетку слева и мертвую справа, стало быть, средняя клетка останется в следующем поколении в живых. Если две соседние клетки одинакового цвета, внизу будет получена белая клетка. Если разного, нижняя клетка будет черной.

Чтобы понять суть этого правила, представьте себе группу людей, стоящих каждое утро в очереди на автобусной остановке, причем в одном и том же порядке. У каждого человека два соседа, по одному с каждой стороны. Пусть наше правило касается шляп: если оба ваши соседа носят шляпу, то шляпы — это слишком типичное явление, поэтому на следующий день вы шляпу не наденете. Если ни у одного из соседей шляпы нет, значит, они не в моде, поэтому на следующий день вы тоже шляпу не наденете. Однако если шляпу носит только один ваш сосед, то она еще не вышла из моды и не говорит о плохом вкусе. Данный клеточный автомат представляет собой модель изменения ежедневных предпочтений в ношении головных уборов.

Для того чтобы проиллюстрировать поведение одномерного клеточного автомата, давайте нарисуем ряд с одной живой клеткой (поколение 0), а затем применим указанное выше правило к каждой клетке для создания нового ряда, расположенного ниже (поколение 1). Затем применим это правило к каждой клетке данного ряда, чтобы получить следующий новый ряд (поколение 2), и т. д. На представленном рисунке показано, что при этом произойдет. (Обратите внимание, что вершина треугольника — это живая клетка первого ряда, а каждый новый ряд — следующее поколение, в отличие от игры «Жизнь», где вся сетка образует одно поколение. Я опустил на рисунке саму сетку, чтобы полученная конфигурация была видна более четко.) В итоге мы получим прекрасный математический зиккурат, известный как «треугольник Серпинского», — фрактальную структуру, состоящую из вложенных треугольников.