Шрифт:
Интервал:
Закладка:
Конфигурация, созданная фон Нейманом для своего первого клеточного автомата, состояла из конструктора, устройства копирования и макета. Теоретически он показал, что она способна к самовоспроизведению, но не продемонстрировал этого на практике, поскольку компьютеры тогда еще не были достаточно мощными для этого. Тем не менее работа фон Неймана оказала заметное влияние на целое поколение специалистов в области вычислительных машин и систем, философов и даже биологов, которые изучали в 1950-х годах механизм репродукции живых клеток. Когда на протяжении этого и следующего десятилетия им все же удалось раскрыть специфику данного механизма, они обнаружили, что фон Нейман прав! В свое время он создал абсолютно точную модель самовоспроизведения живых организмов. В каждой клетке есть макет (ее ДНК), содержащий закодированные инструкции по репродукции новых клеток. Однако в ДНК нет описания самой ДНК — та ДНК, которая появляется в новой клетке, представляет собой результат копирования (двойная спираль ДНК делится на две части, а ферменты создают две точные копии исходной ДНК). Подобно тому как машина фон Неймана прочитывает макет двумя способами, ДНК также ведет себя по-разному в процессе воспроизводства живой клетки.
Пол Чэпмен попытался построить самовоспроизводящуюся конфигурацию клеток, но не смог найти способ копирования макета. И вот в 2010 году канадский программист Эндрю Уэйд объявил о создании космического корабля «Джемини». «Когда я впервые увидел его, я пришел в восторг! — воскликнул Пол. — “Джемини” — это самая важная фигура за все сорок лет. И никто даже не знал, кто такой Эндрю Уэйд! Он просто написал об этом на доске объявлений!»
«Джемини» — первая самовоспроизводящаяся конфигурация в игре «Жизнь». Как показано на рисунке ниже, эта фигура имеет форму очень длинной и тонкой гантели, на концах которой находятся идентичные конструкторы (отсюда название «Джемини» — «близнецы»), а между ними на решетке размером 4 миллиона × 4 миллиона клеток расположен макет, состоящий из глайдеров. Оригинальная идея Уэйда заключалась в том, чтобы вместо создания копий макета обеспечить его быстрое перемещение между двумя конструкторами. Когда макет достигает одного из конструкторов, он дает ему указание построить свою новую версию на 5120 клеток вверх и 1024 клетки в сторону и одновременно уничтожить себя. После этого макет отправляется в обратном направлении, где через миллионы клеток достигает противоположного конструктора и тоже дает ему указание построить свою новую версию на 5120 клеток вверх и 1024 клетки в сторону, а затем саморазрушиться. Этот цикл, после которого вся конфигурация смещается на 5120 клеток вверх и 1024 клетки в сторону, повторяется каждые 33,7 миллиона поколений. Поскольку конфигурация «Джемини» двигается, ее считают космическим кораблем, но она двигается не посредством кувырков, как это делает глайдер, а с помощью процесса самовоспроизведения. «Самое блестящее, что сделал Эндрю Уэйд, — сказал Пол, — это устранил этап создания копии [макета] и сделал так, что [макет] просто появляется как гром среди ясного неба, причем в самый подходящий момент для того, чтобы дать инструкции».
«Джемини» — это первый космический корабль, движение которого основано на самовоспроизведении
С «Джемини» связано еще одно важное достижение: это первый космический корабль, который перемещается наискось, то есть не в горизонтальном и не в вертикальном направлении и не под углом 45 градусов к сетке.
Пол показал мне лист бумаги с изображением одного из конструкторов «Джемини». Он с гордостью упомянул о том, что в его основу положен компьютер, созданный им в игре «Жизнь». Изображение конструктора напоминало кляксу, состоящую из группы серых шевронов в окружении крохотных точек. Я спросил Пола, есть ли у него изображение всего корабля «Джемини». Он ответил, что в этом нет смысла, поскольку в таком масштабе эта фигура была бы настолько разреженной, что оказалась бы практически невидимой. Почти вся конфигурация представляет собой поток глайдеров. Как ни странно, макет занимает намного больше места, чем конструктор. В клеточном автомате фон Неймана тоже присутствовал подобный дисбаланс: его конструктор помещается в сетку 97 × 170, тогда как макет имеет длину 145 315 клеток. Крупные конфигурации состоят в основном из пустого пространства. «Возможно, в игре “Жизнь” так много пустого пространства по той же причине, почему его так много в нашем мире, — пояснил Пол. — У атомов должно быть достаточно места для того, чтобы они выполняли свою работу».
Появление «Джемини» усилило ожидания в отношении следующего этапа исследования игры «Жизнь»[184]. Если исходная конфигурация порождает копии, в которых есть небольшие отличия от оригинала, это может обусловить дарвиновский естественный отбор. В 1982 году Джон Конвей выдвинул предположение о том, что если бы решетка игры «Жизнь» была достаточно большой и в исходном состоянии клетки располагались на ней в случайном порядке, то «через приличный промежуток времени появились бы разумные существа, способные к воспроизводству». Три десятилетия спустя эта гипотеза Конвея по-прежнему будоражит кровь любителям игры «Жизнь». Самую интересную работу выполняет Ник Готтс, специалист по комплексным системам из Абердина (Шотландия), который ищет новые конфигурации, заполняя сетку игры «Жизнь» живыми клетками в произвольном порядке. Он называет свой проект «рассеянной Жизнью», поскольку относительная доля живых клеток должна быть довольно низкой по сравнению с количеством мертвых клеток, иначе это приведет к слишком большому числу неконтролируемых взаимодействий. «В некоторых конфигурациях присутствует нечто, напоминающее естественный отбор, — объясняет Ник. — Есть конфигурации, регулирующие появление других конфигураций аналогичного типа. Я убежден, что, если бы моя программа выполнялась достаточно долго, вступил бы в действие закон естественного отбора».
Клеточные автоматы с более простой структурой, чем игра «Жизнь», могут демонстрировать столь же сложное поведение. Рассмотрим в качестве примера одномерный клеточный автомат: ряд клеток, в котором каждая клетка имеет только двух соседей. Кроме того, каждая клетка может быть либо живой, либо мертвой.