Огарок во тьме. Моя жизнь в науке - Ричард Докинз
Составляя программу, я никак не думал, что она сможет выдать что-нибудь кроме различных древовидных форм. Я ожидал плакучих ив, ливанских кедров, пирамидальных тополей, водорослей, в крайнем случае – оленьих рогов. Ни моя биологическая интуиция, ни мой двадцатилетний опыт программиста, ни самые дерзкие из моих фантазий – ничто не подготовило меня к тому, что я увидел на экране. Уже не помню, в какой именно момент меня осенило, что из получающейся последовательности может выйти нечто, напоминающее насекомое. Охваченный этой нелепой догадкой, я из поколения в поколение стал отбирать те биоморфы, которые были похожи на насекомых хоть сколько-нибудь больше других. Чем сильнее проступало сходство, тем меньше я верил своим глазам. <… > До сих пор не могу удержаться и не поделиться с вами тем чувством ликования, которое я испытал, когда эти изящные существа впервые возникли передо мной на экране. В голове отчетливо зазвучали торжествующие начальные аккорды из “Так говорил Заратустра” (главный мотив в фильме “Космическая одиссея 2011 года”). От волнения я не мог есть, а ночью, когда попытался заснуть, у меня перед глазами, стоило лишь закрыть их, кишели “мои” насекомые.
Существуют и продаются компьютерные игры, в которых игроку кажется, будто он блуждает по подземному лабиринту, имеющему определенную, хотя и сложную, географию, и встречает там драконов, минотавров и прочих сказочных противников. Эти чудовища не слишком разнообразны, и все они, так же как и сам лабиринт, были разработаны человеческим разумом программиста. В эволюционной игре – как компьютерной, так и реальной – у игрока (или у наблюдателя) тоже создается впечатление, что он, образно говоря, бродит по лабиринту разветвленных коридоров, но только количество возможных маршрутов практически бесконечно, а монстры, встречающиеся на пути, непредумышленны и непредсказуемы. Когда я скитался по закоулкам Страны биоморфов, мне попадались жаброногие рачки, храмы ацтеков, окна готических соборов, наскальные изображения кенгуру, а однажды – памятный, но не желающий воспроизводиться случай – вполне приемлемая карикатура на теперешнего профессора логики имени Уайкхема.
Последний абзац затрагивает один из основных биологических уроков, что я вынес из этого упражнения в программировании. Перед моим внутренним взором стояла Страна биоморфов, многомерный морфологический ландшафт, девятимерный гиперкуб, в котором скрывались все возможные биоморфы – каждый соединялся со всеми остальными плавной траекторией пошаговой эволюции. В теории (хоть и не так аккуратно, потому что количество генов не задано) мы можем представить себе всех возможных реальных животных, расположенных в n-мерном гиперкубе: в третьей главе “Слепого часовщика” я назвал это генетическим пространством. Большинство обитателей этого чудовищного (выбор слова не случаен) гиперкуба не только никогда не существовали, но и не выжили бы, если бы появились: “Количество способов быть мертвым неизмеримо больше количества способов быть живым” (эта фраза, к моему удовольствию, вошла в “Оксфордский словарь цитат”). Существующие животные – островки в этом гиперпространстве, рассеянные далеко друг от друга, будто в некоей Гиперполинезии: они окружены прибрежными рифами из близкородственных животных и отделены от остальных островов во многом непреодолимыми пространствами невозможных животных. Реальная эволюция отражена в траекториях внутри гиперкуба. Видите ли, хоть я и не силен в решении уравнений, но, может быть, во мне есть зачатки математической души. По крайней мере, я на это надеюсь.
Набор биоморфов, выведенных программой “Слепой часовщик”.
Позже Дэн Деннет плодотворно развил мою идею под названием “Менделевская библиотека”, а я подхватил ее дальше в книге “Восхождение на гору Невероятности”, в воображаемом Музее всех возможных животных:
Представьте себе музей с залами, простирающимися во все стороны, а также вверх и вниз сколько хватает глаз. В его хранилищах собраны все виды животных, которые когда-либо существовали в природе или гипотетически могли бы существовать. Каждый вид помещается рядом с теми, на кого он больше всего похож. Направление одной музейной галереи – это одно измерение, отвечающее тому или иному направлению, в котором может проявляться изменчивость животных. <… > Галереи должны пересекаться всевозможными способами, и не только в привычном для нас и нашего восприятия трехмерном пространстве.
В книге “Восхождение на гору Невероятности” я говорил об этом музее на особом примере раковин моллюсков. Довольно давно было понятно, что раковина – это (логарифмически) расширяющаяся трубка, которая растет с краю. Если не обращать внимания на форму поперечного сечения трубки (скажем, принять ее за круг), то форма любой раковины определяется всего лишь тремя числами, которые в “Восхождении на гору Невероятности” я назвал “расширение”, “червячность” и “конусность”. “Расширение” определяет, с какой скоростью трубка расширяется по мере роста, “конусность” – ее отклонение от плоскости. У типичного аммонита конусность равна нулю (он лежит в одной плоскости), а вот у раковины Turritella она высока. Расширение высоко у моллюска-сердцевика (“трубка” расширяется так быстро, что моллюск обретает конечную форму, так и не дойдя до подобия трубки), но низко у Turritella. “Червячность” дольше объяснять словами, но воплощением высокой “червячности” на иллюстрации служит Spirula. Американский палеонтолог Дэвид Рауп сообразил: если разнообразие форм ряда животных определяется всего лишь тремя числами, то этих животных можно расположить в простом математическом пространстве – в трехмерном кубе. Обойдемся без гиперкуба – достаточно будет обычного куба. И таким же образом я сообразил, что могу написать версию биоморфной программы для улиток, где будет всего три гена вместо девяти. Я бы выбирал для дальнейшего размножения не набор древоподобных биоморфов, а набор улиткоморфов – или, чтобы не смешивать языки, конхоморфов. Если поколение за поколением выбирать определенного “производителя”, можно провести эволюцию от любой одной раковины к любой другой. Эволюция воплотится в пошаговой траектории сквозь куб всех возможных раковин.
Раковины, на которых видно “расширение”, “червячность” и “конусность”:
(a) высокое “расширение”: Lt conch a castrensis, двустворчатый моллюск;
(b) высокая “червячность”: Spirilla: (с) высокая “конусность”: Turritella terehra.
Чтобы написать программу, мне требовалось всего лишь заменить старую девятигенную эмбриологию биоморфов на новый модуль трехгенной эмбриологии раковин. Все прочее оставалось без изменений. И вправду, оказалось очень просто вырастить любую раковину из любой другой – просто выбирая в каждом поколении раковину, которая больше всего была похожа на конечную цель. В те времена еще не было 3D-принтеров, а то бы я мог напечатать весь свой куб. Но пришлось обойтись тем, чтобы напечатать шесть его граней на плоских листах бумаги, которыми я обклеил картонную коробку. На цветной вклейке