Entry tags:
Параллели
Вот сижу, пишу программу. А профессиональная хоббишная деформация в бекграунде комментирует:
Зачем всё это мне? Затем что Киберморф я не забросил. Проект находится на стадии очередного обдумывания направления дальнейшего развития. А для этого тема продолжает исследоваться. Изучается вопрос: чем отличается среда биохимии и генетики от среды программной. Какими дополнительными условиями требуется обеспечит программную среду, чтобы эволюция киберморфов не барахталась, застряв в топологических ямах, а стала двигаться, хоть в каком-то направлении.
добавил в программу кучу строк | - | мутаген (я) спровоцировал появление пачки мутаций, увеличившие геном на пару килобайт |
проверил корректность кода (perl -c) | - | мейоз прошёл успешно |
запустил скрипт на исполнение/тестирование с заданными параметр-сетами | - | новый организм проверяется на жизнеспособность в разных условиях |
проанализировал код. вынес дублирующиеся алгоритмы в отдельную подпрограмму | - | транспозоны в действии |
один кусок кода не понравится, рядом скопировал его же и стал в новую копию вносить изменения | - | произошла дупликация гена. одна из копий попала под последовательность прогрессивных мутаций |
закоментил старый код | - | мутация пришласьна сайт транскрипции и ген выключился |
снова погонял новый код, сравнивая со старым. | - | работает отбор, в котором конкурируют старый код с новым |
новый код удобнее в сопровождении | - | новый ген оказался эффективнее. стрый ему проиграл и не выдержал конкуренции |
удаляю старый закоменченый кусок кода | - | очередная мутация привела к потере очередного гена. тут можно поспорить: поскольку новый код призван был заменить страрый, то это была потеря не гена, а дуплицированного аллеля. согласен. однако, в процессе |
новый код в подпрограмме оказался на столько удачным, что я планирую по его образцу нагенерировать ещё пачку подпрограмм и внеся небольшие изменения заставить трудиться каждуго над своей задачей | - | если с предыдущей ситуацией можно ещё было поспорить, мол это никакая не дупликация и расхождение свойств по факту, хотя по процедуре и похоже, то теперь в чистом виде имеем многократную дупликацию и действительно расхождение аллелей с превращением их в разные гены. |
вот неплохая процедурка, результат работы которой пригодится в разных местах программы. Правда в разных местах понадобится чуть-чуть отличающийся результат. Чтобы не плодить подпрограммы - чуть разные но слишком похожие, вносим в неё небольшие изменения - делаем параметро-зависимым её поведение. В результате в зависимости от переданных ей параметров она выдаёт в разных местах немного различающиеся результаты - ровно те, что требуются. | - | Вот тебе и альтернативный сплайсинг: в зависимости от факторов (передаваемы в процедуру параметров) логически работают разные последовательности. То естьif ... then ... [else ...]- аналог интронов/экзонов. Из кода они, конечно, не удаляются, но при исполнении кода при разных условиях работают разные его части. фактически это и есть созревание кода. Полной аналогии ожидать не надо. Куски кода как РНК по программе не гуляют (хотя, вообще-то бывает и такое), а остаются на месте. Аналог экспрессии, созревания происходит при запуске кода. Есил в биологическом организме один ген транскрибируется и транслируется в разные разнесённые в пространстве объекты, то в данном случае транскрипция/созревание/трансляция происходит при исполнении. |
Зачем всё это мне? Затем что Киберморф я не забросил. Проект находится на стадии очередного обдумывания направления дальнейшего развития. А для этого тема продолжает исследоваться. Изучается вопрос: чем отличается среда биохимии и генетики от среды программной. Какими дополнительными условиями требуется обеспечит программную среду, чтобы эволюция киберморфов не барахталась, застряв в топологических ямах, а стала двигаться, хоть в каком-то направлении.
no subject
Хотя не только.
Что существенно в биохимии - неживыми конструкциями, работающими только по запуску являются вирусы, но и они взаимодействуют со средой, которая тоже эволюционирует. Что ещё - любое "движение" требует энергии и материи, т.е. вычислительные мощности не должны быть равны для всех.
И ещё одно - биологические объекты обладают телом, т.е. визуальной компонентой.
no subject
Одного размножения явно недостаточно. Когда начинал проект, то надеялся что первые шаги пойдут, а дальше застопорится. Тогда буду изучать где и почему тормозит и усложнять условия. Но оказалось хуже. :) Застопорилось так рано, что минимальные эффективные критерии отбора ещё не работали. :-(
Ввести аналог энергии/материи тоже собирался. Создать пространство. Можно было бы поиграть с многомерностью. Прикольно было бы наблюдать как они там барахтаются в 20-мерном пространстве. ;)
Разбрасывать по пространству бонусы, к которым они бы стремились и за которые боролись. Метафорически, конечно.
То есть с одной стороны это уже получается моделированием среды. Хотя не очень-то хотелось слишком уж копировать существующую. Но с другой стороны до определённого уровня сложности модели среды моделировать "живущих" в ней существ чрезвычайно сложно. Как-то это перекликается с классическим "простое железо - сложная программа".
no subject
Но тут нужно задаться некоторой целью, для чего же создавать эту цифровую эволюцию. :) Я подхожу к этому вопросу как к созданию цифровой автономной жизни, живущий в рамках, полезных человеку. Например, эволюционирующий драйвер для видеокарты, который подстраивается сам под нужды пользователя и других программ. Т.е. в какой-то мере симбиот с участием человека, железа и программного комплекса.
no subject
Про автономную цифровую жизнь я тоже думал, но без особой надежды на перспективу. Не уверен, что она захочет участвовать в симбиозе. :) Трудно придумать такие пряники, от которых она бы не могла отказаться и сама не смогла бы сделать. Впрочем, можно, конечно, наложить определённые ограничения на среду. Но для этого среда должна быть уже достаточно сложной, чтобы позволить цифровым организмам быть достаточно простыми в начале, чтобы потом иметь возможность усложнятся. Или не усложнятся.
Самый парадокс, что по сути маршрут эволюции - это усложнённая игра "как сделать из мухи слона". При том что заранее не знаешь получится. :)
no subject