Слово алгоритм стало широко употребляться в последнее
время. Оно означает описание совокупности действий, составляющих некоторый
процесс. Обычно здесь подразумевают процесс решения некоторой задачи, но и
кулинарный рецепт, и инструкция по пользованию стиральной машиной, и описание
процедуры проявления фотопленки, и еще многие и многие другие правила, не
имеющие отношения к математике, являются алгоритмами.
Термин «алгоритм» произошел от имени ученого 18-19 веков
Аль-Хорезми. Его имя говорит, что родился он в городе Хорезме, который сейчас
входит в состав Узбекистана. Большую часть своей жизни Аль-Хорезми провел при
дворе багдадских халифов. С его именем связывают создание в Багдаде «Дома
мудрости» — багдадского хранилища рукописей. Из математических работ
Аль-Хорезми до нас дошли всего две — алгебраическая и арифметическая. Алгебраическая
работа называется «Альджебр уаль-мукабала», что означает «Восстановление и
противоположение». Восстановлением он назвал перенос отрицательных членов в
другую часть уравнения, а противоположением — сокращение равных членов в разных
частях уравнения. От названия этой книги родилось слово алгебра.
Вторая книга, долгое время считавшаяся потерянной, была
найдена в 1857 году в библиотеке Кембриджского университета (Великобритания).
Точнее, был найден ее перевод на латинский язык. В этой книге даны четкие
правила арифметических действий, практически те же самые, что используются
сейчас. Первые ее строки были переведены так: «Сказал Алгоритми. Воздадим
хвалу Богу, нашему вождю и защитнику». Так имя Аль-Хорезми перешло в
Алгоритми, откуда и появилось слово «алгоритм». Его ввел в обиход немецкий
математик Эрнст Шредер (1841-1902) для обозначения вычислительных процедур механического
характера.
Одним из древнейших математических алгоритмов является
алгоритм Евклида для нахождения наибольшего общего делителя двух положительных
чисел. Вот его простейший вид. Пусть заданы два целых числа. Если они равны, то
их наибольшим делителем будет каждое из них. В этом случае процесс заканчивается
на первом шаге. Если они не равны, то вычитаем из большего числа меньшее. Это
шаг алгоритма.
Теперь рассмотрим вычитаемое и разность. Проделаем с
ними ту же самую процедуру. Этот процесс будет продолжаться до тех пор, пока
вычитаемое и разность не станут равны. Поскольку большее число в парах на
каждом шаге уменьшается, но всегда не меньше единицы, то такой процесс не
может продолжаться бесконечно, а закончится через несколько шагов.
Интуитивное представление об алгоритме как о системе
предписаний для действий не могло удовлетворить математиков еще в прошлом
веке, не говоря уже о нынешнем, когда информатика прочно вошла во все сферы человеческой
деятельности.
В двадцатых годах нашего века задача точного определения
понятия алгоритма стала одной из центральных проблем математики. Дело в том,
что тогда существовало две точки зрения на математические проблемы:
Все проблемы разрешимы, но для некоторых алгоритм
решения еще не найден, поскольку еще не развиты соответствующие разделы
математики.
Есть проблемы, для решения которых вообще не может
существовать алгоритма. Правы оказались сторонники второй точки зрения, но для
того, чтобы ее обосновать, необходимо было дать четкое определение алгоритма.
Это было сделано трудами целой плеяды математиков. Любопытно, что важной вехой
в этой работе было создание умозрительной машины, которая на бесконечной ленте
могла лишь ставить и стирать точки
и передвигать эту ленту влево и вправо, но при этом оказалось,
что она может выполнять все логические операции. Ее назвали «машиной Тьюринга»
по имени английского математика и инженера Алана Тьюринга (1912-1954), описавшего
ее в 1936 году.
Точное определение алгоритма дало возможность к
настоящему времени доказать алгоритмическую неразрешимость более десятка
математических проблем.
Если алгоритм предназначен для выполнения на
вычислительной машине, то его нужно записать на языке, понятном этой машине.
Такая запись называется программой, а язык, на котором записана программа,
называется языком программирования.
Таких языков придумано довольно много: БЕЙСИК, ФОРТРАН, ПАСКАЛЬ, АДА, СИ.
Каждый из них имеет свои достоинства и недостатки, а поэтому и свою область
применения — статистика, экономика, физика и т. д.
|