10 Введение
ного определения алгоритма. Почти одновременно в 30-х
годах XX в. независимо (и в разных формах) рядом круп-
ных математиков того времени — А. Тьюрингом ([Tur36]),
А. Черчем ([Chu36]), Э. Постом ([Pos36]), К. Геделем, С. Клини
и др. — было формализовано понятие вычислимости. Э. Пост
и А. Тьюринг определили алгоритм как вычисление на аб-
страктных машинах. При этом вычислимость функции пони-
малась как вычислимость на машинах Тьюринга. К. Гедель,
А. Черч и С. Клини определили понятие вычислимости по-
другому, на языке введенных ими арифметических функций,
которые теперь называются частично рекурсивными функци-
ями. Позднее А.А. Марков ввел понятие нормального алгориф-
ма
2
. Однако выяснилось, что все эти определения, совершенно
различные по форме, описывают некое единое математическое
понятие — понятие алгоритма.
Доказательство алгоритмической неразрешимости многих
известных задач и получение ряда других отрицательных ре-
зультатов послужило хорошим стимулом развития классиче-
ской теории алгоритмов. По-видимому, не случайно эти иссле-
дования непосредственно предшествовали появлению первых
компьютеров в 40-х годах прошлого века, поскольку теория
алгоритмов явилась теоретическим фундаментом для созда-
ния и использования вычислительных машин. В рамках клас-
сической теории алгоритмов задаются вопросами о разрешимо-
сти различных задач, при этом вычислительная сложность ал-
горитмов принципиально не исследуется. Однако многие дис-
кретные задачи, очевидно, алгоритмически разрешимы с помо-
щью переборных алгоритмов. Такие прямые переборные алго-
ритмы уже при небольших исходных параметрах вынуждены
просматривать огромное (обычно экспоненциальное) число ва-
2
Именно алгорифмы Маркова, а не алгоритмы Маркова. Так назвал
их А.А.Марков, подчеркивая арабо-греческую этимологию слова. К тому
же в дореволюционных российских энциклопедиях и учебниках исполь-
зовалось слово алгориφм. В настоящее время слово алгорифм иногда ис-
пользуют математики так называемой «питерской школы».