Выбрать главу

Конечно, наибольший интерес представляет взаимодействие тех же инстинктов в случае человека. Это взаимодействие фантастическим образом отразилось в извечном противопоставлении "добра" и "зла", в древних метафорах "Эрос" и "Танатос", а в Новое время – в квазинаучных терминах "либидо " и "мортидо". Весьма вероятно, что Лоренц собирался заняться этим вопросом во втором томе своей последней книги “Оборотная сторона зеркала”[5], но смерть помешала ему завершить этот труд. Некоторые идеи, относящиеся к человеческому обществу, он опубликовал в лекциях под названием “Восемь смертных грехов цивилизованного человечества”[6].

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 могут быть различны. Они находятся в компьютере в качестве встроенных в него программ и называются подпрограммами программы А.

вернуться

5

Konrad Lorenz. Die Rückseite des Spiegels. Versuch einer Naturgeschichte menschlichen Erkennens. R.Piper & Co. Verlag, München, 1973. Русский перевод в цитированном выше сборнике работ Лоренца.

вернуться

6

Konrad Lorenz. Die acht Todsünden der zivilisierten Menschheit. R.Piper Verlag, München, 1973. Русский перевод в том же сборнике.