Обобщив вышесказанное, сформулируем следующее понятие алгоритма. Алгоритм — понятное и точное предписание исполнителю на выполнение конечной последовательности действий, приводящей от исходных данных к искомому результату.
Приведенное определение не является определением в математическом смысле слова, т.е. это не формальное определение.
Отметим, что для каждого исполнителя набор допустимых действий (СКИ) всегда ограничен — не может существовать исполнителя, для которого любое действие является допустимым. Перефразированное рассуждение И.Канта обосновывает сформулированное утверждение следующим образом: “Если бы такой исполнитель существовал, то среди его допустимых действий было бы создание такого камня, который он не может поднять. Но это противоречит допустимости действия «Поднять любой камень»”.
Интересно, что существуют задачи, которые человек, вообще говоря, умеет решать, не зная при этом алгоритм ее решения. Например, перед человеком лежат фотографии кошек и собак. Задача состоит в том, чтобы определить, кошка или собака изображена на конкретной фотографии. Человек решает эту задачу, но написать алгоритм решения этой задачи пока чрезвычайно сложно.
С другой стороны, существуют задачи, для которых вообще невозможно построить процедуру решения. Пример простейшего алгоритма:
Задача “Звонок другу по телефону” подразделяется на следующие этапы (шаги):
Поднять телефонную трубку.
Если услышал гудок, то набрать номер друга, иначе конец решения задачи с отрицательным результатом (телефон неисправен).
Определить тип гудков: “вызов” или “занято”. Если “вызов”, перейти к шагу 4, если “занято”, перейти к шагу 6.
Дождаться 6 вызывающих гудков (конкретное число гудков в алгоритме для разных людей может быть различным).
Если за это время абонент не поднял трубку, то конец решения задачи с отрицательным результатом (абонент не отвечает). Иначе начать разговор (задача решена успешно).
Положить телефонную трубку; конец решения задачи с отрицательным результатом (абонент занят).
Достарыңызбен бөлісу: |