Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Машина Тьюринга.

Читайте также:
  1. Аппаратное обеспечение. Машина Джон фон Неймана.
  2. Вантажопіднімальні крани за характером є рухомими машинами у процесі експлуатації яких виникають небезпечні ситуації.
  3. Ваша машина упала в воду
  4. Лабораторная работа 1. Установка ОС в виртуальных машинах.
  5. Лекция 12. Алгоритмы и машина Тьюринга
  6. Лекция 2. Машина Тьюринга
  7. Машина Поста.
  8. Машина Тьюринга
  9. Машина Тьюринга
  10. Машина Тьюринга и алгоритмически неразрешимые проблемы

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

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

Читающая и пишущая головка может читать буквы рабочего алфавита A={a 40 0,a 41 0,...,a 4t 0}, стирать их и печатать. Каждая ячейка ленты в каждый момент времени занята буквой из множества А. Чаще всего встречается буква а 40 0- "пробел". Головка находится в каждый момент времени над некоторой ячейкой ленты - текущей рабочей ячейкой. Лентопротяжный механизм может перемещать ленту так, что головка оказывается над соседней ячейкой ленты. При этом возможна ситуация выхода за левый край ленты (ЛК), которая является аварийной (недопустимой), или машинного останова (МО), когда машина выполняет предписание об остановке.

Порядок работы МТ (с рабочим алфавитом a 40 0,a 41 0,...,a 4t 0и состояниями q 40 0, q 41 0,...,q 4s 0) описывается таблицей машины Тьюринга. Эта таблица является матрицей с четырьмя столбцами и (s+1)(t+1) строками. Каждая строка имеет вид

q 4i 0a 4j 0v 4ij 0q 4ij 0, 0 7, 0i 7, 0s, 0 7, 0j 7, 0t, q 4ij 7е 0{q 40 0, q 41 0,...,q 4s 0}.

Здесь через v 4ij 0обозначен элемент объединения алфавита {a 40 0,a 41 0,...,a 4t 0} и множества предписаний для лентопротяжного механизма: l - переместить ленту влево, r - переместить ленту вправо, s - остановить машину. Т.о. v 4ij 0- действие МТ, состоящее в занесении в ячейку ленты символа алфавита a 40 0,a 41 0,...,a 4t 0, либо в движении головки, либо в останове машины. q 4ij 0называется следующим состоянием.

МТ работает согласно следующим правилам: если МТ находится в состоянии q 4i 0, головка прочитывает символ a 4j 0в рабочей ячейке.

Пусть строка q 4i 0a 4j 0v 4ij 0q 4ij 0, начинающаяся с символов q 4i 0a 4j 0, встречается только один раз в таблице. Если v 4ij 0- буква рабочего алфавита, то головка стирает содержимое рабочей ячейки и заносит туда эту букву. Если v 4ij 0- команда r или l для лентопротяжного механизма, то лента сдвигается на одну ячейку вправо или влево (если не происходит выход за левый край ленты!) соответственно. Если v 4ij 0=s, то происходит машинный останов.

Машина Тьюринга начинает работу из некоторой начальной конфигурации, включающей в себя начальное состояние (обычно q 40 0) и положение считывающе-записывающей головки над определенной ячейкой ленты, содержащей один из символов рабочего алфавита А.

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

Рассмотрим примеры нескольких схем машины Тьюринга.

1. Алгоритм прибавления единицы к числу n в десятичной системе счисления.

Дана: десятичная запись числа n (т.е. представление натурального числа n в десятичной системе счисления), требуется: получить десятичную запись числа n+1.

Очевидно, что внешний алфавит МТ должен состоять из десяти цифр 0,1,2,3,4,5,6,7,8,9 и символа пробела _. Эти цифры записываются по одной в ячейке (подряд, без пропусков).

Оказывается достаточным иметь два внутренних состояния машины: q 41 0и q 42 0.

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

2. Алгоритм записи числа в десятичной системе счисления.

Дана: конечная последовательность меток, записанных в клетки ленты подряд, без пропусков. Требуется: записать в десятичной системе число этих меток (пересчитать метки).

Суть алгоритма может состоять в том, что к числу 0, записанному на ленте в начале работы машины, машина добавляет 1 стирая метку за меткой, так что вместо нуля возникает число 0+k.

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

В зависимости от числа используемых лент, их назначения и числа состояний устройства управления можно рассматривать различные модификации машин Тьюринга.

Предположим, мы расширили определение МТ, добавив определенное состояние q 4* 0 устройства управления машины. Будем говорить, что если устройство управления переходит в состояние q 40 для заданного входного слова х, то машина допускает х; если устройство переходит в состояние q 4* 0, то машина запрещает х. Такую машину будем называть машиной Тьюринга с двумя выходами. Могут быть рассмотрены многочисленные машины Тьюринга, имеющие некоторые конечные числа лент. В каждой клетке этих лент может

находиться один из символов внешнего алфавита A={a 40 0,a 41 0,...,a 4n 0}.

Устройство управления машины в каждый момент времени находится в одном из конечного множества состояний Q={q 40 0, q 41 0,...,q 4m 0}. Для k-ленточной машины конфигурация ее в i-й момент времени описывается системой k-слов вида:

a 4i11 0... a 4i1l 0q 4i 0a 4i1l+1 0... s 4i1t 0;...

a 4ik1 0... a 4ikl 0q 4i 0a 4ikl+1 0... a 4ikv 0;

первый индекс соответствует моменту времени; второй - номеру ленты; третий - номеру клетки, считая слева направо. Говорят, что машина выполняет команду

q 4i 0a 7ф 41 0... a 7ф 4k 0 -> q 4j 0a 7и 41 0k 41 0... a 7и 4к 0k 4k 0, K={Л,С,П},

Если, находясь в состоянии q 4i 0и обозревая ячейки с символами a 7ф 41 0... a 7ф 4k 0, машина переходит в состояние q 4j 0, заменяя содержимое ячеек соответственно символами a 7и 41 0... a 7и 4k 0, то после этого ленты соответственно сдвигаются в направлениях k 41 0... k 4k 0.

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

1) различные символы должны заменяться различными кодовыми группами, но один и тот же символ должен заменяться всюду, где бы он не встретился, одной и той же кодовой группой;

2) строки кодовых записей должны однозначно разбиваться на отдельные кодовые группы;

3) должна иметься возможность распознать кодовые группы, соответствующие командам Л,П,С, различать кодовые группы, соответствующие символам внешнего алфавита и внутренним состояниям.

Для сравнения структур различных машин и оценки их сложности необходимо иметь соответствующую меру сложности машин. К.Шеннон предложил рассматривать в качестве такой меры произведение числа символов внешнего алфавита и числа внутренних состояний. Большой интерес вызывает задача построения универсальной машин Тьюринга наименьшей сложности.

Может быть рассмотрено еще одно обобщение машин Тьюринга: их композиции. Операции композиции, выполняемые над алгоритмами, позволяют образовывать новые, более сложные алгоритмы из ранее известных простых алгоритмов. Поскольку машина Тьюринга - алгоритм, то операции композиции применимы и к машинам Тьюринга. Рассмотрим основные из них: произведение, возведение в степень, итерацию.

Пусть заданы машины Тьюринга Т 41 0и Т 42 0, имеющие общий внешний алфавит A={a 40 0, a 41 0,..., a 4m 0} и внутренние состояния Q 41 0={q 40 0, q 41 0,...,q 4n 0} и Q 42 0={q 40 5` 0, q 41 5` 0,...,q 4t 5` 0} соответственно. Композицией или произведением машины Т 41 0и машины Т 42 0будем называть машину Т с тем же внешним алфавитом A={a 40 0, a 41 0,..., a 4m 0} и набором внутренних состояний Q={q 40 0, q 41 0,...,q 4n 0, q 4n+1 0,...,q 4n+t 0} и программой, эквивалентной последовательному выполнению программ машин Т 41 0 и Т 42 0: Т=Т 41 0*Т 42 0.

Таким же образом определяется операция возведения в степень:

n-й степенью машины Т называется произведение Т...Т с n сомножителями.

Операция итерации применима к одной машине и определяется следующим образом. Пусть машина Т 41 0имеет несколько заключительных состояний. Выберем ее r-е заключительное состояние и отождествим его в схеме машины с ее начальным состоянием. Полученная машина Т является результатом итерации машины Т 41 0: Т=Т 41 0.

Прежде чем остановиться на проблеме алгоритмической разрешимости задач обратимся к другим способам формализации понятия алгоритма.

 




Дата добавления: 2015-01-30; просмотров: 31 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав