Цифровой организм

Цифровой организм — динамически изменяющаяся совокупность функций, представленная в виде программного агента с открытой архитектурой. Характеризуется переменным составом и структурой, который пересобирается на основе кодированного представления, отражающего текущее состояние самого себя, заданного цифровой ДНК. Способен к эволюции и выполнению полезных вычислений, реагируя на изменения в вычислительной среде и потоках данных пользователя[1].

В общих чертах, представляет собой программную систему, способную к самоорганизации в виртуальной среде вычислительной машины (ЭВМ). Обладает способностью к самовосстановлению после сбоев и повреждений, самообучению, адаптации, а также может развиваться и конструироваться самостоятельно в ответ на внешние воздействия благодаря процессам самоорганизации, которые происходят в специально устроенной виртуальной среде. Ключевым аспектом является возможность управления процессами самоорганизации и исключения выполнения программных агентов с нежелательными свойствами[2].

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

История править

Цифровые организмы впервые появились в игре «Дарвин», в которой компьютерные программы были вынуждены конкурировать, мешая выполнению друг друга.[3] Аналогичные механизмы реализованы в игре «Бой в памяти». В ходе этой игры выяснилось, что одной из выигрышных стратегий является самовоспроизведение с наиболее возможной скоростью, которое приводит к лишению противников всех вычислительных ресурсов. Программы в игре «Бой в памяти» также способны мутировать сами и обмениваться кодом, перезаписывая инструкции в моделируемой «памяти», где происходит игра. Это позволило конкурирующим программам встраивать разрушительные инструкции друг другу, вызывая ошибку чтения кода; «поработить процессы соперника», заставив их работать на себя, изменять свою стратегию посреди игры и излечивать собственный повреждённый код.

Стин Расмуссен в Лос-Аламосской национальной лаборатории взял идею игры «Бой в памяти» и ввёл генетический алгоритм для автоматического написания. Однако эволюцию сложных и стабильных программ Расмуссен не наблюдал. Оказалось, что язык программирования, на котором были написаны программы, оказался очень нестойким, и чаще всего мутации полностью уничтожали функциональность программы.

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

Позже Крис Адами, Тит Браун и Чарльз Офрия приступили к разработке собственной системы «Avida», которая была вдохновлена «Tierra», но имела некоторые важные отличия. В «Tierra» все программы жили в одном адресном пространстве, и потенциально могли перезаписать или иным образом вмешиваться в код друг друга. В «Avida» каждая программа живёт в своем собственном адресном пространстве. Благодаря этой модификации эксперименты с «Avida» стало намного чище и легче интерпретировать. Начиная с «Avida», цифровое исследование организма стало восприниматься как действенный вклад в эволюционную биологию всё большим числом эволюционных биологов. Так, эволюционный биолог Ричард Ленски из университета штата Мичиган широко использовал «Avida» в своей работе. Ленски, Адами и их коллеги опубликовали результаты в научных журналах, таких как «Nature» и «Proceedings of the National Academy of Sciences» (США).

В 1996 году Энди Парджеллис создал Tierra-подобную систему под названием «Amoeba», в которой происходила саморепликация в произвольном порядке от случайно отобранного исходного состояния.

В экспериментах с «Avida» при ограничении в 16000 поколений и 50-кратном его повторе выявлено, что в 23 случаях из 50 эволюция порождала цифровые организмы, способные производить побитовое сравнение чисел, причём в каждом случае эволюция происходила различно.[4]

Примечания править

  1. Кольчугина Елена Анатольевна. Биоинспирированные методы саморазработки программ для распределенных систем // Известия высших учебных заведений. Поволжский регион. Технические науки. — 2018. — Вып. 4 (48). — С. 96–104. — ISSN 2072-3059.
  2. Кольчугина Е.а. Структура цифрового организма в самоорганизующихся программных системах // Программные продукты и системы. — 2012. — Вып. 2. — С. 51–54. — ISSN 0236-235X.
  3. Aleph-Null, «Computer Recreations», Software: Practice and Experience, vol. 2, pp. 93-96, 1972
  4. «Компьютерные вести» № 7, 2005 год: «Цифровая эволюция». Дата обращения: 20 сентября 2011. Архивировано 11 ноября 2011 года.

Ссылки править