Графическое представление

Диаграмма имеет вид графа:

Табличное значение машины

Таблица 1

А

Q

*

λ

l

q1

q0 λR

q2 λR

q2

q3 1R

q2 1R

q3

q0 λR

q3 1L

  1. Некоторые операции над машинами Тьюринга

Работа машины Тьюринга полностью определяется исходными данными и системой команд. Однако для того, чтобы понять, как конкретная машина решает задачу, как правило, возникает необходимость в содержательных пояснениях типа тех, которые приводились для машины . Эти пояснения часто можно сделать более формальными и точными, если использовать блок-схемы и некоторые операции над машинами Тьюринга. Напомним, что композицией функцийиназывается функция, которая получается при применениик результату вычисления. Для того, чтобыбыла определена при данном, необходимо и достаточно, чтобыбыла определена на, абыла определена на.

Теорема 1. Еслиивычислимы по Тьюрингу, то их композициятакже вычислима по Тьюрингу.

Пусть - машина, вычисляющая, а- машина, вычисляющая, и множество их состояний соответственнои.

Построим диаграмму переходов машины из диаграммиследующим образом: отождествим начальную вершинудиаграммы машиныс конечной вершинойдиаграммы машины(для систем команд это равносильно тому, что систему командприписываем к системе команди для этогов командахзаменяем на). Получим диаграмму с () состояниями. Начальным состояниемобъявими заключительным. Для простоты обозначений будем считатьичисловыми функциями от одной переменной.

Пусть определена. Тогдаи

. Машинапройдет ту же последовательность конфигураций с той разницей, что вместоона пройдет в. Эта конфигурация является стандартной начальной конфигурацией для машины, поэтому. Но так как все командысодержатся в, то

и, следовательно,. Если жене определена, тоилине останавливается и, следовательно, машинане остановится. Итак, машинавычисляет.

Построенную таким образом машину будем называть композицией машинии обозначать(или()), а также изображать блок-схемой:

  1. Композиция машин Тьюринга

Пусть ,,- три машины Тьюринга с одним и тем же внешним алфавитом, с алфавитами внутренних состояний,,и программами,,соответственно.

Композициеймашининазываетсямашина Т, программа которой есть объединение множестви

, гдеобозначает множество команд, полученных иззаменой всехна.

  1. Разветвление машин Тьюринга

Разветвлением машин ,,по, символически

называетсямашина T, программа которой получается следующим образом: изисключаются командыидля, полученное множество назовем; тогда.

  1. Универсальная машина Тьюринга

Систему команд машины Тьюринга можно интерпретировать и как описание работы конкретного устройства и как программу, т.е. совокупность предписаний, однозначно приводящих к результату. При разборе примеров невольно принимается вторая интерпретация, т.е. мы выступаем в роли механизма, который способен воспроизвести работу любой машины Тьюринга. Уверенность в том, что все это будут делать одинаково (если не наделают ошибок, что, кстати, предполагается и при работе машины Тьюринга) - это по существу уверенность в существовании алгоритма воспроизведения работы машины Тьюринга по заданной программе, т.е. системе команд. Действительно, словесное описание такого алгоритма дать нетрудно. Его основное действие циклически повторяется и состоит в следующем: "Для текущей конфигурации найти в системе команд команду с левой частью. Если правая часть этой команды имеет вид, то заменить в текущей конфигурациина(получается конфигурация); если же правая часть имеет вид, то заменитьна. Словесное описание алгоритма может быть неточным и нуждается в формализации. Поскольку в качестве такой формализации понятия алгоритма сейчас обсуждается машина Тьюринга, то естественно поставить задачу построения машины Тьюринга, реализующей описанный алгоритм воспроизведения. Для машин Тьюринга, вычисляющих функции от одной переменной, формулировка этой задачи такова: построить машину Тьюринга, вычисляющую функцию от двух переменных и такую, что для любой машиныс системой команд, еслиопределена (т.е. если машинаостанавливается при исходных данных) ине останавливается, еслине останавливается. Любую машину, обладающую указанным свойством, будем называтьуниверсальной машиной Тьюринга. Нетрудно обобщить эту формулировку на любое число переменных.

Первая проблема, возникающая при построении универсальной машины , связана с тем, чтокак и любая другая машина Тьюринга, должна иметь фиксированный алфавити фиксированное множество состояний. Поэтому систему команди исходные данные произвольной машинынельзя просто переносить на ленту машины(всегда найдется машина, алфавитыикоторой превосходят по мощностииили просто не совпадают с ним).

Выход заключается в том, чтобы символы из икодировались символами в алфавите. Пусть,. Будем всегда считать, чтои(эти два символа всегда есть в алфавите любой машины, работающей с числами). Обозначим кодыичерезии определим их как; для любого другого; для заключительного состояния, если

. Коддля данной машинывсегда имеет длину (формат), а код- формат. Символы , введем в, т.е.,,. Код символа, образованный кодами символов, составляющих это слово, обозначим. Таким образом, окончательное уточнение постановки задачи об универсальной машинесводится к тому, что для любой машиныи словаалфавита.

Существование универсальной машины Тьюринга означает, что систему команд любой машиныможно интерпретировать двояким образом: либо как описание работы исходного устройства, либо как программу для универсальной машины. Для современного инженера, проектирующего систему управления, это обстоятельство естественно. Он хорошо знает, что любой алгоритм управления может быть реализован либо аппаратурно - построением соответствующей схемы, либо программно - написанием программы универсальной управляющей ЭВМ.

Однако важно сознавать, что идея универсального алгоритмического устройства совершенно не связана с развитием современных технических средств его реализации (электроники, физики твердого тела и т.д.) и является не техническим, а математическим фактом, описывающим в абстрактных математических терминах, не зависящих от технических средств, и к тому же опирающемся на крайне малое количество весьма элементарных исходных понятий. Характерно, что основополагающие работы по теории алгоритмов (в частности, работы Тьюринга) появились в 30-х годах, до создания современных ЭВМ.

Указанная двоякая интерпретация сохраняет на абстрактном уровне основные плюсы и минусы двух вариантов инженерной реализации. Конкретная машина работает гораздо быстрее; кроме того управляющее устройство машиныдовольно громоздко (т.е. велико число состояний и команд). Однако его величина постоянна и будучи раз построена она годится для реализации сколь угодно больших алгоритмов. Необходим лишь большой объем ленты, которую естественно считать более дешевой и более просто устроенной, чем управляющее устройство. Кроме того, при смене алгоритма не понадобится строить новых устройств, нужно лишь написать новую программу.