РУНАЛИР. Русский научный алгоритм изобретательства и рационализации - страница 5

Шрифт
Интервал


. Если метод – это карта маршрута в общих чертах, то алгоритм – это детальная пошаговая инструкция для путешественника, не оставляющая сомнений в том, куда и как идти на каждом перекрёстке. Алгоритм всегда предполагает наличие исполнителя (человека, компьютера, механизма) и предписывает ему совершенно конкретные действия в строго определённом порядке.

Чтобы последовательность шагов могла называться алгоритмом, она должна обладать несколькими фундаментальными свойствами. Без них это будет не надёжная инструкция, а просто набор пожеланий или неясных указаний.

Первое свойство – однозначность, или детерминированность. Каждый шаг алгоритма должен быть сформулирован абсолютно чётко, не допуская никаких двусмысленностей или произвольных толкований. Исполнитель, будь то человек или машина, должен точно понимать, что именно нужно сделать на данном шаге. Представьте себе рецепт, где сказано: «Добавьте немного муки». Сколько это – «немного»? У каждого своё представление. Это не алгоритм. Алгоритмическая инструкция звучала бы так: «Добавьте 150 граммов просеянной пшеничной муки». Однозначность гарантирует, что при одних и тех же исходных данных исполнитель всегда будет выполнять одни и те же действия.

Второе свойство – выполнимость, или осуществимость. Каждый шаг алгоритма должен быть практически реализуем тем исполнителем, для которого он предназначен. Нельзя включить в алгоритм для человека шаг «подпрыгните на 100 метров» или в алгоритм для обычного компьютера – «мгновенно решите задачу, требующую перебора триллионов вариантов». Алгоритм должен оперировать только теми действиями, которые исполнитель в принципе способен совершить, используя доступные ему средства и возможности в рамках законов физического мира.

Третье свойство – конечность. Алгоритм должен завершать свою работу после выполнения конечного числа шагов. Он не может выполняться бесконечно. Даже если алгоритм включает циклы, повторения действий, должно быть гарантировано, что этот цикл когда-нибудь прервётся, и алгоритм придёт к своему финалу. Процесс, который не имеет чёткого условия завершения, не является алгоритмом в строгом смысле слова.

И четвёртое, важнейшее свойство – результативность. Мало просто завершиться, алгоритм должен приводить к ожидаемому, правильному результату