2. Открытые программы
2. Открытые программы
Самые простые инстинктивные программы предписывают животному единственную последовательность движений, выполняемых одно за другим в строго определенном порядке. У низших животных, например, у насекомых, наблюдаются врожденные, строго автоматические последовательности инстинктивных действий. Оса вида сфекс парализует сверчка, прокалывая жалом три его ганглия, а затем помещает его в норку для питания своей личинки. Все эти операции жестко «запрограммированы»: например, сфекс втаскивает сверчка в вырытую ямку за усики, но если обрезать парализованному сверчку его усики, то сфекс не умеет втащить его в норку; а если вытащить сверчка из норки, то сфекс возвращается к норке и снова замуровывает ее песком, хотя вылупившаяся там личинка должна неминуемо погибнуть. Подобные автоматические операции больше напоминают работу машины, чем сознательные действия человека; но слово «программа» давно уже было перенесено с действий человека на действия вычислительной машины. У высших животных, и в особенности у человека, таким образом программируются лишь простейшие инстинктивные реакции, как, например, отдергивание пальца при уколе или опускание века при опасности для глаза, и составные элементы более сложных движений. Программы поведения, преобладающие у низших животных, сохранились у высших животных и человека лишь в виде коротких «автоматических» последовательностей. Аналогичные «жесткие» программы встречались во многих машинах и до изобретения компьютера; примерами могут служить шарманка, торговый автомат или арифмометр.
Высшие животные способны делать выбор: в зависимости от обстоятельств, обнаруживаемых в ходе выполнения программы, они выбирают то или иное продолжение этой программы – также из запаса инстинктивно заданных программ. Подобный механизм выбора применяется в компьютере и составляет его принципиальное отличие от более простых машин; этот механизм называется командой условного перехода (conditional jump). Значение этой идеи, уже известной в математической теории, подчеркнул фон Нейман, которому принадлежит первое систематическое изложение концепции компьютера. Условные переходы – важная часть того, что надо знать о компьютерах при чтении этой книги. Мы поясним это понятие на простом примере.
Предположим, что дан перечень данных для выполнения некоторого проекта, и имеется программа вычисления стоимости проекта. Исходя из данных, программа вычисляет стоимость проекта. На каждом шаге вычисления сумма расходов возрастает. Если она достигает заданной предельной величины, команда условного перехода останавливает работу компьютера и выдает символ, означающий невозможность проекта. В противном случае вычисление продолжается, и после исчерпания программы выдается стоимость проекта.
Уже такой простейший условный переход выходит за пределы возможностей некоторых насекомых, неспособных остановить действие жестко запрограммированной последовательности движений, даже если оно становится бессмысленным. Но высшие животные ведут себя так, как будто их инстинктивные программы содержат условные переходы.
В более общем случае «ветвление» команды может выглядеть следующим образом. Предположим, что целью программы А является нахождение некоторого числа, заключенного в "массиве памяти" М (внутри компьютера). Пусть, далее, массив М состоит из нескольких частей – например, из трех отдельных массивов М1 , М2 , М3 . Поиск состоит в следующем: "основная" часть А0 программы А вычисляет, по некоторым введенным в компьютер исходным данным, число q, заключенное между нулем и единицей; затем, если q меньше 0,3 , команда условного перехода включает некоторую вспомогательную программу А1 , начинающую поиск в массиве М1 и выдающую окончательный результат; если q не меньше 0,3 , но меньше 0,7 , включается другая программа А2, находящая результат в массиве М2; и если q не меньше 0,7 , но не больше 1, включается третья программа А3, находящая результат в массиве М3; при этом программы поиска А1 , А2 , А3 могут быть различны. Они находятся в компьютере в качестве встроенных в него программ и называются подпрограммами программы А.
Такой "поиск с вариантами" представляет простейший случай. Но чаще всего встроенные в компьютер подпрограммы и массивы памяти дополняются "внешними" подпрограммами и массивами памяти, следующим образом. В компьютере оставляются "пробелы" для подключения "внешних" подпрограмм и массивов, которые вводит в эти места пользователь, и к которым может обращаться основная программа А0. Вместе с этими пробелами А0 образует "открытую программу", возможности которой таким образом значительно расширяются: она способна вести поиск не только "внутри компьютера", но, в некотором смысле, и во "внешнем мире".
Устройства, аналогичные встроенным подпрограммам, несомненно имеются в геноме животных. Эти подпрограммы соответствуют наиболее обычным ситуациям, какие могут встретиться в жизни особи данного вида. Допустим, что геном содержит программу некоторой инстинктивной последовательности действий – например, поиска пищи. Тогда в этом геноме, выработанном эволюцией и отражающем исторический опыт вида, закодированы ситуации A1, А2, …, обычно встречающиеся при поиске пищи. Для этих случаев в геноме содержатся готовые подпрограммы, включаемые в зависимости от наступления той или иной ситуации. В частности, сюда относятся подпрограммы, распознающие съедобность или несъедобность пищи. У видов, широко распространенных по Земле, как, например, крысы или вороны, эти подпрограммы должны быть очень развиты, поскольку этим видам приходится встречаться с разнообразными видами пищи.
Запас программ, заключенный в геноме животного, содержит все врожденные способы его инстинктивного поведения, от автоматических программ внутренних органов до сложнейших способов возможного для него обучения. Этот запас программ аналогичен набору встроенных в компьютер исходных программ, с которыми его продают.[7]
В геноме программируются не только способы поведения, но и некоторые виды обучения. Способы обучения часто требуют участия других особей. Например, при рождении котенок наделен инстинктивной программой, побуждающей его ловить движущиеся мелкие предметы; но поедание пойманных предметов не входит в эту программу – вероятно, потому, что распознавание их съедобности входит в другую программу. Если котенок встретится с мышами, он будет их ловить, но не будет есть. У кошки-матери, в свою очередь, есть врожденная программа, побуждающая ее учить котенка есть пойманных мышей и других подобных животных. Обе эти программы сочетаются в поведение, нужное для питания; котенок, выращенный без матери, или с матерью, но в отсутствие мышей, будет их ловить, но не будет есть. По-видимому, здесь ловля добычи отделена от распознавания съедобности. Вся эта последовательность действий, включая обучение детенышей, "предусмотрена" геномом.
Но, как известно, животные – во всяком случае, высшие животные – способны также к индивидуальному обучению, "не предусмотренному" геномом и зависящему от условий жизни отдельной особи, хотя и ограниченному обычными условиями жизни вида. Индивидуальное обучение позволяет животному вырабатывать способы поведения, не закодированные заранее в геноме. Например, крысы способны обучаться распознаванию и употреблению (или неупотреблению) новых видов пищи, даже искусственно изготовленной человеком. Соответствующие подпрограммы поведения, конечно, не могут содержаться в геноме, поскольку речь идет о ситуациях, заведомо не встречавшихся в истории вида. Дело происходит так, как будто в программу поведения животного вводится “внешняя” подпрограмма, наподобие того, как это делает пользователь компьютера. Для этого нужны свободные массивы памяти, заполняемые “извне” и при необходимости подключаемые к основной программе – в предыдущем примере к программе поиска пищи. Наследственные программы с возможностями подключения “внешних” подпрограмм несомненно лежат в основе всякого индивидуального обучения. Эрнст Майр [Ernst Mayr] назвал такие программы (в 1967 году) открытыми программами. Вряд ли надо объяснять важность таких открытых программ для всех видов высшей психической деятельности, особенно у человека.
С индивидуальным обучением связан естественный вопрос: каким образом хранится приобретенная этим путем информация? После открытия молекулярных носителей памяти – молекул ДНК – сразу же возникло предположение, что в этих молекулах записываются вообще все виды имеющейся у живого организма информации. Но попытки обнаружить в ДНК “приобретенную” информацию не привели к цели. Как полагает Лоренц, основная генетическая информация, заключенная в геноме, должна быть, напротив, ограждена от всяких случайных “модификаций” – может быть, полезных для индивида, но не обязательно нужных для сохранения вида. Накопление такой информации “переполнило” бы даже весьма емкие молекулярные хранилища памяти, а ввод и вывод ее из молекул ДНК представлял бы очень сложную задачу, вряд ли осуществимую в приемлемые для этого сроки. Лоренц предполагает, что массивы памяти, куда вводятся “внешние” подпрограммы поведения, находятся в мозгу, в виде стационарных замкнутых токов, протекающих по цепочкам нервных клеток – нейронов. Таким образом, у животных имеется “внешняя память”, аналогичная так называемой внешней памяти компьютеров и находящаяся в том же организме, но вне генома.
Эта весьма правдоподобная гипотеза объясняет также, почему индивидуально приобретенная информация не передается по наследству: наследуется только геном, но видоизменения в структуре мозга гибнут вместе с индивидом. Точно так же, вы не можете обучить ваших детей генетическим путем тому, что хранится в вашей “еще более внешней” памяти – в книгах вашей библиотеки. Когда говорят, что способности в некоторой степени “наследуются”, то имеют в виду лишь генетическую наследственность: детям передается только то, что уже было в геноме родителей.
Вопрос о “наследовании приобретенных признаков” играл важную роль в истории биологии. Ламарк построил всю свою теорию эволюции на предположении, что признаки, приобретенные в течение индивидуальной жизни животного, передаются по наследству, отчего и происходит изменение видов. Механизм естественного отбора, открытый Дарвином, сделал это предположение излишним; но все же Дарвин пошел на некоторые уступки “ламаркизму”, признав (во втором издании “Происхождения видов”) возможное значение также за “наследованием приобретенных признаков”. Эти уступки объяснялись упорными утверждениями ряда авторов, якобы наблюдавших такие явления. В каждом отдельном случае эти утверждения со временем опровергались, но повторяются и по сей день.
Изредка случается, что “изобретение”, сделанное отдельным животным, в течение некоторого времени становится предметом обучения в небольшом сообществе его собратьев по виду. Японские этологи давали макакам картофель, испачканный землей, и одна молодая самка догадалась мыть его в морской воде; затем она же стала очищать смешанное с песком зерно, бросая его в воду и вылавливая всплывавшие зерна. Эти навыки были усвоены другими наблюдавшими их макаками (всего 19 особями). Однако, для такого обучения необходимо наличие не только “изобретателя”, но и подходящей ситуации, чего-то вроде учебного пособия, что случается редко и обычно не повторяется; а “сообщения” о происшедшем не могут сохраняться, поскольку у животных нет языка. Поэтому у животных не образуется накапливающееся знание – то, что мы называем традицией.
Единственным способом изменения видов животных являются случайные изменения генома – мутации – и естественный отбор, закрепляющий крайне редкие полезные для сохранения вида результаты мутаций. Отсюда ясно, почему эволюция видов происходит так медленно: образование нового вида может занимать миллионы лет.