Книга Наука Плоского мира - Терри Пратчетт
Шрифт:
Интервал:
Закладка:
Участки ДНК, кодирующие функциональные белки, называются генами. Все остальные участки называются по-разному. Некоторые из них кодируют белки, контролирующие, в свою очередь, момент «включения» того или иного гена, производящего определенные белки; такие участки называются регуляторными (гомеотическими) генами. Существуют участки, в просторечии называемые «мусорными ДНК», что на научном языке означает: «Черт его знает, зачем оно нужно». Некоторые слишком буквально мыслящие ученые понимают это так: «Эти ДНК вообще не нужны», ставя тем самым коня природы позади телеги человеческого понимания. Скорее всего, эти участки представляют собой некую смесь: на ранних стадиях эволюции ДНК они выполняли некую роль, в данный момент ненужную (но, возможно, они еще пригодятся, скажем, если появится какой-нибудь древний паразит); кроме того, они контролируют способ, которым гены активируют и дезактивируют производставо белков; наконец, это участки ДНК, контролирующие предыдущие участки, и так далее, и так далее. Таким образом, некоторые участки ДНК действительно могут оказаться «мусорными», а некоторые, как шутят генетики, могут оказаться закодированным посланием: «Здесь был Бог. Я существую, да, ха-ха-ха».
Эволюционный процесс не всегда идет прямым и понятным людям путем. Но это еще не означает, что Дарвин ошибался. Это значит, что даже если он прав, в отсутствие нарративиума история, абсолютно понятная для эволюции, для людей не будет иметь смысла. Мы допускаем, что многое из обнаруженного в живых организмах давало им какое-нибудь преимущество на каждом этапе их развития, но игра до того сложна, что мы не можем связно рассказать, зачем именно было нужно то или иное преимущество. Чтобы показать, насколько странным путем, даже в сравнительно простых обстоятельствах, может идти эволюционный процесс, лучше всего обратиться не к животным и не к растениям, а к электронным схемам.
С 1993 года инженер Адриан Томпсон занимается естественным отбором среди интегральных схем. В основе лежит технология, известная как генетический алгоритм, широко использующаяся в кибернетике. Алгоритм – это такая специальная программа, «рецепт» решения той или иной задачи. Одним из способов поиска алгоритмов для решения по-настоящему сложных задач является «скрещивание» и естественный отбор. Под «скрещиванием» понимается «смешивание элементов одного алгоритма с частями другого». Биологи называют это рекомбинацией. Каждый организм, размножающийся половым путем, в том числе и наш, скрещивает родительские хромосомы именно в этой манере. Подобная технология, равно как и ее результат, называется генетическим алгоритмом. Когда этот метод работает, все идет просто великолепно. Его главный недостаток в том, что не всегда можно толково объяснить, как именно алгоритм добивается своих результатов. Впрочем, вернемся к электронике.
Томпсон задался вопросом: что будет, если применить генетический алгоритм к электронным схемам? Для этого надо поставить некую задачу, случайным образом «скрестить» схемы, как способные, так и не способные ее решить, отобрать те, которые справляются лучше, и повторять все это в течение многих поколений.
Большинство инженеров‑электронщиков, обдумав подобный проект, сразу скажут, что использовать для этого реальные схемы довольно глупо. Вместо этого можно создать их компьютерные симуляторы (если вы, конечно, знаете, как ведет себя схема), так будет и дешевле, и быстрее. Томпсон же не решился довериться компьютеру: а вдруг настоящие схемы «знают» что-то, недоступное симуляции?
Для начала он выбрал следующую задачу: распознать два входящих сигнала, первый частотой 1 кГц, второй – 10 кГц, то есть 1000 и 10 000 колебаний в секунду. Вы можете думать о них как о низком и высоком звуке. Схема должна принять сигнал, обработать его в соответствии с собственной структурой и передать сигнал на выходе. Для высокого звука схеме следовало выдавать сигнал в ноль вольт, то есть фактически – не реагировать, для низкого звука – постоянное напряжение в 5 вольт. (На самом деле эти условия изначально не были сформулированы: подошли бы два любых постоянных ответа, но в итоге получилось именно так.)
Если бы Томпсон принялся собирать свои тестовые схемы вручную, это заняло бы целую вечность. Он применил программируемую пользователем вентильную матрицу – микрочип, представляющий собой конфигурацию транзисторных «логических блоков» (можно назвать их «умными переключателями»). При загрузке новых инструкций в память конфигурации чипа, соединения между которыми могут переключаться, соответствующее переключение между блоками создает ту или иную конфигурацию чипа в его памяти.
Эти инструкции аналогичны генетическому коду живого организма и могут быть «скрещены». Именно это и сделал Томпсон. Он взял матрицу из 100 логических блоков и сгенерировал на компьютере случайную популяцию из 50 инструкционных кодов. Компьютер загружал каждый набор инструкций в матрицу, подавал входные сигналы и пытался найти признаки, которые могли бы помочь в «выведении» подходящей электронной схемы. На первом этапе это могло быть чем угодно, главное, чтобы оно не выглядело случайным. Самой подходящей «особью» первого поколения стала схема, выдававшая 5V независимо от частоты полученного сигнала. Все наименее приспособленные были «убиты», то есть удалены, а более приспособленные – «скрещены» (скопированы и рекомбинированы). После чего все повторилось сначала.
Самым интересным в эксперименте оказались не технические подробности его проведения, а то, как система искала решение и замечательная особенность этого решения. К 220‑му поколению самая подходящая схема выдавала сигналы, практически не отличавщиеся от входных, то есть две волны различной частоты. Того же результата можно было достичь, вообще не прибегая к экспериментам с электронными схемами, достаточно было одного провода! Желаемые постоянные исходящие сигналы так и не появились.
К 650‑му поколению сигнал на выходе по низкой частоте был постоянным, однако на высокой сигнал продолжал быть различным. Так длилось до 2800‑го поколения, схема выдавала почти постоянные и различные сигналы для того и другого звука. Только к 4100‑му поколению странный глюк был устранен, после чего эволюция фактически пришла к логическому концу.
Самым необычным в этом эксперименте стала структура получившегося решения. Ни один человеческий инженер не смог бы такое изобрести. И ни один инженер не смог бы найти решение, состоящее всего из ста логических блоков. Человеческое решение было бы понятным, мы смогли бы рассказать убедительную историю о том, как оно работает. Например, оно бы включало в себя генератор тактовой частоты, то есть электронную схему, которая выдает сигналы с постоянной частотой. Она стала бы базовой для сравнения с другими частотами. Но вы не сможете создать генератор тактовой частоты с помощью всего ста логических блоков. Эволюция же не обременяла себя созданием такого генератора. Вместо этого она решила пропустить входящий сигнал через серию замкнутых контуров. Они, по-видимому, создавали разнесенные во времени версии сигналов, которые в дальнейшем объединялись для получения постоянных выходных сигналов. Возможно. Сам Томпсон описал действие примерно в таких словах: «В действительности я не знаю, как оно работает».