Универсальный конструктор Джона фон Неймана — это самовоспроизводящаяся машина в среде клеточного автомата (КА). Она была разработана в 1940-х годах без использования компьютера. Основные детали машины были опубликованы в книге фон Неймана « Теория самовоспроизводящихся автоматов» , завершенной в 1966 году Артуром У. Берксом после смерти фон Неймана. [2] Она считается основополагающей для теории автоматов , сложных систем и искусственной жизни . [3] [4] Действительно, лауреат Нобелевской премии Сидней Бреннер считал работу фон Неймана по самовоспроизводящимся автоматам (вместе с работой Тьюринга по вычислительным машинам) центральной для биологической теории , позволяя нам «дисциплинировать наши мысли о машинах, как естественных, так и искусственных». [5]
Целью фон Неймана, как указано в его лекциях в Университете Иллинойса в 1949 году, [2] было спроектировать машину, сложность которой могла бы расти автоматически, подобно биологическим организмам в условиях естественного отбора . Он спросил, каков порог сложности , который необходимо преодолеть, чтобы машины смогли эволюционировать. [4] Его ответом было указать абстрактную машину, которая при запуске будет воспроизводить себя. В его конструкции самовоспроизводящаяся машина состоит из трех частей: «описания» («чертежа» или программы для) себя, универсального конструкторского механизма, который может читать любое описание и конструировать машину (без описания), закодированную в этом описании, и универсальной копировальной машины , которая может делать копии любого описания. После того, как универсальный конструктор был использован для построения новой машины, закодированной в описании, копировальная машина используется для создания копии этого описания, и эта копия передается новой машине, в результате чего получается рабочая репликация исходной машины, которая может продолжать воспроизводиться. Некоторые машины будут делать это в обратном порядке, копируя описание и затем строя машину. Важно то, что самовоспроизводящаяся машина может развиваться, накапливая мутации описания, а не самой машины, таким образом получая возможность расти в сложности. [4] [5]
Чтобы более подробно описать свою машину, фон Нейман придумал концепцию клеточного автомата . Тот , который он использовал, состоит из двумерной сетки ячеек, каждая из которых может находиться в одном из 29 состояний в любой момент времени. На каждом временном шаге каждая ячейка обновляет свое состояние в зависимости от состояний окружающих ячеек на предыдущем временном шаге. Правила, управляющие этими обновлениями, идентичны для всех ячеек.
Универсальный конструктор — это определенный шаблон состояний клеток в этом клеточном автомате. Он содержит одну строку клеток, которые служат описанием (похоже на ленту Тьюринга ), кодируя последовательность инструкций, которые служат «чертежом» для машины. Машина считывает эти инструкции одну за другой и выполняет соответствующие действия. Инструкции предписывают машине использовать ее «строительную руку» (другой автомат, который функционирует как операционная система [4] ) для построения копии машины без ленты описания в каком-то другом месте сетки клеток. Описание не может содержать инструкции для построения столь же длинной ленты описания, так же как контейнер не может содержать контейнер того же размера. Поэтому машина включает отдельную копировальную машину, которая считывает ленту описания и передает копию вновь построенной машине. Полученный новый набор универсального конструктора и копировальных машин плюс лента описания идентичен старому, и он продолжает реплицироваться снова.
Традиционно дизайн фон Неймана понимался как демонстрация логических требований к саморепликации машины. [3] Однако очевидно, что гораздо более простые машины могут достичь саморепликации. Примерами служат тривиальный рост кристаллов , репликация шаблонов и петли Лэнгтона . Но фон Неймана интересовало нечто более глубокое: конструкция, универсальность и эволюция. [4] [5]
Обратите внимание, что более простые самовоспроизводящиеся структуры CA (особенно петля Байла и петля Чжоу-Реджиа ) не могут существовать в широком разнообразии форм и, таким образом, имеют очень ограниченную способность к развитию . Другие структуры CA, такие как Evoloop, в некоторой степени способны к развитию, но все же не поддерживают открытую эволюцию. Обычно простые репликаторы не полностью содержат механизмы построения, поскольку существует степень, в которой репликатор является информацией, скопированной его окружающей средой. Хотя конструкция фон Неймана является логической конструкцией, в принципе это конструкция, которая может быть реализована как физическая машина. Действительно, этот универсальный конструктор можно рассматривать как абстрактную симуляцию физического универсального ассемблера . Вопрос о вкладе окружающей среды в репликацию является несколько открытым, поскольку существуют различные концепции сырья и его доступности.
Ключевое понимание фон Неймана заключается в том, что описание машины, которая копируется и передается потомству отдельно через универсальный копировальный аппарат, имеет двойное применение: будучи и активным компонентом строительного механизма в воспроизводстве, и целью пассивного процесса копирования. Эту роль играет описание (сродни ленте инструкций Тьюринга ) в комбинации фон Неймана универсального конструктора и универсального копировального аппарата. [4] Комбинация универсального конструктора и копировального аппарата, плюс лента инструкций, концептуализирует и формализует i) саморепликацию и ii) открытую эволюцию или рост сложности, наблюдаемый в биологических организмах. [3]
Это понимание тем более примечательно, что оно предшествовало открытию структуры молекулы ДНК Уотсоном и Криком и того, как она отдельно транслируется и реплицируется в клетке, — хотя оно последовало за экспериментом Эвери–Маклеода–Маккарти , который определил ДНК как молекулярный носитель генетической информации в живых организмах. [6] Молекула ДНК обрабатывается отдельными механизмами, которые выполняют ее инструкции ( трансляцию ) и копируют ( реплицируют ) ДНК для вновь созданных клеток. Возможность достижения открытой эволюции заключается в том, что, как и в природе, ошибки ( мутации ) при копировании генетической ленты могут привести к жизнеспособным вариантам автомата, которые затем могут эволюционировать посредством естественного отбора . [4] Как выразился Бреннер:
Тьюринг изобрел компьютер с хранимой программой, а фон Нейман показал, что описание отделено от универсального конструктора. Это нетривиально. Физик Эрвин Шредингер перепутал программу и конструктор в своей книге 1944 года «Что такое жизнь?», в которой он рассматривал хромосомы как «план архитектора и ремесло строителя в одном». Это неверно. Скрипт кода содержит только описание исполнительной функции, а не саму функцию. [5]
Целью фон Неймана, как указано в его лекциях в Университете Иллинойса в 1949 году, [2] было спроектировать машину, сложность которой могла бы расти автоматически, подобно биологическим организмам в условиях естественного отбора . Он задался вопросом, каков порог сложности , который необходимо преодолеть, чтобы машины могли развиваться и усложняться. [4] [3] Его «доказательства принципа» показали, как это логически возможно. Используя архитектуру, которая отделяет программируемый («универсальный») конструктор общего назначения от копировального устройства общего назначения, он показал, как описания (ленты) машин могут накапливать мутации при саморепликации и, таким образом, развивать более сложные машины (изображение ниже иллюстрирует эту возможность). Это очень важный результат, поскольку до этого можно было предположить, что существует фундаментальный логический барьер для существования таких машин; в этом случае биологические организмы, которые развиваются и усложняются, не могут быть «машинами», как это обычно понимается. Идея фон Неймана состояла в том, чтобы представить жизнь как машину Тьюринга, которая аналогичным образом определяется машинной «головкой» с определенным состоянием, отделенной от ленты памяти. [5]
На практике, когда мы рассматриваем конкретную реализацию автоматов, к которой стремился фон Нейман, мы приходим к выводу, что она не обеспечивает большой эволюционной динамики, поскольку машины слишком хрупки — подавляющее большинство возмущений фактически приводят к их распаду. [3] Таким образом, именно концептуальная модель, изложенная в его лекциях в Иллинойсе [2] , сегодня представляет больший интерес, поскольку она показывает, как машина может в принципе эволюционировать. [7] [4] Это понимание тем более примечательно, что модель предшествовала открытию структуры молекулы ДНК, как обсуждалось выше. [6] Также следует отметить, что дизайн фон Неймана предполагает, что мутации в сторону большей сложности должны происходить в (описаниях) подсистем, не вовлеченных в самовоспроизведение, как это концептуализировал дополнительный автомат D, который, как он считал, выполняет все функции, не вовлеченные напрямую в воспроизводство (см. рисунок выше с Системой саморепликационных автоматов фон Неймана со способностью к эволюции). Действительно, в биологических организмах наблюдались только очень незначительные изменения генетического кода, что соответствует обоснованию фон Неймана о том, что универсальный конструктор ( A ) и копировщик ( B ) сами по себе не будут эволюционировать, оставляя всю эволюцию (и рост сложности) автомату D. [4] В своей незаконченной работе фон Нейман также кратко рассматривает конфликт и взаимодействие между своими самовоспроизводящимися машинами, с целью понимания эволюции экологических и социальных взаимодействий из своей теории самовоспроизводящихся машин. [2] : 147
В теории автоматов концепция универсального конструктора нетривиальна из-за существования шаблонов Эдемского сада (конфигураций, не имеющих предшественника). Но простое определение заключается в том, что универсальный конструктор способен построить любой конечный шаблон невозбужденных (покоящихся) ячеек.
Артур Беркс и другие расширили работу фон Неймана, предоставив гораздо более четкий и полный набор деталей относительно конструкции и работы саморепликатора фон Неймана. Работа Дж. У. Тэтчера особенно примечательна, поскольку он значительно упростил конструкцию. Тем не менее, их работа не дала полной конструкции, клетка за клеткой, конфигурации, способной продемонстрировать саморепликацию.
Ренато Нобили и Умберто Песавенто опубликовали первый полностью реализованный самовоспроизводящийся клеточный автомат в 1995 году, почти через пятьдесят лет после работы фон Неймана. [1] [8] Они использовали 32-стабильный клеточный автомат вместо оригинальной 29-стабильной спецификации фон Неймана , расширив ее для обеспечения более легкого пересечения сигналов, явной функции памяти и более компактной конструкции. Они также опубликовали реализацию общего конструктора в рамках оригинального 29-стабильного CA, но не способного к полной репликации — конфигурация не может дублировать свою ленту и не может запускать свое потомство; конфигурация может только конструировать. [8] [9]
В 2004 году Д. Манге и др. сообщили о реализации саморепликатора, соответствующего проектам фон Неймана. [10]
В 2007 году Нобили опубликовал 32-стадийную реализацию, которая использует кодирование длин серий для значительного уменьшения размера ленты. [11]
В 2008 году Уильям Р. Бакли опубликовал две конфигурации, которые являются саморепликаторами в пределах исходного 29-стабильного клеточного автомата фон Неймана. [9] Бакли утверждает, что пересечение сигнала в 29-стабильных клеточных автоматах фон Неймана не является необходимым для построения саморепликаторов. [9] Бакли также указывает, что в целях эволюции каждый репликатор должен возвращаться к своей исходной конфигурации после репликации, чтобы иметь возможность (теоретически) создавать более одной копии. Согласно опубликованным данным, дизайн Нобили-Песавенто 1995 года не удовлетворяет этому требованию, но дизайн Нобили 2007 года удовлетворяет; то же самое относится и к конфигурациям Бакли.
В 2009 году Бакли опубликовал с Голли третью конфигурацию для клеточных автоматов фон Неймана с 29 состояниями, которые могут выполнять либо целостную саморепликацию, либо саморепликацию путем частичного построения. Эта конфигурация также демонстрирует, что пересечение сигналов не является необходимым для построения саморепликаторов в клеточных автоматах фон Неймана с 29 состояниями.
CL Nehaniv в 2002 году, а также Y. Takada и др. в 2004 году предложили универсальный конструктор, непосредственно реализованный на асинхронном клеточном автомате, а не на синхронном клеточном автомате. [12] [13]
Выполнение | Источник | Набор правил | Прямоугольная область | Количество ячеек | Длина ленты | Соотношение | Период | Сжатие ленточного кода | Длина кода ленты | Тип кода ленты | Механизм репликации | Тип репликации | Темпы роста |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Нобили-Песавенто, 1995 [1] | . [1] | Нобили 32-штатный | 97 × 170 | 6,329 | 145,315 | 22.96 | 6,34 × 10 10 | никто | 5 бит | двоичный | Целостный конструктор | неповторимый | линейный |
Нобили, 2007 | SR_CCN_AP.EVN [11] | Нобили 32-штатный | 97 × 100 | 5,313 | 56,325 | 10.60 | 9,59 × 10 9 | кодирование с ограниченной длиной отрезка | 5 бит | двоичный | Целостный конструктор | повторяемый | суперлинейный |
Бакли, 2008 г. | кодон5.rle [14] | Нобили 32-штатный | 112 × 50 | 3,343 | 44,155 | 13.21 | 5,87 × 10 9 | авто-ретракция | 5 бит | двоичный | Целостный конструктор | повторяемый | линейный |
Бакли, 2008 [9] | репликатор.mc | фон Нейман 29-состояние | 312 × 132 | 18,589 | 294,844 | 15.86 | 2,61 × 10 11 | авто-ретракция | 5 бит | двоичный | Целостный конструктор | повторяемый | линейный |
Бакли, 2008 г. | кодон4.rle [14] | Нобили 32-штатный | 109 × 59 | 3,574 | 37,780 | 10.57 | 4,31 × 10 9 |
| 4 бита | двоичный | Целостный конструктор | повторяемый | линейный |
Бакли, 2009 | кодон3.rle | Нобили 32-штатный | 116 × 95 | 4,855 | 23,577 | 4.86 | 1,63 × 10 9 |
| 3 бита | двоичный | Целостный конструктор | повторяемый | суперлинейный |
Бакли, 2009 | ЧастичныйРепликатор.mc [14] | фон Нейман 29-состояние | 2063 × 377 | 264,321 | — | — | ≈1,12 × 10 14 | никто | 4 бита | двоичный | Частичный конструктор | повторяемый | линейный |
Гуше и Бакли, 2012 | phi9.rle [15] | Нобили 32-штатный | 122 × 60 | 3957 | 8920 | 2.25 | — |
| 3+ бита | троичный | Целостный конструктор | повторяемый | суперлинейный |
Согласно определению фон Неймана, универсальная конструкция подразумевает построение только пассивных конфигураций. Как таковая, концепция универсальной конструкции представляла собой не более чем литературный (или, в данном случае, математический) прием. Она способствовала другим доказательствам, таким как то, что хорошо сконструированная машина может заниматься самовоспроизведением, в то время как сама универсальная конструкция просто предполагалась в самом минимальном случае. Универсальная конструкция в соответствии с этим стандартом тривиальна. Следовательно, хотя все конфигурации, приведенные здесь, могут построить любую пассивную конфигурацию, ни одна из них не может построить орган пересечения в реальном времени, разработанный Горманом. [9]
Все реализации самовоспроизводящейся машины фон Неймана требуют значительных ресурсов для запуска на компьютере. Например, в реализации Нобили-Песавенто с 32 состояниями, показанной выше, в то время как тело машины состоит всего из 6329 непустых ячеек (внутри прямоугольника размером 97x170), для нее требуется лента длиной 145 315 ячеек, и для ее репликации требуется 63 миллиарда временных шагов. Симулятору, работающему со скоростью 1000 временных шагов в секунду, потребовалось бы более 2 лет, чтобы сделать первую копию. В 1995 году, когда была опубликована первая реализация, авторы не видели, как их собственная машина реплицируется. Однако в 2008 году алгоритм hashlife был расширен для поддержки наборов правил с 29 и 32 состояниями в Golly . На современном настольном ПК репликация теперь занимает всего несколько минут, хотя требуется значительный объем памяти.
{{citation}}
: CS1 maint: несколько имен: список авторов ( ссылка )