Теория Алгоритмов. Теория алгоритмов- (1). Теория алгоритмов
Скачать 0.54 Mb.
|
Теория алгоритмовТеория алгоритмов — раздел математики, изучающий общие свойства алгоритмов. Эта теория тесно связана с математической логикой, поскольку на понятие алгоритма опирается одно из центральных понятий математической логики — понятие исчисления. По существу вся математика связана с теми или иными алгоритмами. Одним из наиболее замечательных достижений математической логики и теории алгоритмов явилась разработка понятия рекурсивной функции и формулировка тезиса Чёрча, утверждающего, что понятие рекурсивной функции является уточнением интуитивного понятия алгоритма. Само понятие «алгоритм» сформировалось лишь в первой половине XX века. Началом систематической разработки теории алгоритмов можно считать 1936 году, когда А. Чёрч опубликовал первое уточнение понятия вычислимой функции и привёл первый пример функции, не являющейся вычислимой. Приблизительно в это же время появились первые уточнения понятия алгоритма (в терминах идеализированных вычислительных машин). В дальнейшем теория алгоритмов получила развитие в трудах многих математиков (А. М. Тьюринг, Э. Л. Пост, С. К. Клини, А. А. Марков, А. Н. Колмогоров и др.). Алгоритмом называется общий единообразный, точно определенный способ решения любой задачи из данной массовой проблемы. Алгоритм — это процесс последовательного построения величин таким образом, что в начальный момент задаётся исходная конечная система величин, а в каждый следующий момент система величин получается по определенному закону из системы величин, имевшихся в предыдущий момент. Последовательный процесс построения величин должен быть конечным и давать результат, то есть решение задачи. Областью применимости алгоритма называется совокупность тех объектов, к которым он применим. Про алгоритм говорят, что он «вычисляет функцию f », коль скоро его область применимости совпадает с областью определения f, и он перерабатывает всякий из своей области применимости в f (x). Проблема построения алгоритма, обладающего теми или иными свойствами, называется алгоритмической проблемой. Важный пример алгоритмической проблемы — проблема вычисления заданной функции (требуется построить алгоритм, вычисляющий эту функцию). Функция называется вычислимой, если существует вычисляющий ее алгоритм. Попытки формализовать понятие алгоритма привели к созданию машины Тьюринга, как некоторого воображаемого устройства, реализующего алгоритм. Машина Тьюринга — абстрактное устройство, состоящее из бесконечной в обе стороны ленты, считывающей и печатающей головки, способной перемещаться вправо и влево, и управляющего устройства. Лента разбита на ячейки (клетки). Считывающая и печатающая головка перемещается вдоль ленты так, что в каждый момент времени она обозревает ровно одну ячейку ленты. Машина Тьюринга В ячейках могут быть записаны символы некоторого конечного алфавита Устройство обладает некоторым конечным набором состояний Пример Построим машину Тьюринга, которая, имея на ленте два массива из единиц, разделенные нулями, заполняет эти нули единицами и останавливается у последней единицы второго массива, т. е. Алгоритм действий можно записать словами: 1-й шаг: пройти первый массив единиц, найти массив нулей, идущий после него и заменить первый нуль единицей; 2-й шаг: идти через массив нулей, заменяя их единицами, до тех пор, пока не появится второй массив единиц; 3-й шаг: пройти второй массив единиц и остановиться в его конце. Машина Тьюринга, реализующая этот алгоритм, имеет следующую программу: Вариант записи программы машины Тьюринга |