Россия, Москва, МЭИ, 2006 |
Теория вычислений и машины Тьюринга
3.2. Машины Тьюринга и вычислимые функции
Приведенных в предыдущем разделе данных достаточно для перехода к общему описанию
Работу с рабочим алфавитом и состояниями можно представить таблицей машины , которая представляет собой матрицу с 4 столбцами и строками. Строка матрицы с номером имеет вид: , где действие , а - следующее состояние. Индексы элементов строки матрицы в ряде случаев можно опускать, и тогда описание строки принимает вид , где действие может представлять собой подстановку символа вида , при этом , сдвиг вправо на одну ячейку , сдвиг влево на одну ячейку, если рабочая ячейка не совпадает с нулевой . Если рабочая ячейка совпадает с нулевой и , то требуемое действие невыполнимо и останавливается , что вызвано ее выходом за пределы ленты. Машинный останов может быть и запланированным. Считается также, что пара однозначно идентифицирует единственную строку матрицы . В нашем примере матрица имеет вид:
Строки таблицы с одинаковыми соответствуют некоторому указанию в смысле требования 1, и наоборот, состояниям отвечают номера указаний в соответствующем алгоритмическом предписании.
Таблицу 3.1,задающую правила подстановки символов при арифметическом сложении, также можно представить в виде таблицы машины Тьюринга (табл. 3.2), если пару считать одним символом, а , и .
В принятых соглашениях запись на ленте или просто запись является функцией на со значениями в , которая каждому ставит в соответствие букву, являющуюся содержимым -й ячейки ленты. При этом неравенство выполняется только для конечного числа индексов .
Согласно требованию 1 общий итог выполненных вычислений однозначно определяется конфигурацией , которая задается тройкой , где - номер текущей рабочей ячейки, - текущая запись и - текущее состояние . Конфигурации обычно обозначают , …, а начальной конфигурации отвечает та, у которой третья компонента есть .
0,0 | 0 | . | . | . | . | 3,3 | 6 | ||||
0,1 | 1 | 1,9 | 1 | 3,4 | 7 | ||||||
2,2 | 4 | ||||||||||
0,9 | 9 | 2,3 | 5 | 3,9 | 2 | ||||||
0,0 | 1 | ||||||||||
0,1 | 2 | 2,5 | 7 | 3,3 | 7 | ||||||
3,4 | 8 | ||||||||||
0,9 | 0 | 2,9 | 1 | ||||||||
1,1 | 2 | 2,2 | 5 | 3,9 | 3 | ||||||
1,2 | 3 | 2,3 | 6 | ||||||||
2,4 | 7 | ||||||||||
1,9 | 0 | 2,5 | 8 | 7,7 | 4 | ||||||
1,1 | 3 | 7,8 | 5 | ||||||||
1,2 | 4 | 2,9 | 2 |
Пусть - некоторая конфигурация . Если есть некоторая строка таблицы , начинающаяся символами , и если и одновременно не выполняются равенства и , то выполнение действия приводит к новой рабочей ячейке с номером (при этом не исключается ) и к новой записи (при этом не исключается ) и переходит в состояние . В этом случае однозначно определенную конфигурацию называют следующей за В противном случае ( или одновременно и ) говорят, что является конечной конфигурацией для .
Говорят, что применима к записи в рабочей ячейке , если в качестве начальной конфигурации выбрана конфигурация .
Конфигурация однозначным образом порождает конечную или бес-конечную последовательность конфигураций , в которой есть конфигурация, следующая за , и для которой есть последний член в том и только в том случае, когда является конечной конфигурацией. Так как работает в пошаговом режиме, между номером шага и номером конфигурации существует взаимно однозначное соответствие. Поэтому машина останавливается через конечное число шагов после применения к записи в рабочей ячейке , если последовательность конфигураций, порожденная , имеет последний член. Если для анализа вычислений после-довательность состояний не представляет интереса, то сам вычислительный процесс можно описать двойками , которые каждой конфигурации сопоставляют ее позицию, то есть последовательности конфигураций всегда соответствует последовательность позиций, к которым применимы термины "начальная" и "конечная".
Пусть есть некоторая конфигурация и для всех . Тогда для наглядного изображения и отвечающей ей позиции можно использовать:
. и
Безразличные для анализа участки записи будем обозначать символом , а если речь идет о содержимом одной ячейки, то символом Это позволяет для записи позиций использовать следующие упрощения.
- Выделить только интересующие позиции типа:
- Обозначить специальным символом значимый левый (правый) край ленты типа:
- Исключить повторяющийся символ правее определенного:
Пусть и возможные позиции для . Тогда запись вида означает: начала свою работу в начальной позиции и (после конечного числа шагов) остановилась в конечной позиции . Например: .
Применить к записи после слова или после -членной последовательности слов над означает взять в качестве начальной позицию: , и соответственно .
Применить к записи перед словом или перед -членной последовательностью слов над означает взять в качестве начальной позицию: , и соответственно . Применить к пустой ленте означает взять в качестве начальной позицию
Говорят, что остановилась после (перед) словом , если применялась к начальной записи в начальной ячейке и , . При этом в конечной позиции после символа нельзя сказать ничего определенного.
Если в результате применения к записи в рабочей ячейке остановилась после слова над , то последняя рабочая ячейка не может быть нулевой, даже если , так как фактически произошел машинный останов .
Для строгого определения вычислимых по Тьюрингу функций используется экстенсиональная точка зрения, которая исходит из следующего:
- Две функции равны, если совпадают их области определения и если их значения во всех общих точках определения равны.
- Два алгоритма и экстенсионально равны (равны по конечному эффекту), если равны вычисляемые ими функции .
Функцию называют функцией из в , если область определения содержится в , а множество образов при ото-бражении , содержится в . В предельном случае , и тогда называют функцией на со значениями в . В общем случае , и тогда называют частичной функцией на со значениями в .
Алгоритм определяет функцию из в , если выполнены следующие условия:
- Функция определена для в том и только в том случае, когда применение к приводит к некоторому результату, который и является значением от .
- Функция обладает тем свойством, что для всех значение можно вычислить, исполнив предписание .
Отсюда, функция из в называется вычислимой тогда и только тогда, когда существует алгоритм , для которого . В этом случае называют вычислительной процедурой для .
В терминах МТ те же определения имеют следующий вид. Пусть есть МТ с рабочим алфавитом , таким, что . Тогда определяет некоторую -местную функцию из в по следующему правилу: принадлежит области тогда и только тогда, когда , примененная к записи , останавливается после слова из , а это слово является значением от .
Таким образом, для имеем:
когда , и наоборот, если , то , примененная к записи , не останавливается после слова из .
Приведенных данных достаточно для определения 3.1: функция из в называется вычислимой по Тьюрингу ( ФВТ ), если существует МТ с рабочим алфавитом , содержащим и , такая, что -местная функция из в , определяемая машиной , совпадает с .
О любой такой МТ говорят, что она вычисляет .
Из приведенного определения следует, если есть ФВТ из в и есть МТ, вычисляющая , то, применив к , можно получить следующие результаты: либо не остановится вовсе, либо уйдет за пределы ленты, либо произойдет машинный останов . Если в последнем случае остановилась после слова , то и . Во всех остальных случаях
Введенное описание применения к аргументу ФВТ, вычисляемой , и нахождение значения функции способом, указанным в определении 3.1, вместе образуют общее предписание для всех алгоритмов. Это позволяет говорить, что функция, вычислимая по Тьюрингу ( ФВТ ), является адекватной формализацией интуитивного понятия "вычислимая функция".