Красота в квадрате. Как цифры отражают жизнь и жизнь отражает цифры - Алекс Беллос
Шрифт:
Интервал:
Конвей опубликовал на страницах журнала Scientific American задачу и предложил за ее решение приз в размере 50 долларов. Существует ли конфигурация, которая продолжает расти и у которой общее количество живых клеток увеличивается бесконечно? Госпер нашел такую конфигурацию и получил приз. «Глайдерное ружье» — это фигура из 36 живых клеток, пульсирующая как бьющееся сердце, порождая новый глайдер через каждые 30 поколений. Эти глайдеры один за другим отдаляются от исходной фигуры по диагонали, подобно бесконечному потоку пуль, выстреливаемых из ружья. Открытие глайдерного ружья сместило фокус изучения игры «Жизнь» с зоологии на физику. Госпер и его друзья-натуралисты больше не занимались пассивным исследованием флоры и фауны, переключившись на баллистику и изобретение фигур, в состав которых входят глайдерные ружья, стреляющие в другие фигуры. Можно было выстрелить двумя глайдерами друг в друга таким образом, что оба исчезали, не оставив после себя никаких обломков, как будто каким-то волшебным образом растворяясь в воздухе. «Мы пытались найти способ создавать что-то новое, сталкивая глайдеры между собой и наблюдая, что из этого выйдет, — объяснял Госпер. — А затем возникал другой вопрос: что произойдет, если ударить глайдерами по фигурам, полученным в результате столкновения глайдеров?» В ходе поиска ответа на этот вопрос Госпер открыл новую устойчивую конфигурацию из семи клеток под названием «пожиратель». Когда глайдер сталкивается с пожирателем, первый исчезает, а второй восстанавливается до исходного состояния, что создает впечатление, будто он поглотил глайдер. Кроме того, пожиратель поглощает другие устойчивые фигуры, расположенные рядом с ним, всегда восстанавливаясь после первоначального взаимодействия.
Пожиратель был первым признаком того, что игре «Жизнь» можно найти применение в реальном мире, например в проектировании объектов, которые способны к самовосстановлению. Нельзя сказать, что Госпера интересовало именно это. Для него было важно то, что глайдерное ружье и пожиратель позволяют вывести игру «Жизнь» на новый уровень — уровень разработки больших проектов, в рамках которых огромные конфигурации можно было бы создавать из сотен глайдеров, скачущих между разными элементами, а пожирателей разместить таким образом, чтобы они подбирали ненужные обломки. Первой конфигурацией подобного типа, которую Госперу удалось составить, был так называемый размножитель — фигура, порождающая глайдеры. Он начинает где-то с 50 глайдеров и ускоряет их воспроизведение так быстро, что примерно на 6500-м поколении количество глайдеров превышает количество поколений.
По мере увеличения банка знаний любители игры «Жизнь» выстраивали все более удивительные конфигурации. Одна из моих любимых представляет собой имитацию решета Эратосфена — метода поиска простых чисел, используемого древними греками. Решето, смоделированное в игре «Жизнь», состоит в основном из ружей, глайдеров и пожирателей. Его исходная конфигурация включает 5169 живых клеток[182]. Основной элемент решета — ружье, выстреливающее фигуру из 9 клеток под названием «легкий космический корабль» в горизонтальном направлении, через равные промежутки времени. Глайдеры обстреливают космические корабли, из которых выживают только второй, третий, пятый, седьмой, одиннадцатый и т. д. — другими словами, корабли, порядковый номер которых — простое число. (Подробное разъяснение того, как это работает, можно найти в Приложении 8.)
Мне нравится решето, смоделированное в игре «Жизнь», поскольку из древнегреческого математического инструмента оно превратилось в межгалактическую перестрелку между флотилиями глайдеров и космических кораблей. Наблюдать за данной конфигурацией — это как будто смотреть батальную сцену в фантастической эпопее или, возможно, отслеживать эволюцию колонии муравьев, поведение которых носит сугубо математический характер. Не забывайте: как только вы построите исходную конфигурацию, вам не нужно вмешиваться в дальнейший процесс. Эта фигура может продолжать свою жизнь до бесконечности, отстреливая космические корабли и оставляя в живых лишь те из них, порядковый номер которых представляет собой простое число.
«Уровень мастерства реально поражает, — сказал Госпер о самых лучших конфигурациях. — Люди, которые пытаются [создавать фигуры], быстро осознают, насколько это сложно, а удачные образцы приводят их в неописуемый восторг. Для того чтобы сосредоточиться на игре в достаточной степени, нужно находиться почти в состоянии невменяемости». За период с семидесятых годов до наших дней построены сотни удивительных конфигураций, в том числе и вычисляющая значение числа π, которую изобрел британский подросток по имени Адам Гаучер. К чему еще стремиться? «Жизнь — неистощимый источник вопросов и задач», — резюмировал Госпер.
Игра «Жизнь» подвергает сомнению наши предвзятые представления о том, как работает этот мир, поскольку она показывает, как простой набор локальных правил может генерировать невероятно сложное общее поведение. При взгляде на такую идеально интегрированную систему, как решето Эратосфена, удивляет то, что каждая клетка взаимодействует всего с восемью соседними клетками.
Игра «Жизнь» демонстрирует также существование разных реальностей на разных уровнях игры. Решето Эратосфена — это конфигурация, разработанная на основе физических свойств глайдерных ружей с использованием технологии столкновений и космических кораблей. Однако на более детальном уровне таких вещей, как «столкновение» или «космический корабль», нет. Есть лишь неподвижные клетки, которые могут быть либо «живыми», либо «мертвыми».
По мере создания все более сложных фигур возникает вопрос: каков предел того, что может сделать конфигурация в игре «Жизнь»? Да буквально все, на что способен ваш ПК, планшет или смартфон. Если задача выполнима с помощью компьютера, тогда это можно сделать и посредством конфигурации в игре «Жизнь».
Конвей доказал истинность этого утверждения, продемонстрировав, что можно создать компьютер «Жизни», другими словами — исходную конфигурацию живых клеток, имитирующую внутреннюю схему компьютера. Вам придется поверить мне на слово (или прочитать книгу по информатике), но внутренняя схема компьютера на базовом уровне состоит из следующих компонентов: проводники, логические элементы и регистр памяти. Генератор тактовых импульсов порождает электронные импульсы, представляющие двоичные числа. Наличие импульса — это 1, а его отсутствие — 0. Конвей понял, что глайдеры могут выполнять функции импульсов, передающихся по проводникам. Следовательно, поток глайдеров может представить любое число, состоящее из нолей и единиц, как показано на рисунке ниже. Поскольку глайдеры двигаются по диагонали, я разместил сетку под углом 45 градусов.
Поток глайдеров
Конвей разработал логический элемент простейшего типа, выполняющий операцию НЕ (операцию отрицания)[183]. Логический элемент — это устройство, имеющее несколько входов и выходов. У логического элемента, выполняющего операцию НЕ, только один вход и один выход. Сигнал на выходе противоположен сигналу на входе: он меняется с 1 на 0 и с 0 на 1. Следовательно, логический элемент отрицания в игре «Жизнь» должен превратить наличие глайдера во входящем потоке в его отсутствие в исходящем потоке и наоборот. Конвей понял, что эту функцию может выполнить стратегически правильно размещенное глайдерное ружье, как показано на рисунке ниже. Входящий поток перемещается горизонтально, слева направо. Глайдерное ружье стреляет по глайдерам вертикально вниз. Если во входящем потоке появляется глайдер, его уничтожает глайдер, порожденный ружьем. Но если во входящем потоке глайдера нет, глайдер из ружья проходит невредимым, поскольку ему не с чем сталкиваться. Таким образом, исходящий поток содержит 1, если входящий поток содержит 0, и 0 — если 1. Это и есть логический элемент, выполняющий операцию НЕ. Исходящий поток находится под прямым углом к входящему потоку, но это не имеет значения, так как мы можем изменить направление потока в дальнейшем в случае необходимости.
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!