crower: (Default)
crower ([personal profile] crower) wrote2012-02-13 10:50 am

Сколько китов/слонов у эволюции?

    Для протекания эволюции достаточно двух: изменчивости и отбора.

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

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

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