Виктор Губерниев Мастер

Что «Жизнь»? Игра!

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

Зарождение «Жизни»

Патриарх всея Кибернетики Джон фон Нейман в сороковых годах прошлого века заинтересовался проблемой самовоспроизводящихся машин. Такая машина, без преувеличения, позволит перевернуть мир. Представьте себе, что сложнейшую технику можно будет разводить и выращивать, как цыплят. Создавать ничего не надо — только кормить и воспитывать! Достаточно привезти одну такую машину, скажем, на Марс, и она воспроизведёт себя в стольких экземплярах, что планету можно сделать пригодной для жизни не за века, а за годы или даже месяцы!

Конечно, фон Нейман занимался лишь теорией, при этом он сумел создать сложнейшую систему правил, которым должна подчиняться такая машина. А в 1970-м году Джон Конвей усовершенствовал идею фон Неймана и построил модель с гораздо более простыми правилами, которые оформил в виде игры «Жизнь».

Джон фон НейманИгра «Жизнь» моделирует эволюцию живых существ. Место действия — клеточная «Вселенная». Возможны варианты ограниченной плоской вселенной и вселенной, замкнутой в виде тора, когда клетки на противоположных концах поля считаются соседними.

Представьте себе шахматную доску, где фигуры могут, уходя за край доски, появляться с другого края.

У каждой клетки (если она не крайняя в ограниченной Вселенной) есть 8 соседей. Каждая клеточка может быть или пуста (мертва) или заселена (жива). Вначале игрок, который в данной модели вселенной играет роль самого Создателя, расставляет некоторую исходную позицию (указывает, какие клетки будут заселены, а какие — пусты). Это — нулевое поколение.

Законы «Жизни»

Джон КонвейДальнейшее развитие колонии происходит уже без участия игрока — колония развивается, живёт и угасает по простым правилам:

1. Если у клетки менее 2 живых соседей, то в следующем поколении она умирает (от одиночества и тоски);
2. Если у клетки более 3 живых соседей, то в следующем поколении она также умирает (от перенаселённости и нехватки ресурсов);
3. Если у пустой клетки трое соседей, то там зарождается жизнь;
4. Все прочие клетки остаются в том же состоянии, в котором они и были;
5. Все рождения и смерти происходят мгновенно и одновременно, знаменуя смену поколений.

Исход игры существенно зависит от начальной позиции и бывает различный:

Некоторые колонии начисто вымирают;
Некоторые колонии эволюционируют в неизменные структуры, когда каждое новое поколение тождественно предыдущему (рис.1). Иногда колония эволюционирует в циклическую структуру, когда поколения начинают повторяться через некоторое число шагов;
Ряд колоний превращается в циклические структуры, перемещающиеся по полю. То есть они повторяются, но при этом сдвигаются на некоторое количество клеток;
И, самое поразительное, существуют колонии, эволюционирующие в циклические структуры, порождающие другие циклические структуры, которые перемещаются по полю (так называемые «ружья»). Эти колонии порождают потенциально бесконечное число живых клеток (!);
А ещё есть «паровозы» — циклические двигающиеся фигуры, оставляющие за собой след из устойчивых и циклических фигур.

Рис.  2. Ружьё ГоспераКонуэй сначала считал, что невозможно найти такую начальную расстановку, чтобы в ходе эволюции создавалось бесконечное множество живых клеток. Он объявил премию в 50 долларов тому, кто сможет это доказать или опровергнуть.

Группа исследователей из Массачусетского технологического института придумала циклическую фигуру «Ружьё Госпера» (рис. 2), которая создавала движущиеся простейшие циклические фигуры, получившие название «глайдеры» — то есть скользящие (рис. 3). Так что в этой модели Вселенной «вечный двигатель» был благополучно изобретён.

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

Рис. 3. ГлайдерВ математике такая модель вселенной получила название «Клеточный автомат». Влияние её на развитие науки трудно переоценить: игра пригодилась и в теории алгоритмов, и в теории автоматов, в теории игр, в теории вероятностей, во фрактальной геометрии, в комбинаторике и многих других дисциплинах.

Аналогии «Жизни»

Разумеется, эта замечательная игра не оставила равнодушными философов и теологов. Ведь она совмещает взгляды на эволюцию и идеалистов, и материалистов! Действительно, кто-то расставил начальное положение и придумал Законы развития (кто, как не Бог?), но дальше Вселенная развивается сама по установленным Законам Природы (в строгом соответствии с материалистическими воззрениями). И никаких вам случайностей и чудес.

Физики изумляются, насколько эта игра напоминает поведение элементарных частиц. Нейробиологи видят в ней подобие самовосстанавливающихся электрических цепей в тканях мозга. Астрономы поражены сходством игры с законами развития спиралевидных галактик. Социологи находят параллели с развитием групп и популяций, процессами поглощения, доминации, вытеснения и т. п.

Ну, а далёкие от науки люди просто расставляют всевозможные начальные позиции в компьютерной реализации игры (которую способен написать любой нынешний старшеклассник) и зачарованно наблюдают за процессом эволюции. При достаточно развитом воображении в эволюции симметричных колоний можно углядеть таинственные письмена, символы и коды.

Игра «Жизнь» разнообразна, увлекательна и глубока, как сама жизнь. Может быть, и мы — суть гигантские колонии на бесконечной клетчатой доске, где размер клетки равен кванту пространства — постоянной Планка?

Обновлено 20.01.2010
Статья размещена на сайте 7.12.2009

Комментарии (11):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Виктор Губерниев, было дело в средине 70х играли.

    Оценка статьи: 5

  • Вселенная развивается сама по установленным Законам Природы (в строгом соответствии с материалистическими воззрениями). И никаких вам случайностей и чудес.- жаль...

    Оценка статьи: 5

  • Интересно, что с появлением компьютеров стало возможным создавать свои небольшие вселенные со своими законами. Пожалуй любая компьютерная игрушка и есть такая вселенная, со своим набором законов (гравитация, баллистика, поведение обитателей).
    Я в своё время как то тоже написал простую программку по алгоритму муравья Лэнгтона: такая же пиксельная вселенная, в которой один из пикселей занимает муравей. Каждую итерацию он перекрашивает клетку перед собой в противоположный цвет, после чего, если клетка чёрная - поворачивается налево и делает шаг вперёд, иначе - направо. Что то вроде этого, правила могут быть разными. Суть в том, что при простейшем алгоритме - результат труднопредсказуем. Через несколько тысяч итераций муравей начинает рисовать широкую дорогу, по направлению к правому нижнему углу.

    • Тимур Шакиров, а что если в игре "Жизнь" тоже оцветнить алогритм? Т.е. не удалять "умершие" клетки, а перекрашивать их. Например, всё живущее на данной итерации имеет зелёный цвет, умершее на прошлой - голубой, на позапрошлой - синий, 3 поколения назад - фиолетовый. То, что родится на следующей итерации - жёлтый, через одну - оранжевый, через 2 - красный. А все прочие клетки - лиловый.

      Интересные рисунки, наверное, получатся...

      • Тимур Шакиров Дебютант 21 января 2010 в 17:32 отредактирован 21 января 2010 в 17:33

        Виктор Губерниев, всё можно ) Но в данном случае, суть алгоритма - в простоте понимания и реализации. Его можно быстро и легко на написать на чём угодно, и использовать для проверки компьютера или языка программирования. Я, например, изучая новый язык, создаю на нём игру - тетрис. Если можешь написать тетрис - значит синтаксис ты освоил. )
        Кстати говоря, реальная вселенная тоже часто имитируется физиками теоретиками. Изменишь например, какую нибудь космологическую постоянную - и смотришь, что произойдёт с такой вселенной: возникнут ли в ней адроны, появятся ли атомы, звёзды, планеты, или она и вовсе схлопнется в самом начале. Помнится где то писали, что по результатам симуляций - жизнь может возникнуть при отсутствии слабого взаимодействия.
        Вспомнился забавный случай, когда майкрософт создала свой компьютерный мир, и туда можно было свободно добавить свою зверюгу, задав ей свой набор параметров и особенности поведения. У американских программистов хорошо получались хищники, а у русских - травоядные (коровки). Коровам задали такой алгоритм поведения: если рядом коровы своего вида - прибиться к ним в стаю и отслеживать хищников. Если рядом коровы другого вида - с максимальной скоростью сожрать в округе всю траву и сдохнуть от голода (заодно лишив пищи враждебных коров)

        • Тимур Шакиров, а существуют ли в природе полухищники? Т.е. травоядные животные, переходящие на животную пищу только при отсутствии другой еды. Homo Sapiens vegetarianus - не в счёт...

          • Виктор Губерниев, не зоолог, но всеядных животных вроде как полно. Медведи и кабаны например.
            В Гордоновской передаче как то рассказывали о такой симуляции: сделали компьютерный мир, населённый всеядными (могли питаться травой или друг другом), задали каждому индивидуальный набор характеристик (скорости, агрессивность и тп ), возможность размножаться и возможность эволюционного развития (наследования, мутации). Через несколько тысяч поколений произошло разделение на хищников и травоядных. Хищники научились лениться - наевшись, ложились спать, и не передвигались пока не кончалась энергия, и не нужно было снова выходить на охоту.