Обычным заблуждением является то, что поскольку такой механизм, как управляемые ракеты, изначально изобретен и построен разумным человеком, он должен находиться под непосредственным контролем разумного человека. Другим вариантом этого заблуждения является следующее утверждение: “Компьютеры не играют в шахматы по-настоящему, поскольку делают только то, что им приказывает человек-оператор”. Нам необходимо разобраться, в чем здесь ошибка, поскольку это поможет нам понять, в каком смысле можно сказать, что гены “контролируют” поведение. Компьютерные шахматы — хороший пример, и я остановлюсь на них немного подробнее.
Компьютеры пока не играют в шахматы как гроссмейстеры, но уже достигли уровня крепкого любителя. Строго говоря, правильнее будет сказать, что уровня крепкого любителя достигли программы, поскольку программам все равно, в какой компьютер их заложат. Какова при этом роль человеческого программиста? Разумеется, он не управляет компьютером постоянно, как дергающий за ниточки кукловод. Это было бы ловким трюком, обманом. Программист пишет программу, закладывает ее в компьютер, и дальше тот предоставлен самому себе: единственным человеком, взаимодействующим с компьютером, остается его противник, печатающий на клавиатуре свои ходы. Может быть, программист предвидит все возможные шахматные позиции и снабжает компьютер списком хороших ходов на любой случай? Наверняка нет, поскольку количество возможных шахматных позиций настолько велико, что прежде, чем программист закончит свой список, наступит конец света. По этой же причине невозможно запрограммировать компьютер на то, чтобы он анализировал “в уме” все возможные ходы с их возможными продолжениями, пока не найдет выигрышной стратегии. Возможных ходов в шахматах больше, чем атомов в галактике. Таким образом, предыдущие возражения не многого стоят. Проблема шахматного программирования чрезвычайно сложна, и не следует удивляться, что программам еще далеко до высочайшего шахматного мастерства.
В действительности, роль программиста больше походит на роль отца, учащего своего сына игре в шахматы. Он объясняет компьютеру ходы и правила, причем делает это не для каждой определенной позиции, а в виде наиболее экономично изложенных правил. Правда, он не говорит по-русски: “Слоны ходят по диагонали”, но заменяет это высказывание его математическим эквивалентом, что-то вроде: “Новые координаты слона получаются из старых путем прибавления той же константы, не обязательно с тем же знаком, одновременно к координатам x и y”, только короче. После этого он может запрограммировать какой-нибудь совет, написанный на таком же математическом или логическом языке, который в переводе на обычный язык означал бы что-нибудь вроде: “не оставляй короля без защиты”, или какой-нибудь ловкий прием, вроде “вилки” конем. Детали этого очень интересны, но рассмотрение их увело бы нас слишком далеко в сторону. Важно здесь следующее: во время игры компьютер предоставлен самому себе и не может ожидать помощи от своего “хозяина”. Все, что тот может сделать, это заранее запрограммировать компьютер наилучшим образом, гармонично совместив списки конкретных знаний с информацией по общей стратегии и тактике.
Так же гены контролируют поведение механизмов для выживания: не прямо, с помощью зажатых в пальцах ниточек кукловода, а косвенно, как программист влияет на поведение программы. Все, что они могут сделать, это запрограммировать поведение заранее, после чего механизм для выживания должен бороться самостоятельно, пока гены пассивно сидят у него внутри. Почему они так пассивны? Почему бы им не взять бразды управления в свои руки и не установить постоянный контроль? Ответ состоит в том, что они этого сделать не могут по причине отставания по времени. Научно-фантастический рассказ “На Андромеду” Фреда Хойля и Джона Эллиота, как и вся хорошая научная фантастика, базируется на интересных научных фактах. Странно, что книга, как кажется, вообще не упоминает открыто об основном из этих фактов. Надеюсь, что авторы не будут против, если я сделаю это здесь.