«бесконечность»
Вид материала | Закон |
- Темы рефератов по ксе и экологии бесконечность и космологическая эволюция, 71.23kb.
- Книга духов, 5043.6kb.
- Плюс-минус бесконечность 20 (или вопросы лингвофилософии), 2890.71kb.
- Плюс-минус бесконечность 5 (или вопросы лингвофилософии), 3373.4kb.
- Библиотека Т. О. Г, 15863.23kb.
- В одном мгновенье видеть вечность, Огромный мир – в зерне песка, в единой горсти, 128.63kb.
- И я выхожу из пространства Взапущенный сад величин, Имнимое рву постоянство Исамосогласье, 267.2kb.
- Комментарии, 126.95kb.
- Курс астрономии водном мгновенье видеть вечность, Огромный мир в зерне песка, Вединой, 192.96kb.
- Основы теории управления, 506.39kb.
Теория алгоритмов
Понятие алгоритма
Понятие алгоритма интуитивно ясно и часто используется в математике. (Примеры простых алгоритмов в математике). Под алгоритмом понимают точное предписание о выполнении в определенном порядке точно указанной последовательности операций для решения всех задач из данного класса задач.
Общие черты алгоритма:
- Дискретность информации. Каждый алгоритма имеет дело с данными – входными, промежуточными, выходными. Эти данные представляются в виде конечных слов в некотором алфавите.
- Дискретность работы алгоритма. Алгоритм выполняется по шагам и при этом на каждом шаге выполняется только одна операция.
- Детерминированность алгоритма. Система величин, получаемых в какой-то (не начальный) момент времени, однозначно определяется системой величин, полученных в предшествующие моменты времени.
- Элементарность шагов алгоритма. Закон получения последующей системы величин из предшествующей должен быть простым и локальны.
- Выполнимость операций. В алгоритме не должно быть невыполнимых операций. Например, нельзя в программе присвоить переменной значение «бесконечность», - такая операция была бы невыполнимой. Каждая операция обрабатывает определенный участок в обрабатываемом слове.
- Конечность алгоритма. Описание алгоритма должно быть конечным.
- Направленность алгоритма. Если способ получения последующей величины из какой-нибудь заданной величины не дает результата, то должно быть указано, что надо считать результатом алгоритма.
- Массовость алгоритма. Начальная система величин может выбираться из некоторого потенциально бесконечного множества.
До ХХ века рассматривались в основном задачи, имевшие разрешающие алгоритмы. Позже стали привлекать внимание задачи для которых существование положительного решения в этом вопросе было сомнительным. Одно дело — доказать существование алгоритма, другое — доказать отсутствие алгоритма.
Интуитивное понятие алгоритма, хотя и нестрогое, но настолько ясное, что практически не было серьезных случаев, когда математики разошлись бы в мнениях относительно того, является ли алгоритмом тот или иной конкретно заданный процесс. Этим легко объясняется своеобразное положение, сложившееся в математике с алгоритмическими проблемами к началу XX в. В этих проблемах требуется найти алгоритм для решения некоторой совокупности родственных задач, в условия которых входит конечная система параметров, могущих принимать обычно произвольные целочисленные значения. Например, требуется найти алгоритм, позволяющий для каждой четверки целых чисел а, b, с, d. узнать, существуют ли целые числа х, у, удовлетворяющие уравнению
ax2 + bxy + cy2 = d
Был найден процесс, при помощи которого, исходя из заданных чисел, через конечное число «шагов» можно было получить ответ «да» или «нет» на указанный вопрос. Многие другие алгоритмические проблемы также были решены путем указания конкретных разрешающих процессов. Положение существенно изменилось в XX в., выдвинувшем на первый план такие алгоритмические проблемы, существование положительного решения которых было сомнительным. Действительно, одно дело — доказать существование алгоритма, другое — доказать отсутствие алгоритма. Первое можно сделать путем фактического описания процесса, решающего задачу; в этом случае достаточно и интуитивного понятия алгоритма, чтобы удостовериться в том, что описанный процесс есть алгоритм. Доказать несуществование алгоритма таким путем невозможно. Для этого надо точно знать, что такое алгоритм. В двадцатых годах нашего века задача точного определения понятия алгоритма стала одной из центральных математических проблем. Решение ее было получено в середине тридцатых годов в работах Гильберта, Гёделя, Чёрча, Клини, Поста и Тьюринга в двух формах. Первое решение было основано на понятии рекурсивной функции, второе — на описании точно очерченного класса процессов.
Числовые функции, значения которых можно вычислять посредством некоторого (единого для данной функции) алгоритма, называются вычислимыми функциями. Поскольку понятие алгоритма в этом определении берется в интуитивном смысле, то и понятие вычислимой функции оказывается интуитивным. Тем не менее, при переходе от алгоритмов к вычислимым функциям возникает одно очень существенное обстоятельство. Совокупность процессов, удовлетворяющих условиям а) — h) и, следовательно, подпадающих под интуитивное понятие алгоритма, очень обширна и мало обозрима. Напротив, совокупность вычислимых функций для самых разных пониманий процессов, удовлетворяющих условиям а) — h), оказалась одной и той же и притом легко описываемой в обычных математических терминах. Эта точно описанная совокупность числовых функций, совпадающая с совокупностью всех вычислимых функций при самом широком до сих пор известном понимании алгоритма, носит название совокупности рекурсивных функций,
Алфавит и слова
Будем называть произвольное конечное множество А алфавитом, а элементом этого множества – буквами алфавита А. Тогда произвольное конечное последовательности букв называются словами в данном алфавите.
Длиной слова называется число входящих в него символов. Два слова называются (графически) равными, если они имеют одинаковые длины и на соответствующих местах в них находятся равные буквы.
Пусть символы a и b обозначают слова, записанные в алфавите, не содержащем самих символов a, b. Тогда через ab обозначается слово, получающееся, если сначала выписать слово a, а затем приписать справа к нему слово b. Например, если a означает слово aba, а b — слово ас, то ab будет обозначать слово аbаас. Слово ab называется композицией (иногда произведением) слов a и b. Операция композиции слов, очевидно, ассоциативна, но не коммутативна.
По чисто формальным причинам удобно ввести еще понятие пустого слова, композиция которого с любым словом считается по определению равной этому последнему слову.
Слово a называется подсловом слова b, если b можно представить в виде
b = cad, (2)
где c, d — подходящие (возможно пустые) слова. Если а — подслово слова b, то говорят также, что a входит в b.
Пусть разложение (2) соответствует первому (вообще k-му) вхождению слова a в слово b и пусть т — какое-нибудь слово. Тогда слово cmd называют словом, полученным заменой в слове b первого (k-го) вхождения слова a словом m. В этом случае говорят также о подстановке в слово b слова m вместо соответствующего вхождения слова a. Например, производя подстановку слова ас в слово аbаbаb вместо второго вхождения в него слова ab, получим слово аbасаb. Подставляя в то же слово вместо первого вхождения слова аb пустое слово, получим слово аbаb.
Функции. Термы
Пусть А, В — какие-либо множества, например, совокупности всех слов в подходящих алфавитах. Совокупность всех пар вида , где аА, bВ, называется декартовым произведением А на В и обозначается через АВ. Аналогично, если А1, А2, . . . . . ., Аm — некоторые множества, взятые в определенной последовательности, то совокупность А1А2..Аm называется декартовым произведением указанных множеств. Если все множества А1,…,Аm совпадают друг с другом, то их декартово произведение называется декартовой т-и степенью множества А.
Если некоторым элементам множества Х поставлены в соответствие однозначно определенные элементы множества У, то говорят, что задана частичная функция из Х в У. Совокупность тех элементов множества X, у которых есть соответствующие в У, называется областью определения функции, а совокупность тех элементов множества У, которые соответствуют некоторым элементам множества X, называется совокупностью значений функции. Если область определения функции из Х в У совпадает с множеством X, то функция называется всюду определенной.
Мы будем рассматривать л-местные числовые частичные функции: NkN.
Простейшие функции:
s1(x) = x + 1, (инкремент)
on(x1,…,xn) = 0, (константу нуль)
Inm(x1,…,xn) =xm (выбор аргумента).
Кодирование
Теория алгоритмов имеет дело со словами в конечном алфавите. Однако существуют математические объекты, играющие основную роль, которые нельзя без натяжки непосредственно рассматривать как слова в некотором алфавите. К таким объектам, например, можно отнести рациональные числа, алгебраические числа, функции и многое другое. Тем не менее, ряд таких объектов может быть охарактеризован конечным числом целочисленных параметров или просто словом в подходящем конечном алфавите. Например, возьмем алфавит, состоящий лишь из знака |. Словом в этом алфавите являются последовательности палочек: |, ||, |||… Сопоставим с каждым словом ||…|, содержащим n+1 палочек, натуральное число n. Говорят, что указанное слово изображает число п или является кодом числа п.
Аналогичным образом, вместо алфавита, состоящего из одной буквы |, можно рассмотреть алфавит, состоящий из двух букв 0, 1, и в качестве кодированной записи натурального числа п брать его двоичную запись. Например, кодом числа «пять» в новом алфавите будет слово 101.
При двоичном кодировании мы встречаемся с той особенностью, что не каждое слово является кодом какого-нибудь натурального числа. Например, слово 01 не является кодом никакого натурального числа.
Рассмотрим еще обычное кодирование положительных рациональных чисел. Вводим алфавит, состоящий из прямой черты | и косой черты /. Слово вида ||. . . | / | . . . ||, состоящее из т + 1 знаков |, косой черты / и последующих п+2 знаков |, условимся называть кодом рационального числа m/n+1. Ясно, что теперь не только не каждое слово является кодом рационального числа, но каждое положительное рациональное число имеет бесконечно много различных кодов. Например, число 1/2 имеет коды ||/|||, |||/||||| и т. д.
Во всех указанных случаях было выполнено следующее существенное требование: по заданному коду закодированный объект восстанавливался однозначно. Это требование обычно сохраняется и в общем определении кодирования.
Основные вычислимые операторы
- Оператор суперпозиции
- Оператор примитивной рекурсии
Таким образом, для любых частичных т-местной функции g и (п + 2)-местной функции h (п = 0, 1, 2, . . .) существует одна и только одна частичная (п + 1)-местная функция f, возникающая из g и h примитивной рекурсией. Из соотношений видно также и следующее фундаментальное для нас обстоятельство: если мы каким-то образом «умеем» находить значения функций g,h то значения функции f можно вычислять при помощи процедуры вполне «механического» характера. Именно, для нахождения значений f(a1, . . ., an, т + 1) достаточно последовательно найти числа
b0 = g(a1,…, an),
b1 = h (a1,…, an, 0, b0),
b2 = h (a1,…, an, 1, b1),
………
bm+1 = h (a1,…, an, m, bm).
Полученное на (т + 1)-м «шаге» число bm+1 и будет искомым значением функции в точке < a1,…, an, т + 1>.
- Класс примитивно-рекурсивных функций
Операторы суперпозиции и примитивной рекурсии, которые используются для всюду-определенных функций, дают также всюду-определенные функции.
Из определения также непосредственно вытекает, что операции подстановки и примитивной рекурсии, примененные к частичным функциям, примитивно рекурсивным относительно какой-нибудь системы σ, дают в результате снова функции, примитивно рекурсивные относительно σ.
- Примеры пр-функций.
- Оператор минимизации М.
Рассмотрим какую-нибудь n-местную (n1) частичную числовую функцию f Допустим, что существует какой-либо «механизм» для вычисления значений функции f, причем значение функции f не определено тогда и только тогда, когда этот механизм работает бесконечно, не выдавая никакого определенного результата. Фиксируем какие-нибудь значения x1,…,xn-1 для первых n-1 аргументов функции f и рассмотрим уравнение
f(x1,…,xn-1,y) = xn
Чтобы найти решение у (натуральное) этого уравнения, будем вычислять при помощи указанного выше «механизма» последовательно значения f(x1,…,xn-1,y) для у=0, 1, 2, ... Наименьшее значение a, для которого получится
f(x1,…,xn-1,a) = xn
обозначим через
My(f(x1,…,xn-1,y) = xn). (*)
Описанный процесс нахождения значения выражения (*) будет продолжаться бесконечно в следующих случаях:
а) значение f(x1,…,xn-1,0) не определено;
б) значения f(x1,…,xn-1,y) Для у = 0, 1, . . ., а — 1 определены, но отличны от xn, а значение f(x1,…,xn-1,a) не определено;
в) значения f(x1,…,xn-1,y) определены для всех у = 0, 1, 2, . . . и отличны от xn.
Во всех этих случаях значение выражения (*) считается неопределенным. В остальных случаях описанный процесс обрывается и дает наименьшее решение у=а уравнения. Это решение, как сказано, и будет значением выражения (*).
Значение выражения (*) при заданной функции f зависит от выбора значений для параметров x1,…,xn-1,xn и потому оно есть функция (частичная) от аргументов x1,…,xn. Эту функцию мы будем обозначать символически через Mf, где М — символ операции, переводящей функцию f в функцию Mf.
- Частично рекурсивные функции.
Из указанного основного определения непосредственно вытекают следующие свойства относительно частично рекурсивных функций.
1) Каждая частичная функция, примитивно рекурсивная относительно системы функций σ, является и частично рекурсивной относительно σ. В частности, все примитивно рекурсивные функции частично рекурсивны.
2) Класс частично рекурсивных функций шире класса примитивно рекурсивных функций, так как все примитивно рекурсивные функции всюду определены, а среди частично рекурсивных функций встречаются и не всюду, определенные функции, например функции sg-1, s-1, а также нигде не определенная функция
f(х) = Mz(х + 1 + z = 0).
3) Операции подстановки, примитивной рекурсии и минимизации, произведенные над функциями, частично рекурсивными относительно системы σ, дают в результате функции, снова частично рекурсивные относительно σ.
- Примеры чрф.
x – y = Mz(y + z = x)
Mx(sgx = 1) = 1
- Примитивно рекурсивные множества
Рекурсивно перечислимым множеством является либо пустое множество, либо множество значений некоторой рекурсивной функции F(x). То есть, существует эффективная процедура последовательного порождения (перечисления) всех его элементов.
Характеристической функцией A какого-нибудь множества натуральных чисел А называется одноместная функция, равная 0 в точках множества А и равная 1 в точках, не принадлежащих А. Частичной характеристической функцией множества А называется функция, равная 0 и точках множества А и не определенная в точках, не принадлежащих А.
Например, характеристическая функция пустого множества есть функция, равная 1 для любого значения аргумента, а частичная характеристическая функция пустого множества есть нигде не определенная функция. Вообще легко понять, что характеристическая и частичная характеристическая функции совпадают лишь для множества всех натуральных чисел.
Множество натуральных чисел А называется примитивно рекурсивным, если его характеристическая функция примитивно рекурсивна. Множество А называется частично рекурсивным, если его частичная характеристическая функция частично рекурсивна. Аналогично определяются понятия примитивно рекурсивного и частично рекурсивного множеств относительно системы функций .
Покажем, что каждое (относительно) примитивно рекурсивное множество является (относительно) частично рекурсивным. Действительно, пусть (х) — характеристическая функция какого-нибудь множества натуральных чисел А. Тогда функция ч(x), определяемая равенством
ч(x) = 0 - (x) (**)
будет частичной характеристической функцией множества А. Так как операция вычитания частично рекурсивна, то из формулы (**) следует, что функция ч(x) также частично рекурсивна.
Детальное изучение свойств частично рекурсивных функций составляет центральную задачу теории рекурсивных функций. В качестве предварительной информации о свойствах частично рекурсивных функций может служить следующая очевидная
Теорема 1. Пусть f(х) — какая-нибудь примитивно рекурсивная функция и А — произвольное примитивно рекурсивное множество натуральных чисел. Тогда частичная функция f’(x), определенная схемой
, (***)
является частично рекурсивной.
В самом деле, по доказанному выше частичная характеристическая функция ч(x) множества А частично рекурсивна. Из схемы (***) вытекает, что для всех значений х
f’(x) = f(x) + ч(x)
и, значит, функция f’(x) частично рекурсивна.
Теорема 1 дает возможность строить многочисленные примеры частично рекурсивных функций.
Теорема 2. Множество А рекурсивно тогда и только тогда, когда А и его дополнение А’ рекурсивно перечислимы.
Теорема 3. Существуют рекурсивно перечислимые, но нерекурсивные множества.
Понятие частично рекурсивной функции — одно из главных понятий теории алгоритмов. Значение его уже было указано во введении. Кратко говоря, это значение состоит в следующем. С одной стороны, каждая стандартно заданная, например, посредством указанного выше операторного терма частично рекурсивная функция вычислима путем определенной процедуры механического характера, которая несомненно отвечает нашему интуитивному представлению об алгоритмах. С другой стороны, какие бы классы точно очерченных «алгоритмов» до сих пор фактически ни строились, во всех случаях неизменно оказывалось, что числовые функции, вычислимые посредством алгоритмов этих классов, были частично рекурсивными. Поэтому ныне общепринятой является следующая естественнонаучная гипотеза, обычно формулируемая как
Тезис Чёрча. Класс алгоритмически (или машинно} вычислимых частичных числовых функций совпадает с классом всех частично рекурсивных функций.
Тезис Чёрча оказался достаточным, чтобы придать необходимую точность формулировкам алгоритмических проблем и в ряде случаев сделать возможным доказательство их неразрешимости. Причина этого заключается в том, что обычно в алгоритмических проблемах математики речь идет не об алгоритмах, а о вычислимости некоторых специальным образом построенных функций. В силу тезиса Чёрча вопрос о вычислимости функции равносилен вопросу о ее рекурсивности. Понятие рекурсивной функции строгое. Поэтому обычная математическая техника позволяет иногда непосредственно- доказать, что решающая задачу функция не может быть рекурсивной. Именно этим путем Черчу удалось первому доказать неразрешимость основной алгоритмической проблемы логики предикатов — проблемы тождественной истинности формул исчисления первой ступени.
Этот тезис дает алгоритмическое истолкование понятия частично рекурсивной функции. Несколько сложнее дело обстоит с истолкованием понятия частичной рекурсивности относительно заданной системы функций . Такое истолкование было впервые указано Тьюрингом. Для простоты предположим, что система состоит лишь из одной функции h(x). Если значения этой функции вычислимы посредством некоторого алгоритма и, значит, ввиду тезиса Чёрча функция h(x) частично рекурсивна, то каждая функция f, частично рекурсивная относительно h, будет просто частично рекурсивной. Если заданная функция h не является частично рекурсивной, то единого алгоритма для вычисления произвольного значения функции h нет, и вычислить какое-нибудь значение функции h(x) — это математическая проблема.
Говорят, что функция f алгоритмически вычислима относительно функции h, если существует алгоритм, позволяющий вычислять значения функции f при условии, что мы можем находить те значения функции h, которые указываются алгоритмом. При этом значения функции h, необходимые на более поздних шагах алгоритма, могут зависеть от значений h, требовавшихся на предыдущих шагах алгоритма.
Это определение относительной алгоритмической вычислимости, конечно, не полное. Смысл его зависит от того, какой смысл мы вкладываем в понятие обычного (не относительного) алгоритма, и других обстоятельств. Как и понятие алгоритма, понятие относительного алгоритма можно уточнять различными способами. Однако при всех фактически испробованных уточнениях оказывалось, что относительно вычислимые функции являлись относительно частично рекурсивными. Поэтому по аналогии с тезисом Чёрча обычно принимается в качестве естественно-научной гипотезы и
Тезис Тьюринга. Класс функций, алгоритмически вычислимых относительно какой-либо функции h (или класса функций ), совпадает с классом частичных функций, частично рекурсивных относительно h (соответственно относительно системы ).
Из тезиса Тьюринга вытекает тезис Чёрча. Обратное, по-видимому, нельзя считать справедливым. Конечно, здесь речь идет не о строгой логической зависимости, а скорее о зависимости в некотором философском смысле.
- Общерекурсивные функции
Как уже говорилось, для каждой частично рекурсивной функции f существует механический процесс, посредством которого любое натуральное число х перерабатывается в значение f(х} функции f. Этот процесс продолжается бесконечно, не давая окончательного результата, тогда и только тогда, когда значение функции f в точке х не определено. Таким образом, всюду определенные частично рекурсивные функции — это функции, для вычисления значений которых существует алгоритм, обрывающийся через конечное число шагов для любого начального числа. Алгоритмы, которые перерабатывают любое заданное число в определенное число, играют особую роль в теории алгоритмов. Вместе с ними особое положение в теории рекурсивных функций занимают и всюду определенные частично рекурсивные функции.
Следующий способ получения всюду определенных частично рекурсивных функций вполне очевиден. Операция минимизации ставит в соответствие любой заданной функции f определенную частичную функцию Мf. Введем теперь еще одну операцию, которую временно будем обозначать символом Мlf и называть слабой минимизацией. По определению положим
Мlf = Мf,
если функция Мf всюду определена. Если же эта функция определена не всюду, то значение Мlf будем считать неопределенным.
Функции, которые можно получить из простейших функций конечным числом операций подстановки, примитивной рекурсии и слабой минимизации, называются общерекурсивными.
Так как операции примитивной рекурсии, суперпозиции и слабой минимизации выполненные над всюду определенными функциями, либо ничего не дают, либо дают снова всюду определенные функции, то все общерекурсивные функции всюду определены.
С другой стороны, если результат операции слабой минимизации определен, то он совпадет с результатом операции обычной минимизации. Поэтому все общерекурсивные функции являются всюду определенными частично рекурсивными функциями.
Обратное тоже верно: каждая всюду определенная частично рекурсивная функция общерекурсивна. Заметим пока, что согласно определению каждая примитивно рекурсивная функция является общерекурсивной. Класс общерекурсивных функций шире класса примитивно рекурсивных функций.
Машина Тьюринга
Точное описание класса частично рекурсивных функций вместе с тезисом Чёрча дает одно из возможных решений задачи об уточнении понятия алгоритма. Однако это решение не вполне прямое, так как понятие вычислимой функции является вторичным по отношению к понятию алгоритма. Спрашивается, нельзя ли уточнить непосредственно само понятие алгоритма и уже затем при его помощи точно определить и класс вычислимых функций? Это было сделано Постом и Тьюрингом независимо друг от друга и почти одновременно с изложенными выше работами Чёрча и Клини. Основная мысль Поста и Тьюринга заключалась в том, что алгоритмические процессы — это процессы, которые может совершать подходяще устроенная «машина». В соответствии с этой мыслью ими были описаны в точных математических терминах довольно узкие классы машин, но на этих машинах оказалось возможным осуществить или имитировать все алгоритмические процессы, которые фактически когда-либо описывались математиками. Алгоритмы, осуществимые на упомянутых машинах, было предложено рассматривать как математических «представителей» вообще всех алгоритмов. Несложные выкладки показали, что класс функций, вычислимых на этих машинах, в точности совпадает с классом всех частично рекурсивных функций. Тем самым было получено еще одно фундаментальное подтверждение тезиса Чёрча.
Машины, введенные Постом и Тьюрингом, отличались не очень существенно и в дальнейшем стали называться машинами Тьюринга, несмотря на то, что были введены указанными авторами одновременно и независимо друг от друга.
Сравнивая обычное определение частично рекурсивных функций с определением тех же функций как функций, вычислимых на машинах Тьюринга — Поста, легко заметить следующую направленность этих определений. Обычное определение частично рекурсивных функций настолько широко, что из него почти непосредственно видна частичная рекурсивность функций, вычислимых посредством процессов, алгоритмический характер которых интуитивно ясен. Напротив, определение с помощью машин Тьюринга — Поста очень специальное. Его цель — показать, как самые сложные процессы можно моделировать на весьма простых устройствах. Поэтому, если надо показать, что алгоритмические процессы можно моделировать на еще каких-либо специальных устройствах, то машины Тьюринга — Поста обычно берутся в качестве отправного пункта рассуждений.
- Машина Тьюринга
Теорема. Функция F рекурсивна (частично рекурсивна) тогда и только тогда, когда она вычислима по Тьюрингу, то есть можно построить для нее машину Тьюринга.
- Универсальная машина Тьюринга
Машина Тьюринга содержит основные идеи современных вычислительных машин, в которых последовательность вычислений управляется програмой. Тьюрингу принадлежит также идея построения универсальной вычислительной машины, которая сначала проверяет правильность введенной в нее программы, а затем выполняет ее над заданными исходными данными. Эта идея реализована в современных ЭВМ. Целью Тьюринга при разработке универсальной машины было создание математического аппарата для моделирования работы любой машины Тьюринга.
Можно построить такую машину М’(d(M)*W), на вход которой будет подаваться код машины Тьюринга d(M) вместе с входным словом W. Тогда машина М’ сначала проверяет, является ли d(M) синтаксически правильным программным кодом для машины Тьюринга, и если это так, то выполняет программу машины М над словом W.
Исторически первой алгоритмически неразрешимой проблемой, доказанной Тьюрингом, была проблема останова для машины Тьюринга. Она формулируется так: можно ли построить такую универсальную машину Тьюринга М’, что будучи примененной к слову (d(M)*W), она будет останавливаться в «да» состоянии, если машина Тьюринга М применима к слову W, и останавливаться в «нет» состоянии в ином случае.
Теорема. Проблема останова для машины Тьюринга алгоритмически неразрешима.
Будем говорить, что машина Тьюринга М самоприменима, если она останавливается на своем собственном коде d(M), и не самоприменима, в ином случае.
Теорема. Проблема распознавания самоприменимости машины Тьюринга алгоритмически неразрешима.
- Невычислимые функции
Определим предикат Т(i, а, х), где i — индекс машины Тьюринга, которая, будучи применима к слову а, заканчивает работу в момент времени х, вычисляя при этом функцию fi(а). Существование момента времени х — гарантия останова машины. Этот предикат будет разрешимым (т.е. истинным при некоторых значениях i, а, х). Действительно, можно построить такую универсальную машину Тьюринга М', которая для любой машины будет определять, является ли i правильным кодом машины Тьюринга. Если i не является кодом, то М' остановится в состоянии «нет»; тогда |T(i, а, х)| = Р. Если i является правильным кодом машины Тьюринга, то М' будет работать над словом а и остановится в состоянии «да», если в момент х машина вычислит значение функции fi(а). Тогда |Т(i, а, х)| = Т.
Эти рассуждения показывают, что предикат T(i, а, х) разрешим в интуитивном смысле. Если принимать тезис Чёрча, то этот предикат разрешим и в строгом смысле, т.е. можно построить такую машину Тьюринга, которая вычисляет характеристическую функцию предиката:
Таким образом, во-первых, предикат T(i, а, х) разрешим, а во-вторых, fi(а) вычислима как частичная функция от х. Действительно, она определена не для всех i и а, а только для тех, для которых существует момент времени х, когда машина Тьюринга остановится. Поэтому fi(а) является частично определенной функцией и вычислима как частичная функция от i и x, т.е. тогда, когда |ax T(i, а, х)| = Т.
Определим теперь следующую функцию:
Теорема 15.11. (Черча). Функция (а) невычислима.
Доказательство.
Предположим, что (а) вычислима. Тогда существует машина Тьюринга Мp, вычисляющая (а), и р — индекс этой машины, т.е. (а) = fp(а) для всех а. Подставляя р вместо а, получим: (р) = fp(р). Тогда предикат |xT(p, а, х)| = T для данного р и для любого а, в том числе и для а = р, т.е. |xT(p, а, х)| = Т. Но тогда, по определению функции (а), (p)=fp(р)+1, что противоречит полученному ранее равенству. Полученное противоречие доказывает утверждение теоремы.