Как эволюционирует шеврон
Судьба еще четырех исходных конфигураций из трех клеток (триплетов) показана на рисунке ниже. (На этом рисунке каждое новое поколение отображается ниже предыдущего. В действительности каждое новое поколение занимает те же клетки.) Ко второму поколению два триплета погибают. Однако квадрат из четырех клеток, который Конвей назвал «блоком», продолжает жить, оставаясь в неизменном виде во всех последующих поколениях. Конфигурация из выстроившихся в линию трех клеток, расположенная то вертикально, то горизонтально, известна как «мигалка». Фигуры, которые не меняются (подобные блоку) или находятся то в одном, то в другом фиксированном состоянии, называются устойчивыми конфигурациями.
Судьба триплетов
Как эволюционирует шеврон
Настоящее волшебство мы увидим при анализе эволюции пяти тетрамино (фигур, положенных в основу компьютерной игры «Тетрис»), состоящих из четырех живых клеток, примыкающих друг к другу. Блок, как мы уже заметили, остается в неизменном состоянии. Четыре другие фигуры представлены на рисунке ниже. Тетрамино в форме букв I и S превращаются через два поколения в устойчивую конфигурацию, получившую название «улей», а L-образное тетрамино трансформируется в улей через три поколения. С другой стороны, тетрамино в форме буквы T обладает взрывной энергией и через девять поколений эволюционирует в окончательную конфигурацию, состоящую из четырех мигалок, — «светофор».
Судьба тетрамино
Самой увлекательной особенностью игры «Жизнь» была ее непредсказуемость. Не было другого способа узнать, что произойдет даже с самыми простыми фигурами, кроме отслеживания их жизни на протяжении многих поколений, что Конвей и его коллеги делали вручную. Живые клетки были фишками, которые размещались на доске для игры го с разметкой 19 × 19 линий. Когда для шаблона требовалось больше места, на полу укладывали дополнительные доски. Были найдены новые устойчивые конфигурации, получившие такие названия, как «батон», «корабль», «лодка» и «змея». Иногда исходный шаблон погибал или быстро менялся, превращаясь в одну из известных устойчивых конфигураций, а иногда начинал жить своей жизнью, что приводило всех в сильное волнение. Например, пентамино в форме буквы R состояло всего из пяти клеток, но продолжало эволюционировать на протяжении десятков поколений, пока на 69-м поколении не произошло исключительное событие. Эта конфигурация произвела на свет фигуру из пяти клеток, скользившую по доске.
Новая фигура получила имя «глайдер» (ее поведение проиллюстрировано на рисунке ниже). Через два поколения конфигурация переворачивается на другую сторону, а еще через два снова поворачивается таким образом, что оказывается на одну клетку ниже и на одну дальше от исходной позиции. Глайдер продолжает смещаться на одну клетку вниз и одну вперед каждые четыре поколения. Он будет двигаться в одном и том же направлении по диагонали до бесконечности, если ничто не преградит ему путь. «Главный систематик» Конвей выделил в игре «Жизнь» новый вид фигур, подобных глайдеру, которые перемещаются по прямым линиям, и назвал их космическими кораблями.
Глайдер
В 1970 году журналист Мартин Гарднер написал об игре «Жизнь» в своей многолетней рубрике в журнале Scientific American, что способствовало превращению математической игры Конвея в одно из первых компьютерных увлечений, охвативших весь мир [3]. Отслеживание эволюции фигур в игре «Жизнь» на доске для го требовало больших временных затрат и не было защищено от ошибок. Компьютеры позволяли отслеживать конфигурации гораздо дольше; кроме того, когда сменяющие друг друга поколения клеток мелькали на экране, фигуры как будто оживали [4]. Решетка с разбросанными по ней живыми клетками представляла собой первичную среду обитания изменчивых, постоянно преобразующихся конфигураций. Например, R-образное пентамино искрилось и пенилось на протяжении целых 1103 поколений, оставляя после себя обломки в виде корабля, лодки, батона, четырех ульев, четырех мигалок, шести глайдеров и восьми блоков. Запрограммировать игру «Жизнь» не составляло труда, поскольку в ней было всего четыре правила; тем не менее эта игра демонстрировала слишком сложное поведение, и его еще не удавалось добиться на компьютерах. Создание шаблонов и наблюдение за их дальнейшей жизнью вызывали такую зависимость, что, по оценкам Гарднера, это обошлось американской экономике в миллионы долларов компьютерного времени. Один читатель рассказал Гарднеру, что установил под своим рабочим столом секретную кнопку, для того чтобы переключать компьютер на игру «Жизнь», когда коллеги выходят из кабинета.
В Массачусетском технологическом институте (МТИ) игра «Жизнь» стала образом жизни. Одна сплоченная группа склонных к анархии и веселью, но очень умных студентов поставила перед собой цель изучить эту игрушечную вселенную глубже, чем кто-либо другой [5]. Это были первые компьютерные хакеры, настоящие техногики25. Общинная, антиавторитарная позиция хакеров оказала огромное влияние на формирование зарождающейся компьютерной культуры Америки, задавая тон новаторам более позднего периода, таким как Стив Джобс и Билл Гейтс. «План состоял в том, чтобы просто собрать всю эту дичь и одомашнить ее», — объяснил Билл Госпер, король хакеров, который преподает сейчас математику в Лос-Альтосе. Госпер проводил целые ночи в компьютерном зале MIT, играя в «Жизнь», и так продолжалось почти два года.
Конвей опубликовал на страницах журнала Scientific American задачу и предложил за ее решение приз в размере 50 долларов. Существует ли конфигурация, которая продолжает расти и у которой общее количество живых клеток увеличивается бесконечно? Госпер нашел такую конфигурацию и получил приз. «Глайдерное ружье» — это фигура из 36 живых клеток, пульсирующая как бьющееся сердце, порождая новый глайдер через каждые 30 поколений. Эти глайдеры один за другим отдаляются от исходной фигуры по диагонали, подобно бесконечному потоку пуль, выстреливаемых из ружья. Открытие глайдерного ружья сместило фокус изучения игры «Жизнь» с зоологии на физику. Госпер и его друзья-натуралисты больше не занимались пассивным исследованием флоры и фауны, переключившись на баллистику и изобретение фигур, в состав которых входят глайдерные ружья, стреляющие в другие фигуры. Можно было выстрелить двумя глайдерами друг в друга таким образом, что оба исчезали, не оставив после себя никаких обломков, как будто каким-то волшебным образом растворяясь в воздухе. «Мы пытались найти способ создавать что-то новое, сталкивая глайдеры между собой и наблюдая, что из этого выйдет, — объяснял Госпер. — А затем возникал другой вопрос: что произойдет, если ударить глайдерами по фигурам, полученным в результате столкновения глайдеров?» В ходе поиска ответа на этот вопрос Госпер открыл новую устойчивую конфигурацию из семи клеток под названием «пожиратель». Когда глайдер сталкивается с пожирателем, первый исчезает, а второй восстанавливается до исходного состояния, что создает впечатление, будто он поглотил глайдер. Кроме того, пожиратель поглощает другие устойчивые фигуры, расположенные рядом с ним, всегда восстанавливаясь после первоначального взаимодействия.
Пожиратель был первым признаком того, что игре «Жизнь» можно найти применение в реальном мире, например в проектировании объектов, которые способны к самовосстановлению. Нельзя сказать, что Госпера интересовало именно это. Для него было важно то, что глайдерное ружье и пожиратель позволяют вывести игру «Жизнь» на новый уровень — уровень разработки больших проектов, в рамках которых огромные конфигурации можно было бы создавать из сотен глайдеров, скачущих между разными элементами, а пожирателей разместить таким образом, чтобы они подбирали ненужные обломки. Первой конфигурацией подобного типа, которую Госперу удалось составить, был так называемый размножитель — фигура, порождающая глайдеры. Он начинает где-то с 50 глайдеров и ускоряет их воспроизведение так быстро, что примерно на 6500-м поколении количество глайдеров превышает количество поколений.
По мере увеличения банка знаний любители игры «Жизнь» выстраивали все более удивительные конфигурации. Одна из моих любимых представляет собой имитацию решета Эратосфена — метода поиска простых чисел, используемого древними греками. Решето, смоделированное в игре «Жизнь», состоит в основном из ружей, глайдеров и пожирателей. Его исходная конфигурация включает 5169 живых клеток [6]. Основной элемент решета — ружье, выстреливающее фигуру из 9 клеток под названием «легкий космический корабль» в горизонтальном направлении, через равные промежутки времени. Глайдеры обстреливают космические корабли, из которых выживают только второй, третий, пятый, седьмой, одиннадцатый и т. д. — другими словами, корабли, порядковый номер которых — простое число. (Подробное разъяснение того, как это работает, можно найти в Приложении 8.)