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