Лекция № 8. Тезисы теории алгоритмов
Понятие алгоритма используется в математике давно, но до начала 1920 гг. оно встречалось примерно в таком контексте – для решения такой-то задачи необходимо совершить такие-то действия, чтобы получить искомый результат. В двадцатые годы прошлого столетия математики столкнулись с дачами, для которых они, как ни старались, не могли найти алгоритмы их решения. В математическом сообществе появилась идея, что таких алгоритмов вовсе не существует. Но тут же возникла другая проблема – отсутствие чего следует доказывать. Определение понятия «алгоритм», пригодное для решения многих разнообразных математических задач, в то время отсутствовало. В середине 30-х годов XX века и позднее были предприняты попытки формализации понятия алгоритма – определения универсальной формы записи информации и ограниченного, четко определенного набора элементарных действий по ее переработке, необходимых и достаточных для реализации любого содержательно описанного алгоритма.
Обобщенным результатов этих поисков можно считать следующее утверждение, имеющее естественно-научный характер:
«Тезис формализации. Любой содержательно описанный алгоритм может быть формализован в рамках используемых в теории алгоритмов строгих математических определений понятия алгоритма» [].
Подчеркнем, этот тезис, равно как и другие, которые будут перечислены ниже, не является теоремой, поскольку, с одной стороны, имеются строго определенные математические объекты, а с другой – интуитивные представления о том, что есть алгоритм.
Это обстоятельство становится особенно ясным, если определить понятие интуитивно вычислимой функции примерно следующим образом:
«функция f(x) – интуитивно вычислима, если для вычисления ее значений существует алгоритм».
В этом контексте Тезис Черча-Клини о том, что класс интуитивно вычислимых функций» совпадает с классом «частично рекурсивных функций», есть ни что иное, как предположение о том, что:
– если мы хоть как-то можем вычислить некоторую функцию f(x), то она либо базисная, либо может быть построена из базисных функций конечным числом применения операторов суперпозиции функций, примитивной рекурсии и m-оператора (т.е. путем конечного применения ограниченного набора операций);
– если функция f(x) – не является частично-рекурсивной (а такие функции существуют), то она не является интуитивно вычислимой, а потому ее вычисление является алгоритмически неразрешимой проблемой.
Этот тезис называют основной гипотезой теории алгоритмов. В ее пользу приводят множество доводов, важнейшим из которых выступает то обстоятельство среди множества интуитивно вычислимых функций, накопившихся за годы развития математики, не нашлось ни одной, о которой можно было бы сказать, что она не принадлежит к классу частично рекурсивных функций.
Существуют и другие тезисы теории алгоритмов. Вот некоторые из них.
Тезис Тьюринга. Любой вербальный алгоритм в алфавите M может быть реализован некоторой машиной Тьюринга, работающей над алфавитом M.
Тезис Маркова – принцип нормализации.Любой вербальный алгоритм в алфавите M может быть реализован некоторым нормальным алгорифмом над алфавитом M.
О том, что эти два тезиса справедливы (или не справедливы) одновременно, гласит следующая теорема.
Теорема 8.1. Для любой машины Тьюринга (Т) в алфавите М существует нормальный алгорифм (N) над алфавитом М такой, что для всех aÎМ*, N(a)=Т(a). Для любого нормального алгорифма (N) в алфавите М существует машина Тьюринга (Т) над алфавитом М такая, что для всех aÎМ*, Т(a)=N(a).
Еще один тезис теории алгоритмов звучит так.
Тезис Черча-Тьюринга. Всякая интуитивно вычислимая функция является вычислимой по Тьюрингу.
Соответственно, справедлива следующая теорема.
Теорема 8.2. Функция f(x1, …, xn) частичнорекурсивна тогда и только тогда, когда она вычислима по Тьюрингу.
Иными словами, рассмотренные подходы к формализации понятия алгоритм (в терминах рекурсивных функций, машины Тьюринга, алгорифмов Маркова), согласно приведенным теоремам, в принципе эквивалентны.
Более того, следует сказать, что в рамках теории алгоритмов были разработаны различные способы уточнения понятия «вычислимость» с использованием аппарата:
1) l-определимых функций (А.Черч, С.К.Клини, 1933–1936 гг.);
2) общерекурсивных функций (Ж.Эрбан, К.Гедель, С.К.Клини, 1934–1936 гг.);
3) m-рекурсивных и частично рекурсивных функций (К.Гедель, С.К.Клини, 1934–1936 гг.);
4) машин Тьюринга (А.Тьюринг, 1936 г.);
5) машины Поста (Э.Пост, 1943 г.);
6) нормальных алгорифмов Маркова (А.А.Марков, 1950);
7) МНР-вычислимых функций (Дж.Шепердсон, Х.Стерджис, 1963).
Однако, несмотря на значительные различия в подходах при описании вычислимости, каждое из перечисленных уточнений понятия «вычислимость» приводит к одному и тому же классу вычислимых функций. Заметим, что этот результат рассматривается в теории алгоритмов как серьезное подтверждение справедливости тезисов этой теории. С прагматической точки зрения данный результат означает ровно одно. Если функция не вычислима в соответствии с каким-то из указанных подходов, то она не может быть вычислена в рамках иной другой из указанных формализаций.
Помимо этого, приведенные формализации понятия «алгоритм» позволяют говорить о существовании алгоритмически неразрешимых проблем.
Раздел 2. Формальные языки и грамматики