crower: (Default)
[personal profile] crower

Формальным началом истории можно считать момент, когда я набрёл на обсуждение эволюции (в клубе "Наука и технология" на Я.ру-шке). Продуктивным итогом моего участия в диспутах стал повышенный интерес к предмету и апгрейд имевшихся к тому времени у меня знаний.  Тема заинтересовала настолько, что когда мне в руки попалась книга Ричарда Докинза "Слепой часовщик", я не смог побороть желание завести собственную "зверюшку". :)

       Из диспутов была выведена важная для меня мысль: эволюция может протекать в любой системе, где присутствуют "три кита" - Изменчивость, Наследственность и Отбор. И хотя профессионально я не связан с генетикой (о чём всё время немного сожалею) и биологией, чтобы изучать наиболее результативный вариант эволюции, зато, будучи программистом, могу построить "эволюциодром", на котором можно будет изучать свойства эволюции в её абстрактном виде. Наверняка, кто-то заметит, что эволюционные механизмы в программировании - обычное дело, и будет прав. За одним небольшим исключением: во всех известных мне случаях, их роль сводится к поиску оптимального решения различными методами при заранее определённых генах и форме их проявления. Поэтому целью проекта было изучение "девственной" эволюции, которой не навязано ни направления, ни форм проявления. Тем лучше, если такой эксперимент позволит сделать шаг на пути построения математической модели абстрактной эволюции, а не только её частных случаев. Мне кажется, что для изучения эволюции давно не хватает специализированной дисциплины, которая могла бы называться Эволюциологией.
     Но на сколько многообещающей была идея создания условий для работы абстрактной эволюции, на столько же сложной она оказалась в реализации. История и причины выбора эволюционирующего организма достойны отдельного поста (тем более что в процессе разработки был момент, когда возникшие трудности наводили на мысль, что проект реализовать будет невозможно). Несомненно, биоморфы Докинза были идейными вдохновителями, но некоторые их свойства совершенно не подходили для проекта. В результате мучительного поиска "дрозофил" (или "кроликов" - кому как больше понятно) выбор неожиданно остановился программном коде, а проект был назван Киберморфом. Программа (которых сменилось уже более десятка версий - тоже эволюционирует ;-) ) обеспечивает изменчивость кода, наследственность и отбор, а эволюция в предоставленных условиях резвится как ей заблагорассудится.
     Более подробно о некоторых результатах я планирую описать в последующих постах, а пока коротко о наиболее интересном.

    Довольно быстро эволюция находит способы реализовать "скрытые мутации" - аналог "мусорной ДНК", которые делают частт последующих мутаций нейтральными. Этот процесс настолько выгоден, что продолжается даже если стоимость вставки гораздо дороже, чем стоимость других мутаций. Данный процесс характерен для любой системы, в которой существует хотя бы минимальный синтаксис. Когда я попытался запретить использовать эволюции знак комментария, который она использовала для формирования зон скрытой мутации, её "находчивость" меня изумила: она обнаружила недокументированную особенность в библиотеке определения расстояния Левенштейна. Судя по всему, библиотека написана на C, в котором нулевой символ в строке является терминирующим. Но в perl, на котором реализован проект, нулевой символ является равноправшым элементом строки. В общем, эволюция обнаружила эту разницу и стала использовать её для того, чтобы "спрятать" результаты нежелательных мутаций от "ока отбора".
    При определённых условиях наблюдается расслоение всей популяции на несколько семейств, эдаким то ли видам, то ли штаммам. Хотя приравнивать получавшихся киберморфов к уровню даже одноклеточных, скорее всего неверно. Происходящее, на мой взгляд, гораздо больше похоже на химическую эволюцию.

Profile

crower: (Default)
crower

February 2018

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728   

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 30th, 2026 03:09 pm
Powered by Dreamwidth Studios