Здесь мы должны ввести два термина и дать
их определение, чтобы разобраться в только что поднятой
проблеме. Первый из них —
алгоритм. Алгоритм — это
метод (или механизм), который предписывает, каким образом
достичь поставленной цели. Типичный план полета самолета — это
алгоритм. Инструкция: "Повернуть на перекрестке налево,
повернуть направо на следующем, выехать на улицу Красного льва
и мой дом будет в 120 метрах справа" — тоже алгоритм. Метод
извлечения квадратного корня — тоже алгоритм, как и программа
работы ЭВМ. Последнее очень важно, поскольку нам предстоит
разобраться в некоторой путанице относительно возможностей
компьютера. Компьютер может делать лишь то, что ему точно
указано. Программист, следовательно, должен точно написать
алгоритм, который бы точно определил работу компьютера в
наборе имеющихся в нем данных и команд.Другой термин, который нам понадобится, —
эвристический. Это не столь часто употребляемое имя
прилагательное означает "обеспечивающий открытие", нередко
превращается в имя существительное при переходе от
эвристического метода к "эвристике". Эвристика определяет
метод поведения, помогающий достижению цели, но который не
может быть четко охарактеризован, поскольку мы знаем, чего
хотим, но не знаем, как этого достичь, где лежит
решение. Предположим, Вы хотите достичь конусообразной вершины
горы, закрытой облаками. У нее есть высшая точка, но у Вас нет
точного маршрута. Указание "продолжайте подъем" приведет Вас к
вершине, где бы она ни была. Это эвристика. "Смотри за
пенсами, а фунты сами о себе позаботятся" — эвристическое
указание "как стать богатым".Эвристика предписывает общие правила для
достижения общих целей и в типичных случаях не предписывает
точного маршрута к обозначенной цели, как это делается в
случае алгоритма. Прежде всего число маршрутов к вершине горы
огромно и не столь уж важно, какой из них использован (хотя,
может быть, другой и короче, чем все остальные).
Эти два термина — весьма важные понятия в
кибернетике, поскольку когда дело идет о немыслимых системах,
то, как правило, невозможно составить полную спецификацию всех
целей, а тогда нельзя и написать алгоритм. Но обычно не так уж
трудно составить классификацию целей, так чтобы двигаясь в
общем направлении, улучшить свое положение (по определенному
критерию) по сравнению с первоначальным. Отдавать предпочтение
эвристическим методам перед алгоритмическими — это средство
справиться с растущим разнообразием. Вместо того, чтобы
пытаться организовать все детально, вы организуете лишь часть,
после чего динамика системы вынесет вас туда, куда Вы
стремились.
Эти два способа организации управления
системой большого разнообразия в жизни весьма различны.
Удивительно то, что мы склонны жить каждодневно эвристически,
а проверять и управлять своими действиями — алгоритмически.
Наше главное предназначение _ выжить, сохранить себя, однако
мы точны в деталях ("выезжайте поездом в 8.45", "требуйте
повышения"), когда дело идет об общих и неясно выраженных
целях. Конечно, нам нужен алгоритм, чтобы жить в нашем
синхронизированном мире; и нам необходима также эвристика, но
мы редко отдаем себе в этом отчет. Происходит это потому, что
наше образование организовано вокруг анализа деталей; мы не
понимаем суть вещей (так обучены), пока не уточним их
инфраструктуру. Об этом уже говорилось при обсуждении
функций преобразования, а теперь вновь на этом нужно
останавливаться в связи с рассмотрением целей. "Знай, к чему
стремишься, и организуйся так, чтобы этого достичь" — таков
должен быть наш лозунг, как и лозунг фирмы. Однако мы не знаем
нашего будущего и весьма приблизительно представляем себе то,
к чему стремимся сами, как и наша фирма, и мы недостаточно
глубоко понимаем наше окружение, чтобы уверенно манипулировать
событиями. Предполагается что птицы возникли из рептилий.
Почему, к примеру, ящерица решила научиться летать? Если так,
то каким образом она поменяла свой генетический код, чтобы у
нее выросли крылья? Стоит только сказать такое, чтобы признать
его несерьезность. Но птицы в этот вечер летят и летят мимо
моего окна. Так случилось потому, что сработала эвристика,
пока мы, как всегда, кусали карандаш, намереваясь написать
алгоритмы.