Восхождение на гору Невероятности - Докинз Ричард (читать полную версию книги TXT) 📗
Процесс продолжается, популяция развивается от поколения к поколению, но с одним дополнительным плюсом. Это уже не один дем, в который входят шесть пауков, а, допустим, три полунезависимых дема (рис. 2.13). Эволюция каждого из трех демов протекает независимо, но отдельные особи периодически мигрируют из своего дема в другой и переносят свои варианты генов. В четвертой главе мы поговорим о теоретическом обосновании такой миграции. Сейчас мы можем лишь отметить, что все три группы эволюционируют с повышением качества паутины – в сторону более эффективной ловли мух. Иногда популяция встает на тупиковый путь развития. Варианты генов пауков-мигрантов сродни притоку свежей крови в жилах другой популяции. Можно сказать, сильная подгруппа отдает свои варианты той, что послабее, тем самым подсказывая ей более выгодный способ создания ловчей сети.
Во всех трех популяциях первое поколение включает в себя паутины разных форм, в большинстве своем с невысоким КПД. Мы видим, что по мере смены поколений, как и в случае неполового размножения (рис. 2.12), происходит постепенный переход к более качественным и эффективным вариантам. Но теперь “свежая кровь” распределяется за счет полового размножения, поэтому отдельные экземпляры в деме довольно похожи друг на друга. С другой стороны, генетически они являются отпрысками других демов, так что и различия достаточно заметны. На какой‐то стадии в одиннадцатом поколении гены двух паутин из дема 3 мигрировали в дем 2, то есть “инфицировали” дем 2 “кровью” дема 3. К пятидесятому поколению, а в некоторых случаях гораздо раньше, паутины превратились в прочные, надежные и экономичные ловушки.
Итак, можно воссоздать на компьютере некое подобие естественного отбора и получить искусственные ловчие сети, которые захватывают мух эффективнее, чем исходные. Это еще не подлинный естественный отбор, но существенный шаг вперед, больше приближающий нас к цели, чем полностью искусственная селекция биоморфов. Однако даже NetSpinner не воссоздает природный естественный отбор. Для того чтобы с помощью программы найти достаточно экономичные ловчие сети и выбрать наиболее пригодные для воспроизводства, требуется выполнить расчет. Программист должен сам определить стоимость “шелка” для данной паутины, причем в тех же единицах, что и ценность “мухи”. Он может, если захочет, изменить обменный курс. Например, удвоить “цену на шелк”. Тогда паутина большей площади или более плотная, на которую потратили больше шелка ради того, чтобы поймать больше мух, окажется менее пригодной для воспроизводства. Программист должен сам выбрать коэффициент пересчета. Это лишь один, самый очевидный пример конвертации. Коэффициент соответствия “мушиного мяса” вновь рожденным паучкам тоже должен задать программист. Он может быть любым. Сколько пауков погибает по разным причинам, не связанным с качеством паутины, также решает программист. Эволюция вида зависит от его волюнтаризма.
Рис. 2.13. (на стр. 86 и 87) Пятьдесят поколений эволюции трех демов компьютерных паутин, полученных половым размножением и выведенных “естественным отбором” в программе NetSpinner. В одиннадцатом поколении два генотипа из третьего дема мигрировали во второй дем, и теперь их можно использовать для перекрестного скрещивания (пути миграции показаны на рисунке стрелками).
В жизни ни одно из этих решений не принимается по чьей-либо воле. Это и не решения как таковые, и здесь не применяются компьютерные технологии. Просто так происходит, само собой и без лишнего шума. Плоть мух действительно превращается в плоть маленьких паучков с уже существующим коэффициентом перевода. Если нам хочется рассчитать его – имеем право. Превращение идет независимо от того, опишет ли кто‐нибудь этот процесс в математическом виде или нет. Точно так же происходит преобразование мушиного “мяса” в паутинный шелк. В сущности, для NetSpinner все мухи равны. В живой природе иногда возникают – тоже сами собой и без шума – всякие непредвиденные трудности и неприятности. Помимо того, что одни насекомые крупнее других, есть еще и качественные различия. Предположим, для выработки паутинного шелка нужна какая‐то аминокислота, и ее мало. Разные виды насекомых способны поставлять определенное количество этой аминокислоты. В таком случае истинную ценность насекомого следует рассчитывать с учетом его вида и массы. NetSpinner позволяет выполнить подобный расчет, но это будет очередное волевое решение. В природе это естественный процесс, не требующий специальных условий. Вот еще пример. Наверное, если запасы белка у паучихи почти восполнены, лишняя муха ей не так дорога, как если белка почти нет. Программа это игнорирует, а природа – нет. Можно было бы ввести в программу и поправку на насыщение. В жизни это делается автоматически. Никакие расчеты для этого не нужны.
К чему я клоню, настолько очевидно, что едва ли надо об этом говорить, но вместе с тем настолько важно, что нельзя не сказать. Всякий раз, когда в программу вносится новая реперная точка, которая усложняет расчет, квалифицированный программист должен добавить еще сколько‐то страниц с кодами команд. В жизни, напротив, бросается в глаза отсутствие расчетов. Коэффициент перевода мушиного белка в белок паутины уже заложен в природе. Безо всяких вычислений ясно, что для голодного паука муха дороже, чем для сытого. Было бы странно, если бы для голодного паука пища значила бы меньше. Мы привыкли рассматривать компьютерную модель как упрощение реальной жизни. Но в некотором смысле компьютерная модель естественного отбора отнюдь не упрощает, а только усложняет реальные природные процессы.
Естественный отбор – предельно простой процесс в том смысле, что он идет при минимальном использовании технических средств. Безусловно, эффекты, которые он производит, и его конечные результаты чрезвычайно непросты. Однако чтобы на живой планете пошел процесс естественного отбора, не нужно ничего, кроме информации о наследственности. Чтобы заработала компьютерная модель естественного отбора, надо иметь эквивалент такой информации и еще много всего. Потребуется умная техника для расчета всевозможных затрат и бонусов, а также надо будет выработать систему их конвертации.
Кроме того, придется создать целый искусственный физический мир. Мы выбрали в качестве примера паутину, потому что из всех природных “устройств” она лучше всего поддается описанию в терминах программирования. В принципе можно оцифровать что угодно – крылья, позвоночники, зубы, челюсти, плавники и перья – и написать программу для оценки эффективности их разновидностей. Но программисту придется изрядно поломать голову. Оценить крылья, плавники или перья можно только в реальной физической среде (в воде или воздухе) с присущими ей свойствами, такими как сила сопротивления, упругость и турбулентность. Воссоздать все эти условия очень трудно. Вне реальной ситуации, где действуют напряжение, рычаги и сила трения, нельзя понять, насколько хорошо функционируют позвоночник и кости конечностей. Жесткость, хрупкость, упругость при изгибе и сжатии – все это надо будет отобразить в программе. Моделирование динамических взаимодействий множества костей, соединенных связками и сухожилиями под разными углами, – сложнейшая математическая задача, и человек постоянно должен решать, какой ход сделать дальше. Воспроизвести турбулентный воздушный поток, омывающий крыло, до такой степени нелегко, что авиаконструкторы часто даже не пытаются сделать это с помощью компьютера – проще поставить эксперимент в аэродинамической трубе.
Впрочем, не стоит недооценивать работу специалистов по компьютерному моделированию. В 1987 году в Лос-Аламосе, где когда‐то ученые разрабатывали атомную бомбу, а ныне занимаются более созидательным трудом, прошла презентация нового направления в науке, получившего название “искусственная жизнь”, и я имел честь присутствовать на церемонии. Кристофер Лэнгтон, инициатор и руководитель той, первой, конференции 1987 года и тех, что состоялись потом, основал одноименный журнал. Опубликованные там статьи развеяли пессимизм предыдущего абзаца. Так, трио ученых из Северной Америки – Деметрий Терцопулос, Сяоюань Ту и Радек Гжещук – описали великолепную модель виртуальных рыб, которые ведут себя совсем как настоящие и взаимодействуют друг с другом в виртуальном водоеме. В компьютерном мире, где обитают эти рыбы, действуют свои физические законы, основанные на физике настоящей воды. Как правило, программисты стараются адекватно воспроизвести поведение одной, отдельно взятой, рыбы. Затем эту правильную рыбу многократно воспроизводят с некоторыми изменениями и всю стаю выпускают в “водоем”, где рыбы “встречаются” и вступают в контакт друг с другом. Например, уходят от столкновений и объединяются в “школе”.