Как стать автором
Обновить
434.51
Рейтинг
Timeweb
VDS и инфраструктура. По коду Habr10 — 10% скидка

На пути к Матрице: как происходит исследования в области построения симуляций и искуственной жизни

Блог компании TimewebOpen sourceВиртуализацияGPGPUНаучно-популярное
Перевод
Автор оригинала: Christian Heinemann

О проекте


ALiEn — это программа моделирования искусственной жизни, основанная на специализированном физическом и рендеринговом движке в CUDA. Он предназначен для моделирования цифровых организмов, встроенных в искусственные экосистемы, и для имитации условий (до)биотической эволюции.

Узнайте о целях проекта и о том, как начать.



Функции

  • Реалистичные физические расчеты кинематических и термодинамических процессов повреждаемых и склеиваемых твердых тел
  • Программируемый материал для моделирования цифровых организмов и эволюции
  • Встроенный графический редактор для проектирования собственных машин
  • Моделирование и рендеринг на GPU
  • Программное обеспечение с открытым исходным кодом и доступно под GNU General Public License, Version 3 (GPLv3).

Под катом два примера («Самопроверяющиеся репликаторы» и «Репликация на основе информации») применения данного программного комплекса.

Кейс первый: Самопроверяющиеся репликаторы


1. Исходные репликаторы


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

image

  • Первый тип репликаторов довольно минималисичен и состоит из шести ячеек в кольцевой структуре. У него есть сканирующая ячейка, считывающая его структуру, и ячейка-конструктор, создающая потомство. Более того, атакующая ячейка обеспечивает кластер энергией, потребляемой из окружающей среды, а двигательная ячейка перемещает кластер.
  • Второй вариант также имеет кольцевую структуру, но с большим количеством ячеек, выполняющих те же функции. Однако многие из его ячеек не являются обязательными.
  • Последний репликатор обладает гораздо более сложной пространственной структурой, похожей на неправильный шестиугольник.

2. Эволюционные эксперименты


2.1. Настройка

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

  • размер вселенной: 1000 x 1000 единиц
  • 5000 случайно распределенных прямоугольных блоков размером 8 x 4 в качестве «питательных веществ»
  • 20 репликаторов

Параметры симуляции выбраны для создания «дружественной» вселенной, например низкая частота мутаций, низкое излучение, низкая стоимость энергии для функций клеток и т.д. Симуляцию с такой предконфигурацией можно скачать здесь:


2.2. Симуляции


2.2.1. Маленькие репликаторы

image

Вначале количество репликаторов растет экспоненциально, пока не будут исчерпаны все ресурсы. После этого устанавливается равновесие, при котором число репликаторов (примерно 6000) остается постоянным. Видео ниже показывает, как репликаторы потребляют последние свободные ресурсы. После этого им нужно потреблять друг друга. Однако из-за мутации произошли незначительные оптимизации, которые привели к появлению более адаптированных особей. Иногда можно наблюдать рост плотных колоний. Это явление показано на рисунке, сделанном на 114 000-м шаге. Каждая светящаяся точка представляет собой отдельного индивида/репликатора.

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

Ниже вы найдете два видеоролика: в первом показано, как репликаторы захватывают все доступные ресурсы в небольшой вселенной. Втторое видео дает подробное представление о процессах внутри колонии.



После этой начальной фазы мы постепенно увеличиваем размер вселенной до 4000 x 1000 единиц и постепенно увеличиваем свойства функции ячейки параметров моделирования -> оружие -> стоимость энергии до 1,4. Эти изменения, с одной стороны, понижают давление окружающей среды и приводят к рассеянию колоний. С другой стороны, усложняется потребление энергии. Неожиданно возникает необходимость в адаптации. Репликаторы развивают подвижность, чтобы более активно потреблять ресурсы. После нескольких миллионов временных шагов и фиксации вышеуказанного параметра происходит слияние нового равновесия. Они потребляют друг друга и производят потомство. Но количество репликаторов остается постоянным. Такое поведение можно наблюдать на первом видео, сделанном после 22 миллионов временных шагов эволюции.


Затем мы увеличиваем вышеупомянутый параметр до 2,4. Это приводит к нарушению равновесия, поскольку репликатор слишком быстро теряет энергию. Однако они нашли способ выжить. Каждый раз, когда ресурсы концентрируются локально, они рискуют, потребляют и тиражируются настолько быстро, насколько это возможно. После этого они расходятся и большинство из них умирают. Разрушенные/неисправные репликаторы дрейфуют в пространстве. Когда многие из них подойдут близко, они будут поглощены другими. Таким образом, возникает более сложное равновесие, когда материальные волны периодически сталкиваются и быстро поглощаются несколькими существующими репликаторами. Количество репликаторов растет очень быстро за короткое время. Затем большинство из них умирают и формируют новую материальную волну. Это явление можно наблюдать на видео.


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


image

evolved small replicator

2.2.2. Большие репликаторы


Эволюция этого более крупного типа репликатора идет по несколько иной схеме. С одной стороны, его более крупная структура предлагает больше возможностей для оптимизации и, следовательно, адаптации к новым условиям. С другой стороны, процесс репликации требует больше времени и энергии. Как следствие, развитие периодических материальных волн происходило в гораздо более слабой форме, потому что репликатор не был достаточно быстрым, чтобы захватить материал.

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


image

evolved large replicator

2.2.3. Сложные репликаторы

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


Такие условия могут быть более подходящими для эволюции в сторону более высокой сложности. В моделировании после 26 миллионов временных шагов возникла совершенно новая структура. Он привлекает внимание своей массивной внутренней обработкой. Это похоже на растущую кристаллическую структуру без активных движений или потребления энергии. Деторождение происходит путем разрушения конструкции из-за физических воздействий. Части снова могут расти. Увеличенное изображение этого удивительного продукта эволюции показано справа внизу.


crystalline structure

Это экзотическое существо сосуществует с другими развитыми репликаторами. Пример такого репликатора показан ниже вместе с видео, показывающим его распространение.


image

evolved complex replicator

4. Выводы


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

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

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

Кейс второй: Репликация на основе информации


1. Начальный репликатор


Основным предметом настоящего исследования является самовоспроизводящаяся машина, использующая цифровой аналог ДНК. По сравнению с самопроверяющимися репликаторами, строительные команды потомка хранятся в контейнере данных как чистая информация. Благодаря такому подходу мы получаем большую гибкость в создании новых машин, поскольку они возникают в результате манипулирования информацией.

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

На картинках ниже мы можем видеть снимки в процессе репликации. Пока репликатор имеет достаточно энергии, он производит новые ячейки, команды построения которых описаны в разделе данных токена. Каждый раз, когда токен проходит через компьютерную ячейку, инструкции по сборке копируются байт за байтом в его целевое поле. Это может занять до 45 оборотов вокруг конструкции. После завершения процесса копирования из памяти начинается создание дочерней клетки, которое повторяется в случае, если не доступно достаточной энергии. Конструктор получает инструкцию от токена и постепенно строит все 6 ячеек. После построения последней ячейки токен будет продублирован, и копия будет распространена на потомство. Во время этого процесса применяется мутация к памяти токена. Кроме того, происходит разделение строительной площадки на двух индивидов.

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

image

information-based replicator

2. Эволюционный эксперимент


2.1. Настройка

Для нашего эволюционного эксперимента мы создали симуляцию со следующими настройками:

  • начальный размер вселенной: 1000 x 1000 единиц
  • 5000 случайно распределенных прямоугольных кластеров 8x4 ячеек каждые 100 единиц энергии
  • 20 репликаторов

Полную первоначальную конфигурацию можно скачать здесь.

2.2. Симуляция
Во время симуляции мы постепенно увеличиваем размер вселенной до 6000 x 1000 единиц. Затем Вселенная масштабируется до 60 000 x 1 000 единиц, что приводит к увеличению энергии в 10 раз. Количество репликаторов растет экспоненциально и стабилизируется на уровне от 80 до 90 тысяч экземпляров. На этом этапе номер можно прочитать на активных кластерах на мониторе. Результаты, приведенные ниже, нельзя повторить напрямую, так как все моделирование отличается. Однако могут наблюдаться некоторые общие эффекты.

Через какое-то время можно увидеть, что плотные колонии репликаторов через какое-то время могут сливаться. Потому что в текущих условиях репликаторам выгодно развивать ленивые модели поведения, которые не совершают никаких движений и массово атакуют свое окружение. Чтобы предотвратить возникновение такой удобной схемы выживания, мы можем изменить условия окружающей среды. С этой целью мы наказываем атаку клеток, увеличивая параметры функции симуляции -> оружие -> стоимость энергии. Мы увеличиваем его значение до 3 не сразу, а постепенно после 100 тыс временных шагов, чтобы репликаторы могли адаптироваться к новым условиям.

Когда Вселенная заполнена репликаторами, плотность материала может сильно варьироваться в зависимости от региона. Потому что движущиеся репликаторы создают силы, которые отталкивают оставшийся материал. Это явление можно наблюдать на следующем снимке экрана, сделанном через 2 млн. временных шагов.

image

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

Ниже вы можете увидеть отрывок из той же симуляции через 7 миллионов временных шагов. Репликаторы мутировали и могут быстрее размножаться в своей среде.

image

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

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

image

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

image

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

image

Структуру можно скачать здесь.

4. Выводы


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

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

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

  • автоматическое изменение параметров моделирования таким образом, чтобы популяция не вымерла,
  • вознаграждайте более крупные репликаторные структуры.

Дополнительно: Artworks


Все последующие скринкасты показывают моделирование в реальном времени, записанное на системе GeForce 2080 TI. Рекомендуется смотреть видео в качестве 1080p (HD). Больше видео можно найти на канале YouTube.

Возможности физического движка






Искусственно запрограммированная материя






Конструкции на встроенном графическом редакторе



Теги:ALiEnсимуляция
Хабы: Блог компании Timeweb Open source Виртуализация GPGPU Научно-популярное
Всего голосов 17: ↑16 и ↓1+15
Просмотры3K
Комментарии Комментировать

Похожие публикации

Лучшие публикации за сутки

Информация

Дата основания
Местоположение
Россия
Сайт
timeweb.com
Численность
201–500 человек
Дата регистрации

Блог на Хабре