stringtranslate.com

Игра жизни Конвея

Одно планерное орудие Госпера , создающее планеры .
Скриншот селекционера типа иглобрюха (красный), который оставляет за собой планерные пушки (зеленый), которые, в свою очередь, создают планеры (синий) ( анимация ).

Игра «Жизнь» , также известная просто как «Жизнь» , представляет собой клеточный автомат, изобретенный британским математиком Джоном Хортоном Конвеем в 1970 году. [1] Это игра с нулевым участием игроков , [2] [3] это означает, что ее эволюция определяется его исходное состояние, не требующее дальнейшего ввода. Человек взаимодействует с Игрой Жизни, создавая начальную конфигурацию и наблюдая, как она развивается. Он является полным по Тьюрингу и может моделировать универсальный конструктор или любую другую машину Тьюринга .

Правила

Вселенная Игры Жизни представляет собой бесконечную двумерную ортогональную сетку квадратных ячеек , каждая из которых находится в одном из двух возможных состояний: живом или мертвом (или заселенном и незаселенном соответственно). Каждая ячейка взаимодействует со своими восемью соседями , то есть ячейками, соседними по горизонтали, вертикали или диагонали. На каждом этапе времени происходят следующие переходы:

  1. Любая живая клетка, имеющая менее двух живых соседей, погибает, как бы от недопопуляции.
  2. Любая живая клетка с двумя или тремя живыми соседями доживает до следующего поколения.
  3. Любая живая клетка, имеющая более трёх живых соседей, погибает, как бы от перенаселения.
  4. Любая мертвая клетка, имеющая ровно три живых соседа, становится живой клеткой, как бы путем размножения.

Исходный шаблон представляет собой зародыш системы. Первое поколение создается путем одновременного применения вышеуказанных правил к каждой клетке семени, живой или мертвой; рождения и смерти происходят одновременно, и дискретный момент, в который это происходит, иногда называют тиком . [nb 1] Каждое поколение является чистой функцией предыдущего. Правила продолжают применяться неоднократно для создания следующих поколений.

Происхождение

Станислав Улам , работая в Лос-Аламосской национальной лаборатории в 1940-х годах, изучал рост кристаллов, используя в качестве модели простую решетчатую сетку . [7] В то же время Джон фон Нейман , коллега Улама в Лос-Аламосе, работал над проблемой самовоспроизводящихся систем . [8] : 1  Первоначальный проект фон Неймана был основан на идее, что один робот строит другого робота. Эта конструкция известна как кинематическая модель. [9] [10] Разрабатывая эту конструкцию, фон Нейман осознал огромную сложность создания самовоспроизводящегося робота и высокую стоимость обеспечения робота «морем деталей», из которого можно построить его реплику. . Нейман написал статью под названием «Общая и логическая теория автоматов» для Хиксонского симпозиума в 1948 году. [8] : 1  Улам был тем, кто предложил использовать дискретную систему для создания редукционистской модели самовоспроизведения. [8] : 3  [11] : xxix  Улам и фон Нейман создали метод расчета движения жидкости в конце 1950-х годов. Основная концепция метода заключалась в том, чтобы рассматривать жидкость как группу дискретных единиц и рассчитывать движение каждой из них на основе поведения ее соседей. [12] : 8  Так родилась первая система клеточных автоматов. Как и решетчатая сеть Улама, клеточные автоматы фон Неймана двумерны, а его саморепликатор реализован алгоритмически. В результате получился универсальный копировальный аппарат и конструктор , работающий внутри клеточного автомата с небольшой окрестностью (соседями являются только те ячейки, которые соприкасаются; для клеточных автоматов фон Неймана — только ортогональные ячейки) и с 29 состояниями на ячейку. Фон Нейман предоставил доказательство существования того, что определенный образец может создавать бесконечные копии самого себя в данной клеточной вселенной, разработав конфигурацию из 200 000 ячеек, которая могла это делать. Эта конструкция известна как модель тесселяции и называется универсальным конструктором фон Неймана . [13]

Вдохновленный вопросами математической логики и частично работами Улама над играми-симуляторами, Джон Конвей в 1968 году начал проводить эксперименты с множеством различных двумерных правил клеточных автоматов. Первоначальной целью Конвея было создание интересного и непредсказуемого клеточного автомата. [3] По словам Мартина Гарднера , Конвей экспериментировал с различными правилами, стремясь создать правила, которые позволили бы шаблонам «по-видимому» расти без ограничений, в то же время затрудняя доказательство того , что какой-либо конкретный шаблон будет делать это. Более того, некоторые «простые исходные шаблоны» должны «разрастаться и изменяться в течение значительного периода времени», прежде чем принять статическую конфигурацию или повторяющийся цикл. [1] Позже Конвей писал, что основной мотивацией Жизни было создание «универсального» клеточного автомата. [14] [ нужен лучший источник ]

Игра впервые появилась публично в октябрьском выпуске журнала Scientific American за 1970 год в колонке Мартина Гарднера « Математические игры », основанной на личных беседах с Конвеем. Теоретически Игра «Жизнь» обладает мощью универсальной машины Тьюринга : все, что можно вычислить алгоритмически , можно вычислить в рамках «Игры жизни». [15] [2] Гарднер писал: «Из-за аналогий жизни с взлетом, падением и изменениями общества живых организмов, она принадлежит к растущему классу так называемых «игр-симуляторов» (игр, которые напоминают реальную жизнь). процессы)». [1]

С момента публикации «Игра жизни» вызвала большой интерес из-за удивительных путей развития закономерностей. Это дает пример возникновения и самоорганизации . [3] Версия жизни, включающая случайные флуктуации, использовалась в физике для изучения фазовых переходов и неравновесной динамики . [16] Игра также может служить дидактической аналогией , используемой для передачи несколько парадоксальной идеи о том, что дизайн и организация могут возникнуть спонтанно в отсутствие дизайнера. Например, философ Дэниел Деннетт широко использовал аналогию «вселенной» Игры Жизни, чтобы проиллюстрировать возможную эволюцию сложных философских конструкций, таких как сознание и свободная воля , из относительно простого набора детерминистских физических законов, которые могли бы управлять нашей Вселенной. . [17] [18] [19]

Популярности «Игры жизни» способствовало ее появление одновременно со все более дешевым доступом к компьютеру. На этих машинах игру можно было запускать часами, иначе ночью они остались бы неиспользованными. В этом отношении это предвещало более позднюю популярность фракталов , генерируемых компьютером . Для многих «Игра жизни» была просто задачей программирования: интересным способом использовать потраченные впустую циклы процессора . Однако для некоторых Игра Жизни имела более философский подтекст. На протяжении 1970-х годов и позже у него возник культ; текущие разработки зашли так далеко, что создали теоретические эмуляции компьютерных систем в рамках доски «Игра жизни». [20] [21]

Примеры шаблонов

В Игре Жизни встречается множество различных типов паттернов, которые классифицируются в зависимости от их поведения. К распространенным типам узоров относятся: натюрморты , которые не меняются от поколения к поколению; осцилляторы , возвращающиеся в исходное состояние через конечное число поколений; и космические корабли , которые перемещаются по сетке.

Самые ранние интересные закономерности Игры Жизни были обнаружены без использования компьютеров. Простейшие натюрморты и осцилляторы были обнаружены при отслеживании судеб различных небольших стартовых конфигураций с помощью миллиметровой бумаги , классных досок и физических игровых досок, например тех, что используются в Го . В ходе этого раннего исследования Конвей обнаружил, что R- пентамино не удалось стабилизироваться за небольшое количество поколений. Фактически, чтобы стабилизироваться, требуется 1103 поколения, и к этому времени его население составляет 116 человек, и оно произвело шесть ускользающих планеров ; [22] это были первые когда-либо обнаруженные космические корабли. [23]

Часто встречающиеся [24] [25] примеры (в том смысле, что они часто возникают из случайной начальной конфигурации клеток) трех вышеупомянутых типов паттернов показаны ниже: живые клетки показаны черным цветом, а мертвые клетки - белым. Период относится к количеству тиков, которые шаблон должен пройти, прежде чем вернуться к своей первоначальной конфигурации.

Пульсар [26] является наиболее распространенным осциллятором с периодом 3 . Подавляющее большинство встречающихся в природе осцилляторов имеют период 2, как мигалка и жаба, но известно, что существуют осцилляторы всех периодов [27] [28] [29] и осцилляторы с периодами 4, 8, 14, 15. , 30 и некоторые другие, как было замечено, возникают из-за случайных начальных условий. [30] Паттерны, которые развиваются в течение длительного периода времени, прежде чем стабилизироваться, называются Мафусаилами , первым из которых было обнаружено R-пентамино. Diehard — это паттерн, который в конечном итоге исчезает, а не стабилизируется, после 130 поколений, что, как предполагается, является максимальным для стартовых паттернов с семью или меньшим количеством ячеек. [31] Желуди требуется 5206 поколений, чтобы создать 633 клетки, включая 13 сбежавших планеров. [32]

Первоначально Конвей предположил, что ни одна структура не может расти бесконечно, т. е. что для любой начальной конфигурации с конечным числом живых клеток популяция не может вырасти за пределы некоторого конечного верхнего предела. В первоначальном появлении игры в «Математических играх» Конвей предложил приз в пятьдесят долларов (что эквивалентно 380 долларам в 2022 году) первому человеку, который сможет доказать или опровергнуть гипотезу до конца 1970 года. Приз был выигран в ноябре команда Массачусетского технологического института под руководством Билла Госпера ; «Gosper Glider Gun» производит свой первый планер 15-го поколения, а с тех пор еще один планер каждого 30-го поколения. В течение многих лет эта планерная пушка была самой маленькой из известных. [33] В 2015 году было обнаружено оружие под названием «Пушка-планер Симкина», которое выпускает планер каждые 120-е поколение, в котором меньше живых клеток, но которое распределено по большей ограничивающей рамке на своих концах. [34]

Позже были обнаружены модели меньшего размера, которые также демонстрируют бесконечный рост. Все три модели, показанные ниже, растут бесконечно. Первые два создают единый движок переключения блоков : конфигурация, которая оставляет после себя блоки натюрморта два на два, перемещаясь по вселенной игры. [35] Третья конфигурация создает два таких шаблона. Первый имеет всего десять живых клеток, что, как было доказано, минимально. [36] Второй умещается в квадрате пять на пять, а третий имеет высоту всего одну клетку.

Более поздние открытия включали другие стационарные орудия , из которых производятся планеры или другие космические корабли; пуховые поезда , которые движутся, оставляя за собой след из мусора; и грабли , которые двигают и выбрасывают космические корабли. [37] Госпер также построил первую модель с асимптотически оптимальной квадратичной скоростью роста , названную заводчиком или омаром , которая работала, оставляя после себя след из оружия.

Планеры могут интересным образом взаимодействовать с другими объектами. Например, если два планера стреляют по блоку в определенной позиции, блок переместится ближе к источнику планеров. Если три планера выстрелят правильно, блок отодвинется дальше. Эту память скользящего блока можно использовать для имитации счетчика . Можно построить логические элементы , такие как И , ИЛИ и НЕ , используя планеры. Можно построить шаблон, который действует как конечный автомат , подключенный к двум счетчикам. Он обладает той же вычислительной мощностью, что и универсальная машина Тьюринга , поэтому Игра Жизни теоретически столь же мощна, как и любой компьютер с неограниченной памятью и без ограничений по времени; оно полно по Тьюрингу . [15] [2] Фактически, в «Игре жизни» было реализовано несколько различных программируемых компьютерных архитектур [38] [39] , включая шаблон, имитирующий тетрис . [40]

Более того, шаблон может содержать набор орудий, стреляющих из планеров таким образом, чтобы создавать новые объекты, включая копии исходного шаблона. Можно построить универсальный конструктор, содержащий полный по Тьюрингу компьютер и способный создавать множество типов сложных объектов, включая большее количество своих копий . [2]

В 2018 году Адам П. Гушер обнаружил первое по-настоящему элементарное рыцарство, сэра Робина. [41] Рыцарский корабль — это космический корабль, который перемещается на две клетки влево на каждую клетку, которую он перемещает вниз (как конь в шахматах ), а не движется ортогонально или по диагонали 45 °. Это первая новая схема движения элементарного космического корабля, обнаруженная за сорок восемь лет. «Элементарный» означает, что его нельзя разложить на более мелкие взаимодействующие узоры, такие как планеры и натюрморты. [42]

Неразрешимость

Многие узоры в Игре Жизни со временем становятся комбинацией натюрмортов, осцилляторов и космических кораблей; другие закономерности можно назвать хаотическими. Паттерн может оставаться хаотичным в течение очень долгого времени, пока в конечном итоге не сформируется такая комбинация.

Игра «Жизнь» неразрешима , а это означает, что при наличии первоначального шаблона и последующего шаблона не существует алгоритма, который мог бы сказать, появится ли когда-либо более поздний шаблон. Учитывая, что Игра «Жизнь» является полной по Тьюрингу, это является следствием проблемы остановки : проблемы определения, завершит ли данная программа выполнение или продолжит работать вечно на основе начального ввода. [2]

Косые космические корабли

До 2010-х годов все известные космические корабли могли двигаться только ортогонально или по диагонали, тогда как существование моделей движения, которые движутся подобно рыцарям, предсказывал Элвин Берлекамп с 1982 года. Космические корабли, которые не движутся ни ортогонально, ни по диагонали, обычно называют наклонными космическими кораблями [43] ] [44] . 18 мая 2010 года Эндрю Дж. Уэйд анонсировал первый наклонный космический корабль, получивший название «Близнецы», который создает копию самого себя на (5,1) дальше, одновременно уничтожая своего родителя. [45] [44] Этот шаблон повторяется в 34 миллионах поколений и использует ленту инструкций, состоящую из планеров, колеблющихся между двумя стабильными конфигурациями, состоящими из конструкционных рычагов Чепмена-Грина. Они, в свою очередь, создают новые копии шаблона и уничтожают предыдущую копию. В декабре 2015 года были построены диагональные версии Gemini. [46]

Самовоспроизведение

23 ноября 2013 года Дэйв Грин построил первый репликатор в «Игре жизни», который создает полную копию самого себя, включая ленту с инструкциями. [47] В октябре 2018 года Адам П. Гоучер завершил создание метаклетки 0E0P, метаклетки, способной к самовоспроизведению. Это отличалось от предыдущих метаячеек, таких как метапиксель OTCA от Brice Due, который работал только с уже построенными рядом с ними копиями. Метаячейка 0E0P работает, используя конструкторы для создания копий, имитирующих запрограммированное правило. [48] ​​Фактическое моделирование «Игры жизни» или других правил соседства Мура осуществляется путем моделирования эквивалентного правила с использованием соседства фон Неймана с большим количеством состояний. [49] Название 0E0P является сокращением от «Zero Encoded by Zero Population», что указывает на то, что вместо того, чтобы метаячейка находилась в «выключенном» состоянии, имитируя пустое пространство, метаячейка 0E0P удаляется, когда ячейка входит в это состояние, оставляя пустое пространство. космос. [50]

Итерация

Судя по большинству случайных исходных образцов живых клеток на сетке, наблюдатели обнаружат, что популяция постоянно меняется по мере смены поколений. Закономерности, возникающие из простых правил, можно считать формой математической красоты . Небольшие изолированные подструктуры без начальной симметрии имеют тенденцию становиться симметричными. Как только это произойдет, симметрия может стать более богатой, но ее нельзя будет потерять, если только соседний подшаблон не подойдет достаточно близко, чтобы нарушить ее. В очень немногих случаях общество в конечном итоге вымирает, при этом все живые клетки исчезают, хотя этого может и не произойти в течение очень многих поколений. Большинство первоначальных паттернов со временем выгорают, создавая либо стабильные фигуры, либо паттерны, которые вечно колеблются между двумя или более состояниями; [51] [52] многие из них также производят один или несколько планеров или космических кораблей, которые улетают на неопределенное время от исходного местоположения. Из-за правил, основанных на ближайшем соседе, никакая информация не может проходить через сетку со скоростью, большей, чем одна ячейка в единицу времени, поэтому эта скорость называется скоростью света клеточного автомата и обозначается c .

Алгоритмы

Ранние паттерны с неизвестным будущим, такие как R-пентамино, побудили программистов писать программы для отслеживания эволюции паттернов в Игре Жизни. Большинство ранних алгоритмов были похожими: они представляли шаблоны в виде двумерных массивов в памяти компьютера. Обычно используются два массива: один для хранения текущего поколения, а другой для вычисления его преемника. Часто 0 и 1 обозначают мертвые и живые клетки соответственно. Вложенный цикл for поочередно рассматривает каждый элемент текущего массива, подсчитывая живых соседей каждой ячейки, чтобы решить, должен ли соответствующий элемент массива-преемника иметь значение 0 или 1. Массив-преемник отображается. Для следующей итерации массивы могут поменяться ролями, так что массив-преемник на последней итерации станет текущим массивом на следующей итерации, или можно скопировать значения второго массива в первый массив, а затем обновить второй массив из первого. массив снова.

Возможны различные незначительные улучшения этой базовой схемы, и существует множество способов избежать ненужных вычислений. Ячейка, которая не изменилась на последнем временном шаге и ни один из соседей которой не изменился, гарантированно не изменится и на текущем временном шаге, поэтому программа, которая отслеживает, какие области активны, может сэкономить время, не обновляя неактивные. зоны. [53]

Игра жизни на поверхности узла-трилистника
Игра жизни на поверхности тороидального узла-трилистника.

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

Для экономии памяти хранилище можно сократить до одного массива плюс два строковых буфера. Один буфер строки используется для расчета состояния преемника для строки, затем второй буфер строки используется для расчета состояния преемника для следующей строки. Затем первый буфер записывается в его строку и освобождается для хранения состояния-преемника для третьей строки. Если используется тороидальный массив, необходим третий буфер, чтобы можно было сохранить исходное состояние первой строки массива до тех пор, пока не будет вычислена последняя строка.

Планерная пушка внутри тороидальной решетки. Поток планеров в конечном итоге обтекает и уничтожает орудие.
Красный планер на квадратной решетке с периодическими граничными условиями

В принципе, поле «Игры Жизни» бесконечно, но память компьютеров ограничена. Это приводит к проблемам, когда активная область выходит за границу массива. Программисты использовали несколько стратегий для решения этих проблем. Самая простая стратегия — предположить, что каждая ячейка вне массива мертва. Это легко запрограммировать, но приводит к неточным результатам, когда активная область пересекает границу. Более сложный трюк состоит в том, чтобы считать левый и правый края поля сшитыми вместе, а также верхний и нижний края, образуя тороидальный массив. В результате активные области, перемещающиеся по краю поля, снова появляются на противоположном краю. Неточность все равно может возникнуть, если рисунок станет слишком большим, но патологических краевых эффектов не будет. Также можно использовать методы динамического распределения памяти, создавая все более крупные массивы для хранения растущих шаблонов. Иногда подробно изучается игра «Жизнь» на конечном поле; некоторые реализации, такие как Golly , поддерживают выбор стандартного бесконечного поля, поля, бесконечного только в одном измерении, или конечного поля с выбором топологий, таких как цилиндр, тор или лента Мёбиуса .

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

Для исследования больших закономерностей на больших временных глубинах могут быть полезны сложные алгоритмы, такие как Hashlife . Существует также метод реализации Игры Жизни и других клеточных автоматов с использованием произвольных асинхронных обновлений, в то же время точно имитируя поведение синхронной игры. [54] Примеры исходного кода , реализующие базовый сценарий «Игры жизни» на различных языках программирования, включая C , C++ , Java и Python , можно найти на сайте Rosetta Code . [55]

Вариации

С момента создания Игры Жизни были разработаны новые подобные клеточные автоматы. Стандартная Игра Жизни обозначается в виде строки правил как B3/S23. Клетка рождается, если у нее ровно три соседа, выживает, если у нее есть два или три живых соседа, и умирает в противном случае. Первое число или список чисел — это то, что необходимо для рождения мертвой клетки. Второй набор — это требования, необходимые живой клетке для выживания до следующего поколения. Следовательно, B6/S16 означает «клетка рождается, если есть шесть соседей, и живет, если есть один или шесть соседей». Клеточные автоматы на двумерной сетке, которые можно описать таким образом, известны как клеточные автоматы, подобные жизни . Другой распространенный автомат, похожий на жизнь, Highlife , описывается правилом B36/S23, поскольку наличие шести соседей в дополнение к правилу B3/S23 исходной игры приводит к рождению. HighLife наиболее известна своими часто встречающимися репликаторами. [56] [57]

Существуют дополнительные жизнеподобные клеточные автоматы. Подавляющее большинство из этих 218 различных правил [58] создают вселенные, которые либо слишком хаотичны, либо слишком пустынны, чтобы представлять интерес, но большое подмножество действительно демонстрирует интересное поведение. Дальнейшее обобщение приводит к изотропному пространству правил с 2102 возможными правилами клеточного автомата [59] (Игра Жизни снова является одним из них). Это правила, которые используют ту же квадратную сетку, что и правила Life-like, и ту же окрестность из восьми ячеек, а также инвариантны при вращении и отражении. Однако в изотропных правилах при определении будущего состояния ячейки могут учитываться положения соседних ячеек относительно друг друга, а не только общее количество этих соседей.

Образец 48-ступенчатого осциллятора вместе с 2-ступенчатым осциллятором и 4-ступенчатым осциллятором из двумерной шестиугольной игры «Жизнь» (правило H:B2/S34)

Некоторые варианты Игры Жизни изменяют геометрию Вселенной, а также правила. Вышеупомянутые варианты можно рассматривать как двумерный квадрат, поскольку мир двумерен и расположен в виде квадратной сетки. Были разработаны одномерные квадратные варианты, известные как элементарные клеточные автоматы [60] , и трехмерные квадратные варианты, а также двумерные шестиугольные и треугольные варианты. Также был сделан вариант с использованием апериодических мозаичных сеток. [61]

Правила Конвея также можно обобщить так, что вместо двух состояний, живого и мертвого , будет три или более. Переходы между состояниями затем определяются либо с помощью системы взвешивания, либо с помощью таблицы, определяющей отдельные правила перехода для каждого состояния; например, разноцветная таблица правил Mirek's Cellebration и семейства правил Weighted Life включают образцы правил, эквивалентных игре в жизнь.

Паттерны, относящиеся к фракталам и фрактальным системам, также можно наблюдать в некоторых вариациях, подобных Жизни. Например, автомат B1/S12 генерирует четыре очень близких приближения к треугольнику Серпинского при применении к одной живой ячейке. Треугольник Серпинского также можно наблюдать в «Игре жизни», исследуя долгосрочный рост бесконечно длинной линии живых клеток толщиной в одну клетку [62] , а также в Highlife, Seeds (B2/S) и Правило Вольфрама 90 . [63]

Иммиграция — это вариант, который очень похож на «Игру жизни», за исключением того, что есть два штата , часто обозначаемые двумя разными цветами. Всякий раз, когда рождается новая клетка, она принимает состояние «включено», которое составляет большинство из трех клеток, которые ее породили. Эту функцию можно использовать для изучения взаимодействия между космическими кораблями и другими объектами в игре. [64] Другой аналогичный вариант, называемый QuadLife, включает в себя четыре различных состояния включения. Когда новая ячейка рождается от трех разных соседей, она принимает четвертое значение, а в противном случае, как и иммиграция, она принимает мажоритарное значение. [65] За исключением различий между клетками, оба эти варианта действуют идентично Игре Жизни.

Музыка

Различные техники музыкальной композиции используют «Игру жизни», особенно в MIDI- секвенциях. [66] Существует множество программ для создания звука из шаблонов, созданных в Игре Жизни. [67] [68] [69]

Известные программы

The 6 366 548 773 467 669 985 195 496 000 тыс . (6 × 1027 ) поколение машины Тьюринга , созданное в игре Life, вычисленное менее чем за 30 секунд на процессоре Intel Core Duo 2 ГГц с использованием Golly в режиме Hashlife

Компьютеры использовались для отслеживания и моделирования «Игры жизни» с момента ее первого опубликования. Когда Джон Конвей впервые исследовал развитие различных стартовых конфигураций, он отслеживал их вручную, используя доску с черными и белыми камнями. Это было утомительно и чревато ошибками. Первая интерактивная программа Game of Life была написана в ранней версии ALGOL 68C для PDP-7 MJT Guy и SR Bourne . Результаты были опубликованы в октябрьском номере журнала Scientific American за 1970 год вместе с заявлением: «Без его помощи некоторые открытия об игре было бы трудно сделать». [1]

Цветная версия «Игры жизни» была написана Эдом Холлом в 1976 году для микрокомпьютеров Cromemco , а изображение этой программы заполнило обложку июньского номера журнала Byte за 1976 год . [70] Появление цветной графики на базе микрокомпьютеров от Cromemco стало причиной возрождения интереса к игре. [71]

Две ранние реализации «Игры жизни» на домашних компьютерах были написаны Малкольмом Банторпом на BBC BASIC . Первый был в январском номере журнала Acorn User за 1984 год , а Банторп последовал за ним, выпустив трехмерную версию в майском номере 1984 года. [72] Сьюзен Степни, профессор компьютерных наук в Университете Йорка , в 1988 году развила эту идею, создав Life on the Line — программу, которая генерировала одномерные клеточные автоматы. [73]

Сейчас в сети существуют тысячи программ Game of Life, поэтому полный список здесь не приводится. Ниже приводится небольшая подборка программ, претендующих на особую известность, например популярность или необычные функции. Большинство этих программ включают в себя графический интерфейс пользователя для редактирования и моделирования шаблонов, возможность моделирования нескольких правил, включая «Игру жизни», а также большую библиотеку интересных шаблонов «Игры жизни» и других правил клеточных автоматов.

Google реализовал пасхальное яйцо Game of Life в 2012 году. Пользователям, выполняющим поиск по этому запросу, на странице результатов поиска отображается реализация игры. [76]

Визуальный роман Anonymous;Code включает в себя базовую реализацию Игры Жизни, связанную с сюжетом романа. Ближе к концу Anonymous;Code для завершения игры в Game of Life необходимо ввести определенный узор, который появляется на протяжении всей игры в виде татуировки на героине Момо Айзаки (галактика Кока, тот же узор, который используется в качестве логотипа для программа Game of Life с открытым исходным кодом Golly).

Смотрите также

Примечания

  1. ^ Одновременность означает, что когда каждая ячейка подсчитывает количество живых соседей вокруг нее, она использует старые состояния своих соседей до обновления, а не их новые состояния после обновления. Если вместо этого ячейки обновляются в порядке чтения, так что каждая ячейка использует старые состояния ячеек справа и под ней, но новые состояния ячеек слева и над ней, в результате получается другой клеточный автомат, который известен как как NaiveLife [4] [5] , потому что это распространенная ошибка новичков среди людей, пытающихся программировать «Игру жизни» Конвея. [6]

Рекомендации

  1. ^ abcd Гарднер, Мартин (октябрь 1970 г.). «Фантастические комбинации нового пасьянса Джона Конвея «Жизнь»» (PDF) . Математические игры. Научный американец . Том. 223, нет. 4. С. 120–123. doi : 10.1038/scientificamerican1070-120. JSTOR  24927642. Архивировано (PDF) из оригинала 9 октября 2022 г.
  2. ^ abcde Берлекамп, ER ; Конвей, Джон Хортон ; Гай, РК (2001–2004 гг.). Пути победы в математических играх (2-е изд.). ООО "АК Питерс"
  3. ^ abc Ижикевич, Евгений М.; Конвей, Джон Х .; Сет, Анил (21 июня 2015 г.). «Игра жизни». Схоларпедия . 10 (6): 1816. Бибкод : 2015SchpJ..10.1816I. doi : 10.4249/scholarpedia.1816 . ISSN  1941-6016.
  4. ^ «Эмуляция NaiveLife: симуляция жизни в порядке чтения» . ConwayLife.com . 24 мая 2020 г. Проверено 29 ноября 2021 г.
  5. ^ Гучер, Адам. «Re: Тема для ваших случайных открытий». ConwayLife.com . Проверено 29 ноября 2021 г.
  6. ^ Ян07. «Re: Странный космический корабль, который должен быть невозможным и с бесконечным распространением клеток». ConwayLife.com . Проверено 29 ноября 2021 г. Я почти уверен, что это потому, что вы случайно создали реализацию того, что иногда называют NaiveLife (поскольку это распространенная ошибка, которую допускают многие люди, впервые кодирующие CGoL):{{cite web}}: CS1 maint: numeric names: authors list (link)
  7. ^ Пиковер, Клиффорд А. (2009). Книга по математике: от Пифагора до 57-го измерения, 250 вех в истории математики . Стерлинг Паблишинг Компани, Инк. 406. ИСБН 978-1402757969.
  8. ^ abc Шифф, Джоэл Л. (2011). Клеточные автоматы: дискретный взгляд на мир. ISBN Wiley & Sons, Inc. 9781118030639.
  9. ^ Джон фон Нейман, «Общая и логическая теория автоматов», в изд. Л.А. Джеффресса , «Церебральные механизмы в поведении» - Симпозиум Хиксона, John Wiley & Sons, Нью-Йорк, 1951, стр. 1–31.
  10. ^ Кемени, Джон Г. (1955). «Человек как машина». наук. Являюсь . 192 (4): 58–67. Бибкод : 1955SciAm.192d..58K. doi : 10.1038/scientificamerican0455-58.; наук. Являюсь. 1955 год; 192:6 (ошибка).
  11. ^ Илачински, Эндрю (2001). Клеточные автоматы: дискретная вселенная. Всемирная научная. ISBN 978-981-238-183-5.
  12. ^ Бялыницкий-Бирула, Иво; Бялыницка-Бирула, Ивона (2004). Моделирование реальности: как компьютеры отражают жизнь . Издательство Оксфордского университета . ISBN 978-0198531005.
  13. ^ фон Нейман, Джон; Беркс, Артур В. (1966). Теория самовоспроизводящихся автоматов. Издательство Университета Иллинойса .
  14. Конвей, частное сообщение в «Список жизни», 14 апреля 1999 г.
  15. ^ ab Это модель и симуляция, за которой интересно наблюдать, и которая может показать, что простые вещи могут стать сложными проблемами. Пол Чепмен (11 ноября 2002 г.). «Жизнь Универсальный Компьютер». Архивировано из оригинала 6 сентября 2009 года . Проверено 12 июля 2009 г.
  16. ^ Альстрем, Пребен; Леан, Жуан (1 апреля 1994 г.). «Самоорганизованная критичность в игре Жизни». Физический обзор E . 49 (4): Р2507–Р2508. Бибкод : 1994PhRvE..49.2507A. doi :10.1103/PhysRevE.49.R2507. ПМИД  9961636.
  17. ^ Деннетт, округ Колумбия (1991). Объяснение сознания . Бостон: Книги Бэк-Бэй. ISBN 978-0-316-18066-5.
  18. ^ Деннетт, округ Колумбия (1995). Опасная идея Дарвина: эволюция и смысл жизни . Нью-Йорк: Саймон и Шустер. ISBN 978-0-684-82471-0.
  19. ^ Деннетт, округ Колумбия (2003). Свобода развивается . Нью-Йорк: Книги Пингвина. ISBN 978-0-14-200384-8.
  20. Пол Ренделл (12 января 2005 г.). «Машина Тьюринга в игре жизни Конвея» . Проверено 12 июля 2009 г.
  21. ^ Адам П. Гучер. «Спартанский универсальный компьютер-конструктор». ЖизньВики . Проверено 5 декабря 2021 г.
  22. ^ "R-пентамино". ЖизньВики. 1983. С. 219, 223 . Проверено 5 декабря 2021 г.
  23. ^ Стивен А. Сильвер. "Планер". Жизненный лексикон . Проверено 4 марта 2019 г.
  24. ^ «Результаты переписи населения в игре жизни Конвея» . Реалистичный онлайн-поиск супа CA. Архивировано из оригинала 10 сентября 2009 г. Проверено 12 июля 2009 г.
  25. ^ «Спонтанно возникшие космические корабли из случайной пыли». Ахим Фламменкамп (9 декабря 1995 г.) . Проверено 10 июля 2012 г.
  26. ^ Стивен А. Сильвер. «Пульсар». Жизненный лексикон . Проверено 4 марта 2019 г.
  27. ^ Браун, Нико; Ченг, Карсон; Якоби, Таннер; Карпович, Майя; Мерцених, Матиас; Рауччи, Дэвид; Райли, Митчелл (5 декабря 2023 г.). «Игра жизни Конвея омнипериодична». arXiv : 2312.02799 [math.CO].
  28. ^ "LifeWiki: Страница статуса Game of Life - LifeWiki" . conwaylife.com . Проверено 16 декабря 2023 г.
  29. ^ Стоун, Алекс (18 января 2024 г.). «Математическая« Игра жизни »выявляет долгожданные повторяющиеся закономерности». Журнал Кванта . Проверено 18 января 2024 г.
  30. ^ Ахим Фламменкамп (7 сентября 2004 г.). «Самые встречающиеся в природе объекты из пепла в «Игре жизни»» . Проверено 16 сентября 2008 г.
  31. ^ Стивен А. Сильвер. "Живучи". Жизненный лексикон . Проверено 4 марта 2019 г.
  32. Кениг, Х. (21 февраля 2005 г.). «Новые отчеты Мафусаила». Архивировано из оригинала 10 сентября 2019 года . Проверено 24 января 2009 г.
  33. ^ Стивен А. Сильвер. «Планер Госпера». Жизненный лексикон . Проверено 4 марта 2019 г.
  34. ^ Охота на новые каналы Гершеля, форумы ConwayLife, 28 апреля 2015 г., сообщения Майкла Симкина («simsim314») и Донгука Ли («Скорби»).
  35. ^ "Блок-переключатель двигателя" . ЖизньВики . Проверено 5 декабря 2021 г.
  36. ^ Стивен А. Сильвер. «Бесконечный рост». Жизненный лексикон . Проверено 4 марта 2019 г.
  37. ^ Стивен А. Сильвер. "Грабли". Жизненный лексикон . Проверено 4 марта 2019 г.
  38. ^ «Программируемый компьютер». Форумы conwaylife.com . Проверено 23 августа 2018 г.
  39. ^ «Машина Тьюринга в игре жизни Конвея, расширяемая до универсальной машины Тьюринга» . Пол Ренделл . Проверено 23 августа 2018 г.
  40. ^ «Создайте рабочую игру Тетрис в «Игре жизни Конвея»» . СтекExchange . Проверено 23 августа 2018 г.
  41. ^ "Элементарное рыцарство" . Проверено 9 марта 2018 г.
  42. ^ «Элементарно», LifeWiki, получено 21 ноября 2018 г.
  43. Арон, Джейкоб (16 июня 2010 г.). «Первое копирующее существо, появившееся в симуляторе жизни». Новый учёный . Проверено 12 октября 2013 г.
  44. ^ ab "Близнецы - LifeWiki". Conwaylife.com . Проверено 16 октября 2013 г.
  45. ^ "Космический корабль на базе универсального конструктора" . Conwaylife.com . Проверено 24 июня 2012 г.
  46. ^ "Демоноид". ЖизньВики . Проверено 18 июня 2016 г.
  47. ^ "Вызов геминоидов". Conwaylife.com . Проверено 25 июня 2015 г.
  48. ^ Passe-Science (29 мая 2019 г.). «Автоматизация сотовой связи - устаревшая наука № 27». YouTube . Архивировано из оригинала 11 декабря 2021 г. Проверено 25 июня 2019 г.
  49. ^ апгучер (12 ноября 2018 г.). «Полностью самоуправляемая репликация». Комплексное проективное 4-пространство . Проверено 25 июня 2019 г.
  50. ^ "Метаклетка 0E0P - LifeWiki" . www.conwaylife.com . Проверено 24 июня 2019 г.
  51. ^ Анджей Окрасинский. «Статистика объектов игры в жизнь». Архивировано из оригинала 27 июля 2009 г. Проверено 12 июля 2009 г.
  52. ^ Натаниэль Джонстон. «Онлайн-поиск супа CA, похожий на жизнь». Архивировано из оригинала 10 сентября 2009 г. Проверено 12 июля 2009 г.
  53. ^ Алан Хенсель. «О моем апплете «Игра жизни Конвея»» . Проверено 12 июля 2009 г.
  54. ^ Неханив, Кристофер Л. (15–18 июля 2002 г.). Самовоспроизведение в асинхронных клеточных автоматах . Конференция НАСА/Министерства обороны 2002 года по развивающемуся оборудованию. Александрия, Вирджиния, США: Издательство IEEE Computer Society Press. стр. 201–209. дои : 10.1109/EH.2002.1029886. hdl : 2299/6834 . ISBN 0-7695-1718-8.
  55. ^ "Игра жизни Конвея".
  56. ^ HighLife - Интересный вариант жизни Дэвида Белла (zip-файл)
  57. ^ Стивен А. Сильвер. «Репликатор». Жизненный лексикон . Проверено 4 марта 2019 г.
  58. ^ "Жизнеподобные клеточные автоматы - LifeWiki" . Conwaylife.com . Проверено 4 марта 2019 г.
  59. ^ "Изотропный - LifeWiki" . Conwaylife.com . Проверено 4 марта 2019 г.
  60. ^ «Элементарный клеточный автомат». Вольфрам Математический мир . Проверено 12 июля 2009 г.
  61. ^ «Первые планеры путешествуют по постоянно меняющейся вселенной Пенроуза» . Новый учёный .
  62. ^ Стивен Вольфрам , «Новый вид науки онлайн», Примечание (f) для структур в системах класса 4: Структуры в игре жизни: «Более простой вид неограниченного роста происходит, если начинать с бесконечной линии черных клеток. В этом В этом случае эволюция фактически одномерна и подчиняется элементарному правилу 22».
  63. ^ «Жизнь подражает Серпинскому». Форумы ConwayLife.com . Проверено 12 июля 2009 г.
  64. ^ Стивен А. Сильвер. «Иммиграция». Жизненный лексикон . Проверено 4 марта 2019 г.
  65. ^ Стивен А. Сильвер. «КвадЛайф». Жизненный лексикон . Проверено 4 марта 2019 г.
  66. ^ Беррастон, Дэйв; Эдмондс, Эрнест; Ливингстон, Дэн; Миранда, Эдуардо Рек (2004). «Клеточные автоматы в компьютерной музыке на основе MIDI». Материалы Международной компьютерной музыкальной конференции 2004 года . CiteSeerX 10.1.1.6.3882 . HDL : 10453/1425. ISBN  9780971319226.
  67. ^ "glitchDS - Секвенсор клеточных автоматов для Nintendo DS" . Synthtopia.com. 29 мая 2008 г. Проверено 24 июня 2012 г.
  68. ^ "Музыкальный секвенсор Game Of Life" . Synthtopia.com. 29 апреля 2009 г. Проверено 24 июня 2012 г.
  69. ^ "Музыкальный секвенсор Game Of Life для iOS, Runxt Life" . Synthtopia.com. 12 января 2011 г. Проверено 24 июня 2012 г.
  70. ^ Хелмерс, Карл (июнь 1976 г.). «О обложке». Байт . № 10. С. 6–7 . Проверено 18 февраля 2013 г.
  71. ^ Макинтош, Гарольд (2008). «Введение» (PDF) . Журнал клеточных автоматов . 13 : 181–186. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 3 ноября 2021 г. С появлением микрокомпьютеров и графических плат Cromemco Life стала любимой программой отображения для видеомониторов и привела к возрождению интереса к игре.
  72. ^ "Сканы журнала пользователей Acorn" . Общественная библиотека BBC и Master Computer . Проверено 29 декабря 2018 г.
  73. ^ Степни, Сьюзен. «Пользовательские статьи Acorn». www-users.cs.york.ac.uk . Пользователь Acorn . Проверено 29 декабря 2018 г.
  74. ^ "Xlife".
  75. ^ "Бесплатное программное обеспечение Dr. Blob's Organism" .
  76. Вассерман, Тодд (12 июля 2012 г.). «Введите в Google «Игра жизни Конвея» и посмотрите, что произойдет». Машаемый . Проверено 1 мая 2020 г.

Внешние ссылки