Конфигурация
|
Исполняемые команды (программа)
|
|
b cadc
|
|
|
bc adc
|
|
|
bca dc
|
|
|
bc aсc
|
|
|
b cdсc
|
|
Программа рассмотренной машины Тьюринга может быть представлена в виде таблицы соответствия:
Таблица 3
A
Q
|
|
a
|
b
|
c
|
d
|
|
-
|
|
|
|
-
|
|
-
|
-
|
-
|
-
|
|
|
-
|
|
-
|
-
|
-
|
|
-
|
|
-
|
-
|
-
|
|
-
|
-
|
-
|
-
|
|
|
-
|
Остановка
|
|
Машины Тьюринга представляют собой универсальных исполнителей, с использованием которых можно имитировать все алгоритмические процессы, описываемые математиками. Было доказано, что класс функций, вычислимых на этих машинах, точно совпадает с классом всех частично рекурсивных функций.
Таким образом, вопрос о существовании или несуществовании алгоритма для задачи того или иного типа следует понимать как вопрос о существовании или несуществовании машины Тьюринга, обладающей нужным свойством.
В зависимости от числа используемых лент, их назначения и числа состояний устройства управления определяют различные модификации машин Тьюринга, например машина Тьюринга с двумя выходами, многоленточная машина Тьюринга. При этом различные алгоритмы осуществляются на различных машинах Тьюринга, отличающихся набором команд, внутренним и внешним алфавитами. Но можно построить и универсальную машину Тьюринга, способную в известном смысле выполнять любой алгоритм.
В универсальной машине Тьюринга, как и во всякой тьюринговой машине, информация изображается символами, расположенными одновременно на магнитной ленте. При этом универсальная машина Тьюринга может располагать лишь фиксированным конечным внешним алфавитом. Между тем она должна быть приспособлена к приему в качестве исходной информации всевозможных состояний устройства управления и конфигураций, в которых могут встречаться символы из разнообразных алфавитов со сколь угодно большим числом различных символов.
Это достигается путем кодирования конфигурации и программы любой данной машины Тьюринга в символах входного (внешнего) алфавита универсальной машины. Само кодирование должно выполняться следующим образом:
различные символы должны заменяться различными кодовыми группами, но один и тот же символ должен заменяться всюду, где бы он ни встречался, одной и той же кодовой группой;
строки кодовых записей должны однозначным образом разбиваться на отдельные кодовые группы;
должна иметь место возможность распознать, какие кодовые группы соответствуют различным сдвигам, т. е. каждой из букв Л, П, С в отдельности, и различать кодовые группы, соответствующие символам внутреннего алфавита и символам внешнего алфавита.
Рассмотрим пример такого кодирования для машины Тьюринга: Т, имеющей внешний алфавит и внутренний алфавит .
Если внешний алфавит универсальной машины Тьюринга состоит из символов А={0, 1}, то эти условия будут выполнены при следующем способе кодирования.
1. В качестве кодовых групп используются 3 + k + m различных слов вида 100 ... 01 (между единицами — нули), где k — число символов внешнего алфавита; m — число состояний устройства управления.
При этом разбивка строк на кодовые группы производится однозначным образом путем выделения последовательностей нолей, заключенных между двумя единицами.
2. Сопоставление кодовых групп с исходными символами внешнего и внутреннего алфавитов осуществляется согласно следующей таблице кодирования:
Так, для машины Тьюринга, перерабатывающей слово bcadc в слово bcdcc (см. табл.1.2), входное слово в универсальной машине Тьюринга с данным кодом будет представлено следующей строкой:
1000000110000000011000011000000000011000000001, где 100001 - а, 10000001 - b, 1000000001 - с, 100000000001 - d.
Вся программа будет иметь вид:
Таблица 1.4
Л
|
1000001 10000001 1000001 10000001 101
|
Л
|
1000001 1000000001 1000001 1000000001 101
|
Л
|
1000001 100001 100000001 100001 101
|
П
|
100000001 100000000001 10000000001 100000000110001
|
П
|
1000000000110000110000000000000110000000000110001
|
Таким образом, если какая-либо машина Тьюринга решает некоторую задачу, то и универсальная машина Тьюринга способна решить эту задачу при условии, что, кроме кодов исходных данных этой задачи, на ее ленту будет подан код программы машины . Задавая универсальной машине Тьюринга изображение программы любой данной машины Тьюринга и изображение любого ее входного слова , получим изображение выходного слова, в которое машина переводит слово .
Если же алгоритм, реализуемый машиной , неприменим к слову , то алгоритм, реализуемый универсальной машиной , также не применим к слову, образованному из изображения и программы машины .
Таким образом, машина Тьюринга может рассматриваться как одна из программ для универсальной машины .
При изучении моделей вычислений обычно проводят различие между детерминированными и недетерминированными машинами Тьюринга. В детерминированной машине Тьюринга общий ход вычислений полностью определяется машиной Тьюринга (программой), начальным символом и начальными вводами с ленты. В недетерминированной машине Тьюринга на каждой стадии вычислений существуют альтернативы, т.е. она может работать в одном из нескольких основных режимов. При этом класс задач, решаемых на детерминированных машинах Тьюринга за полиномиальное время, называют классом Р, а класс задач, решаемых на недертеминированных машинах Тьюринга за полиномиальное время, — классом NP.
Современные электронные вычислительные машины строятся как универсальные: в запоминающее устройство наряду с исходными данными поставленной задачи вводится также и программа ее решения. Однако в отличие от машины Тьюринга, в которой внешняя память (лента) бесконечна, в любой реальной вычислительной машине она конечна.
Для сравнения структур различных машин и оценки их сложности используют произведение числа символов внешнего алфавита на число внутренних состояний, отличных от заключительного. В этом смысле представляет интерес задача построения универсальных машин Тьюринга минимальной сложности. Здесь необходимо отметить теоремы Ватанабе о существовании универсальной машины с пятью символами и шестью состояниями, Минского о существовании машины с четырьмя символами и семью состояниями и теорему Триттера о существовании универсальной машины с четырьмя символами и шестью состояниями.
Достарыңызбен бөлісу: |