Инстинкт и социальное поведение | страница 24



Высшие животные способны делать выбор: в зависимости от обстоятельств, обнаруживаемых в ходе выполнения программы, они выбирают то или иное продолжение этой программы – также из запаса инстинктивно заданных программ. Подобный механизм выбора применяется в компьютере и составляет его принципиальное отличие от более простых машин; этот механизм называется командой условного перехода (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 , А