Если хотя бы одно из перечисленных условий не выполняется, то данное множество правил алгоритмом не является. Иначе говоря, все инструкции алгоритма должны быть составлены таким образом, чтобы в них полностью отсутствовала творческая составляющая. Иначе это будет не алгоритм.
3
Как уже было отмечено, компьютер может работать только по алгоритму (абсолютно любая компьютерная программа представляет собой не что иное, как конечную последовательность конкретных инструкций), а следовательно, никаких задач он не может решить в принципе. Ведь решить задачу – это значит разработать алгоритм её решения, и только потом выполнить его. Но разработать алгоритм по какому-то заранее разработанному алгоритму невозможно. (Даже формулировка этой проблемы получается какой-то замысловатой.) Ведь сама по себе разработка алгоритма является процессом творческим. А процесс творчества и процесс выполнения алгоритма это совершенно разные действия.
Рассмотрим пример. Допустим, начальник какого-то предприятия дал приказ своему бухгалтеру составить годовой финансовый отчёт в стандартной форме. В этом случае бухгалтер будет действовать по заранее разработанному алгоритму. То есть, будет выполнять заранее определённые, упорядоченные действия, а когда он все эти действия выполнит, то получится годовой отчёт. И бухгалтеру при такой работе, строго говоря, нет необходимости понимать смысл своих действий (хотя в действительности он, конечно, всё понимает), надо просто последовательно выполнить то, что заранее определено.
Но вот ситуация изменилась. Начальник, просмотрев составленный отчёт, снова вызывает бухгалтера и даёт ему несколько другой приказ: составить тот же отчёт заново, но при этом такие-то показатели занизить, такие-то завысить, а такие-то вообще не показывать. Но при этом чтобы обязательно всё выглядело правдоподобно, и чтоб дебет с кредитом сошлись тютелька в тютельку.
Вот тут-то бухгалтеру без понимания сути поставленной задачи никак не обойтись. Ему придётся мобилизовать все свои творческие способности и действовать, руководствуясь чем угодно, но только не конечной последовательностью конкретных правил. То есть действовать совсем не по алгоритму. Иначе говоря, ему придётся придумать последовательность действий, которая приведёт к желаемому результату, то есть разработать алгоритм.
Разумеется, приведённый пример творческой деятельности бухгалтера нельзя брать за основу для понимания такого сложного и малопонятного явления как творчество. Это слишком упрощённая ситуация. Но, к сожалению, дать чёткое объяснение этому явлению нет никакой возможности. Слишком много самых разных проявлений оно имеет, в том числе и полностью непонятных, не поддающихся никакой логике. Просто надо обратить внимание, что большинство решаемых человеком проблем имеет в своей основе творческую составляющую, и если бы человек умел действовать только по алгоритму, то он не мог бы делать практически вообще ничего.
Хотя слово «алгоритм» является, в принципе, математическим понятием и в повседневной жизни практически не употребляется, любой человек очень часто делает не что иное, как выполняет какой-то алгоритм. Любой кулинарный рецепт или инструкция для пользования каким-либо бытовым прибором представляют собой самый настоящий алгоритм. Любая математическая формула или закон физики тоже является алгоритмом. Но формулу обычно называют формулой, а рецепт рецептом. Так проще: само название указывает на специфику рассматриваемого алгоритма. К тому же, в этих случаях нет острой необходимости уделять особо пристальное внимание соблюдению четырёх обязательных принципов, которым должен удовлетворять алгоритм. В формуле эти принципы соблюдаются сами собой (попробуйте хоть в какой-нибудь математической формуле найти несоблюдение этих принципов), а любая инструкция составляется для человека, который всегда обладает хоть каким-то интеллектом и суть задачи всегда понимает. В случае чего, и сам додуматься может.
Но вот в вычислительной технике слово «алгоритм» употребляется в самом «чистом» значении и является в этой области одним из основных понятий. Разработка самых разных алгоритмов занимает центральное место в деятельности разработчиков программной и аппаратной составляющих вычислительной техники. И при этом, конечно же, совершенно недопустимо какое бы то ни было нарушение принципов построения алгоритма. Компьютер, выполняя последовательность составленных для него команд, абсолютно не способен «догадаться» до чего-нибудь сам. Принцип работы такой. А попытка устранения этого «дефекта» без изменения принципа работы компьютера равнозначна попытке сделать авторучку, которая пишет без ошибок.
Читать дальше