Алгоритм

Алгори́тм (от лат. написания арабского имени аль-Хорезми – Algorithmi), инструкция, точное описание способа действия с использованием простых, общепонятных элементов (например, операций). В математике понятие алгоритма сужается и уточняется следующим образом. Действие состоит в последовательности переходов от одного состояния вычисления (процесса работы алгоритма) к другому; состояния – это конструктивные объекты (например, слова в данном алфавите; в частности, целые числа в десятичной или двоичной записи). Алгоритм также является конструктивным объектом (см. Конструктивная математика). Первое состояние называется исходным данным, последнее – результатом работы алгоритма. Фиксированный алгоритм можно применять к различным исходным данным; для некоторых он может не заканчивать работу. Тем самым алгоритм задаёт (возможно, не всюду определённую) функцию, вычисляемую этим алгоритмом. Такие функции называются вычислимыми. Понятия алгоритма и вычислимой функции относятся к исходным понятиям математики и через другие понятия не выражаются. Рассматриваются расширения понятия алгоритма, например вероятностные алгоритмы, т. н. алгоритмы с оракулом, алгоритмы взаимодействия с окружающей средой, параллельные алгоритмы. Часто алгоритм определяется с помощью абстрактной вычислительной машины, получающей на вход программу действия и исходное данное.

До конца 19 в. алгоритм – общее понятие, относящееся к известным алгоритмам, таким как алгоритм выполнения арифметических операций в десятичной системе счисления, алгоритм дифференцирования функций, алгоритм Евклида нахождения общей меры отрезков или наибольшего общего делителя многочленов. В 1900–1910-х гг. были осознаны трудности в построении общего алгоритма решения некоторых массовых проблем. В 1930-е гг. предложены математические определения понятия вычислимой функции, исходящие из представлений о том, что может делать человек-вычислитель; среди них – понятие рекурсивной функции и понятие функции, вычислимой машиной Тьюринга. Тогда же была доказана эквивалентность различных понятий вычислимой функции и классов вычислимых функций, порождаемых этими понятиями; сформулирован т. н. тезис Чёрча, принятый в качестве естественно-научного факта: класс вычислимых функций совпадает с любым из упомянутых выше классов. Развитие компьютерных технологий не изменило представлений о классе функций, вычисляемых алгоритмами.

Построение и анализ конкретных алгоритмов, предназначенных для выполнения компьютером, относится к программированию. Выделяются также классы вычислительных алгоритмов и обучающихся алгоритмов.

См. также статьи Алгоритмическая проблема, Сложность алгоритма, Теория алгоритмов.

Литература

  • Успенский В. А. Теория алгоритмов: основные открытия и приложения / В. А. Успенский, А. Л. Семенов. – Москва : Наука, 1987. – (Библиотечка программиста).
  • Кормен Т. Алгоритмы : построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест. – Москва : МЦНМО, 2002. – (Классические учебники: computer science).
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru