В доисторический период (до перехода) большинство само-модификаций происходят на концах ленты с редкими мутациями в середине. Некоторые ленты полностью перезаписываются повторяющимися символами. Распределение символов устаканивается в районе стационарного с тенденцией к определённым операторам брейнфака. Сложность супа низкая. В эпоху номер 2355 в результате сложной перезаписи появляется первый репликатор (картинка 3 разбирает как именно на уровне кода это произошло). Небольшое число байт сохраняется на ленте с первой эпохи, но большая часть скопирована с другой ленты. У репликатора есть определённая симметрия. Сложность бульона начинает расти. Репликатор вскоре перезаписывает себя содержимым другой ленты, но его копии выживают. Затем лента перезаписывается снова, на этот раз повреждённым обратным репликатором. На концах ленты начинают появляться нули, это признаки “отравления нулями” (zero-poisoning) всего супа, поскольку оригинальная версия репликатора могла копировать нули, но не могла их перезаписывать, что вело к мультиплицированию этого добра в супе. Репликация стагнирует и сложность падает. 14% супа -- нули. Вскоре другой репликатор возникает в супе и начинает доминировать. У него более устойчивая структура, способная перезаписывать нули. С этого момента в супе постоянная движуха: куча разных репликаторов, постоянно друг друга перезаписывающих. Они содержат много токенов из оригинального репликатора, но в различном порядке. Сложность супа увеличивается сначала быстро, а затем медленно, но устойчиво. В пике примерно 80% токенов происходят с одной ленты. Авторы отдистиллировали пример репликатора, на него можно посмотреть на картинке 4, а также в этом видео. Эволюция сложности Эволюцию сложности анализировали на 1000 разных запусков с одинаковыми гиперпараметрами. Энтропия высокого порядка стабильно увеличивается в течение первых 1000 эпох, чтобы (в среднем) уменьшиться снова с отличным от начального распределением (которое было равномерным). Есть красивая визуализация на картинке 5. Чем больше эпох, тем выше вероятность перехода. Стабильные само-репликаторы возникают в 40% запусков в течение 16000 эпох. Некоторые особенно удачливые запуски получают фазовый переход практически сразу. Дефолтная частота мутаций была 0.024%, и в общем её увеличение ускоряет появление репликаторов (хотя не скажу, что по картинке 6 это прям заметно). Но и с отключенной мутацией фазовый переход случается примерно с той же частотой, так что дело явно не просто в мутации. Она может ускорять процесс, но она не необходима. Забавно, что при 1% мутаций возникновение репликаторов сильно деградирует. Отдельно проверили влияние случайной инициализации. Насколько вообще вероятно, что репликатор будет присутствовать уже при инициализации? Это не так просто понять, ибо репликатор может быть не просто копировщиком целой строки, но может являться частью более сложного автокаталитического набора. В любом случае репликатору требуется время для захвата всего супа и в процессе он легко может быть уничтожен. В 50% случаев одиночный само-репликатор будет в правой половине ленты и он может быть уничтожен кодом с левой половины. Да ещё и случайные мутации могут попортить. На рисунке 7 сравнивают несколько разных типов запуска: долгий (обычный на 16к эпох) -- примерно 40% таких запусков создали саморепликатор; короткий (128 эпох, достаточно времени для захвата супа, если репликатор уже был в инициализации, но он может быть уничтожен или возникнуть заново) -- очень редкое событие, 0.3%; подсаженный/seeded (на старте подселяют один созданный вручную репликатор и выполняют 128 эпох) -- 22% успеха, то есть 1 из 5 репликаторов выживает; долгий без шума (обычные 16к эпох без мутаций и с фиксированной последовательностью паттернов перемешивания, чтобы не увеличивать общую энтропию системы) -- оказывается ещё лучше, примерно в 50% случаев получаем переход. Из всего этого выводы, что само-репликаторы возникают в основном из само-модификации и взаимодействия между программами, а не просто из-за инициализации и мутаций.
В доисторический период (до перехода) большинство само-модификаций происходят…
Из этого канала
- #4372Описанная выше симуляция является по сути 0-мерной средой, где у всех программ…
Описанная выше симуляция является по сути 0-мерной средой, где у всех программ равные шансы провзаимодействовать.
- #4373В обоих случаях, если репликатор подсадить в суп, он быстро распространяется.…
В обоих случаях, если репликатор подсадить в суп, он быстро распространяется. Но при рандомной инициализации суп остаётся равномерно рандомным и после…
- #4374Отдельного внимания здесь заслуживает симбиогенез, который выводит эволюцию за…
Отдельного внимания здесь заслуживает симбиогенез, который выводит эволюцию за пределы борьбы в общей нише и принципа “выживает наиболее приспособленный” в…
- #4370Эксперименты начинаются со всеми любимого брейнфака (кстати, не знал, что есть…
Эксперименты начинаются со всеми любимого брейнфака (кстати, не знал, что есть такой прекрасный вариант упоминания как “bfuck”).
- #4369"Сегодня супердлинный жанр. Computational Life: How Well-formed,…
"Сегодня супердлинный жанр. Computational Life: How Well-formed, Self-replicating Programs Emerge from Simple Interaction Blaise Agüera y Arcas, Jyrki…