Машина Тьюринга. 3
Московский Авиационный Институт
(Государственный Технический Университет)
Кафедра Прикладной Информатики
Реферат по курсу
Математическая логика и теория алгоритмов
Тема:
«Машина Тьюринга»
Выполнил:
студент группы 06-421
Иванников Н.Д.
Проверил:
Преподаватель каф. 609
Махорин А. О.
Москва, 2013 г.
СОДЕРЖАНИЕ
1. Математическая модель машины Тьюринга 3
2. Работа машины Тьюринга 6
3. Примеры машин Тьюринга, работающих в алфавите {a, b} 7
4. Способы задания машин Тьюринга, операции над ними 11
5. Список используемой литературы 14
2
1. Математическая модель машины Тьюринга
Идея создания машины Тьюринга, предложенная английским математиком А. Тьюрингом в тридцатых годах XX века, связана с его попыткой дать точное математическое определение понятия алгоритма.
Машина Тьюринга (МТ) – это математическая модель идеализированной цифровой вычислительной машины.
Машина Тьюринга является таким же математическим объектом, как функция, производная, интеграл, группа и т. д. Так же как и другие мате-матические понятия, понятие машины Тьюринга отражает объективную реальность, моделирует некие реальные процессы.
Для описания алгоритма МТ удобно представлять некоторое устройство, состоящее из четырех частей: ленты, считывающей головки, устройства управления и внутренней памяти.
1. Лента предполагается потенциально бесконечной, разбитой на ячейки (равные клетки). При необходимости к первой или последней клетке, в которой находятся символы пристраивается пустая клетка. Машина работает во времени, которое считается дискретным, и его моменты занумерованы 1, 2, 3, … . В каждый момент лента содержит конечное число клеток. В клетки в дискретный момент времени может быть записан только один символ (буква) из внешнего алфавита A = {L, a1, a2 ,..., an-1 }, n ³ 2 . Пустая ячейка обозначается символом L, а сам символ L называется пустым, при этом остальные символы называются непустыми. В этом алфавите A в виде слова (конечного упорядоченного набора символов) кодируется та информация, которая подается в МТ. Машина «перерабатывает» информацию, поданную в виде слова, в новое слово.
2. Считывающая головка (некоторый считывающий элемент) пере-мещается вдоль ленты так, что в каждый момент времени она обозревает
3
ровно одну ячейку ленты. Головка может считывать содержимое ячейки и записывать в нее новый символ из алфавита А. В одном такте работы она может сдвигаться только на одну ячейку вправо (П), влево (Л) или оста-ваться на месте (Н). Обозначим множество перемещений (сдвига) головки D = {П, Л, Н}. Если в данный момент времени t головка находится в крайней клетке и сдвигается в отсутствующую клетку, то пристраивается новая пустая клетка, над которой окажется головка в момент t + 1.
3. Внутренняя память машины представляет собой некоторое конеч-ное множество внутренних состояний Q = { q0 , q1, q2 , ..., qm }, m ³ 1. Будем считать, что мощность |Q | ³ 2. Два состояния машины имеют особое значение: q1 – начальное внутреннее состояние (начальных внутренних состояний может быть несколько), q0 – заключительное состояние или стоп-состояние (заключительное состояние всегда одно). В каждый момент времени МТ характеризуется положением головки и внутренним состоя-нием. Например, под ячейкой, над которой находится головка, указывается внутреннее состояние машины.
¯
a2 |
a1 |
L |
a2 |
a3 |
||
q1 |
4. Устройство управления в каждый момент t в зависимости от счи-тываемого в этот момент символа на ленте и внутреннего состояния ма-шины выполняет следующие действия: 1) изменяет считываемый в момент t символ ai на новый символ a j (в частности оставляет его без изменений,
т. е. ai = a j ); 2) передвигает головку в одном из следующих направлений:
Н, Л, П; 3) изменяет имеющееся в момент t внутреннее состояние машины
4
qi на новое q j , в котором будет машина в момент времени t +1 (может
быть, что qi = q j ).
Такие действия устройства управления называют командой, которую можно записать в виде:
qi ai ® a j D q j , |
(1) |
где qi – внутреннее состояние машины в данный момент; ai – считываемый в этот момент символ; a j – символ, на который изменяется символ ai (может быть ai = a j ); символ D есть или Н, или Л, или П и указывает направление движения головки; q j – внутреннее состояние машины в следующий момент (может быть qi = q j ). Выражения qi ai и a j D q j называются левой и правой частями этой команды соответственно. Число команд, в которых левые части попарно различ-ны, является конечным числом, так как множества Q \ {q0 } и A конечны.
Не существует команд с одинаковыми левыми частями, т. е. если про-грамма машины T содержит выражения qi ai ® a j D q j и qt at ® ak D qk ,
то qi ¹ qt или ai ¹ at и D Î{П, Л , Н}.
Совокупность всех команд называется программой машины Тьюринга. Максимальное число команд в программе равно (n + 1) × m , где n + 1 = A и m + 1 = Q . Считается, что заключительное состояние команды
q0 может стоять только в правой части команды, начальное состояние q1
может стоять как в левой так и в правой части команды.
Выполнение одной команды называется шагом. Вычисление (или работа) машины Тьюринга является последовательностью шагов одного за другим без пропусков, начиная с первого.
Итак, МТ задана, если известны четыре конечных множества: внешний алфавит A , внутренний алфавит Q , множество D перемещений головки и программа машины, представляющая собой конечное множество команд.
5
2. Работа машины Тьюринга
Работа машины полностью определяется заданием в первый (на-чальный) момент: 1) слова на ленте, т. е. последовательности символов, записанных в клетках ленты (слово получается чтением этих символов по клеткам ленты слева направо); 2) положения головки; 3) внутреннего со-стояния машины. Совокупность этих трех условий (в данный момент) на-зывается конфигурацией (в данный момент). Обычно в начальный момент внутренним состоянием машины является q1, а головка находится либо над первой слева, либо над первой справа клеткой ленты.
Заданное слово на ленте с начальным состоянием q1 и положение головки над первым словом называется начальной конфигурацией. В противном случае говорят, что машина Тьюринга не применима к слову начальной конфигурации.
Другими словами, в начальный момент конфигурация представима в следующем виде: на ленте, состоящей из некоторого числа клеток, в каждой клетке записан один из символов внешнего алфавита A , головка находится над первой слева или первой справа клеткой ленты и внутренним состоянием машины является q1. Получившееся в результате реализации этой команды слово на ленте и положение головки называется заключи-тельной конфигурацией.
Например, если в начальный момент на ленте записано слово a1La2 a1a1 , то начальная конфигурация будет иметь вид:
a1 |
a2 |
L |
a1 |
a1 |
||
q1 |
(под клеткой, над которой находится головка, указывается внутреннее со-стояние машины).
6
Работа машины Тьюринга состоит в последовательном применении команд, причем, применение той или команды определяется текущей конфигурацией. Так в приведенном выше примере должна применится команда с левой частью q1a1 .
Итак, зная программу и задав начальную конфигурацию, полностью определяем работу машины над словом в начальной конфигурации.
Если в работе машины Тьюринга в некоторый момент t выполняется команда, правая часть которой содержит q0 , то в такой момент работа маши-
ны считается законченной, и говорят, что машина применима к слову на лен-те в начальной конфигурации. В самом деле, q0 не встречается в левой части ни одной команды – этим и объясняется название q0 «заключительное со-
стояние». Результатом работы машины в таком случае считается слово, кото-рое будет записано на ленте в заключительной конфигурации, т. е. в конфи-гурации, в которой внутреннее состояние машины есть q0 . Если же в работе
машины ни в один из моментов не реализуется команда с заключительным состоянием, то процесс вычисления будет бесконечным. В этом случае гово-рят, что машина не применима к слову на ленте в начальной конфигурации.
3. Примеры машин Тьюринга , работающих в алфавите {a, b}
Проиллюстрируем работу машину Тьюринга на следующем примере.
Пример 1. Построить машину Тьюринга T1, которая применима ко всем словам с внешним алфавитом {a,b} и делает следующее: любое слово x1x2...xn , где xi = a или xi = b (i =1,2,...n) преобразует в слово x2...xn x1,
т. е., начиная работать при слове x1x2...xn на ленте в начальной конфигу-
рации, машина остановится, и в заключительной конфигурации на некото-ром участке ленты будет записано слово x2...xn x1, а все остальные клетки ленты (если такие будут) окажутся пустыми.
7
Решение. За внешний алфавит машины T1 возьмем множество A = {L,a,b}, а за внутренний – Q = {q0 ,q1,q2 ,q3}. Команды определим сле-дующим образом: q1a ® LПq2 , q1b ® LПq3 , qi y ® yППi , где y Î{a,b}, i = 2,3 ; q2 L ® aHq0 , q3 L ® bHq0 .
Рассмотрим работу машины T1 над словом ba . В работе машины над словом ba начальная конфигурация имеет следующий вид:
¯
(1) |
b |
a |
||
q1
На первом шаге действует команда: q1b ® LПq3 . В результате создается следующая конфигурация:
¯ |
||||||||
(2) |
||||||||
L |
a |
|||||||
q3 |
||||||||
|
На втором шаге действует команда |
q3 a ® aПП3 , и на машине создается |
|||||||
конфигурация |
||||||||
¯ |
||||||||
(3) |
||||||||
L |
a |
L |
||||||
q3 |
||||||||
Наконец, третий шаг обусловлен командой q3L ® bHq0 . В результате чего создается конфигурация:
¯
(4) |
L |
a |
b |
||
q0
8
Эта конфигурация является заключительной, так как машина оказалась в состоянии остановки q0 .
Таким образом, слово ba переработано в слово ab .
Полученную последовательность конфигураций можно записать более коротким способом. Конфигурация (1) записывается в виде следующего слова в алфавите A È Q : q1ba (содержимое обозреваемой ячейки записано справа от состояния, в котором находится данный момент машина). Далее, конфигура-ция (2) записывается так: q3a , конфигурация (3) – aq3L , и наконец, (4) – abq0 .
Вся последовательность записывается так: q1ba Þ Lq3a Þ aq3L Þ abq0 .
Пример 2. Применить машину Тьюринга T1 из примера 1 к слову bbabb, исходя из начального положения, при котором в состоянии q1 обо-
зревается крайняя левая ячейка, в котором содержится символ этого слова.
Решение
(1) |
b |
b |
a |
b |
b |
|||
q1 |
||||||||
|
(2) |
||||||||
L |
b |
a |
b |
b |
||||
q3 |
||||||||
(3) |
L |
b |
a |
b |
b |
|||
q3 |
||||||||
|
(4) |
||||||||
L |
b |
a |
b |
b |
||||
q3 |
||||||||
|
(5) |
||||||||
L |
b |
a |
b |
b |
||||
q3 |
||||||||
9
(6) |
L |
b |
a |
b |
b |
L |
||
q3
|
(7) |
L |
b |
a |
b |
b |
b |
|||
q0
Более короткая запись этой последовательности конфигураций, т. е. про-
цесса работы машины будет
q1bbabb Þ Lq3babb Þ Lbq3 abb Þ Lbaq3bb Þ
Þ Lbabq3b Þ Lbabbq3 L Þ babbb.
Таким образом, слово bbabb переработано машиной в слово babbb .
Пример |
3. Задается машина Тьюринга внешним алфави- |
том A = {a,b, c}, |
алфавитом внутренних состояний Q = {q0 , q1, q2 , q3} и |
программой: |
q1a ® q1Лa, q2a ® q3 Пb, q3a ® q1Лa, q1b ® q2 Лa, q2b ® q2 Лb, q3b ® q3 Пb, q1c ® q0 a, q2c ® q2 Лc, q2 L ® q2 Ha, q3c ® q3 Пc.
Заметим, что программа этой машины может быть записана в виде следующей таблицы:
q1 |
q2 |
q3 | |
a |
q1Лa |
q3Пb |
q1Лa |
b |
q2 Лa |
q2 Лb |
q3Пb |
c |
q0a |
q2 Лc |
q3 Пc |
Для того чтобы определить по таблице, что будет делать машина, нахо-дясь, например, в состоянии q2 и наблюдая в обозреваемой ячейке символ b, нужно найти в таблице клетку, находящуюся на пересечении столбца q2
и строки b. В этой клетке записано q 2 bЛ . Это означает, что на следующем
10
шаге машина останется в прежнем состоянии q2 , сохранит содержимое обозреваемой ячейки b и перейдет к обозрению следующей левой ячейки на ленте.
Предположим, что в начальной конфигурации головка находится над крайней правой клеткой.
Применим эту машину к слову bbcbb. Последовательность конфигура-ций, возникающих в процессе работы машины (исходная конфигурация – стандартная начальная):
bbcbq1b Þ bbcq2ba Þ bbq2cba Þ bq2bcba Þ q2bbcba Þ q2abbcba Þ
- bq3bbcba Þ bbq3bcba Þ bbbq3cba Þ bbbcq3ba Þ bbbcbq3a Þ bbbcq1ba Þ
- bbbq2caa Þ bbq2bca Þ bq2bbca Þ q2bbbca Þ q2 abbbca Þ bq3bbbca Þ
- bbq3bbca Þ bbbq3bca Þ bbbbq3ca Þ bbbbcq3 Þ bbbbq1ca Þ bbbbq0 aa.
Нетрудно заметить, что данная МТ реализует операцию сложения: в результате ее работы на ленте записано подряд столько букв b , сколько их было всего записано по обе стороны от буквы c перед началом работы машины.
Из приведенных примеров следует, что МТ – это некоторое правило (алгоритм) для преобразования слов алфавита A È Q , т. е. конфигураций.
Таким образом, для определения (построения) машины Тьюринга нужно задать ее внешний и внутренний алфавиты, программу и указать, какие из символов обозначают пустую ячейку и заключительное состояние.
4. Способы задания машин Тьюринга, операции над ними
Рассмотрим три основные операции, применяемые над машинами Тьюринга.
1. Пусть машины Тьюринга Т1 и Т2 имеют соответственно про-
граммы П1 и П2. q10 – заключительное состояние Т1, q12 – начальное со-
11
стояние Т2. Предположим, что внутренние алфавиты этих машин не пе-
ресекаются. Заменим везде в программе П1 состояние q10 на состояние q12 и полученную программу объединим с программой П2. Новая про-
грамма П определяет машину Т, которая называется композицией ма-
шин Т1 и Т2 (по паре состояний ( q10 , q12 )) и обозначается Т1 Т2 или Т1Т2 .
Более подробная запись полученной машины будет выглядеть – Т = = Т(Т1, Т2, ( q10 , q12 )). Внешний алфавит композиции Т1 Т2 является объ-
единением алфавитов машин Т1 и Т2.
2. Пусть q0 – некоторое заключительное состояние машины Т, а qk –
какое-либо состояние этой же машины Т, не являющееся заключительным. Заменим всюду в программе П машины Т символ q0 на qk . В результате получим программу П’, которая определяет машину Т’ ( q0 , qk ). Машина Т’ называется итерацией машины Т по паре состояний ( q0 , qk ).
3. Пусть машины Тьюринга Т1, Т2 и Т3 задаются программами П1, П2 и П 3 соответственно. Внутренние алфавиты этих машин не пересекаются. Пусть q0' и q0'' – какие-либо заключительные состояния машины
Т1. Заменим в программе П1 состояние q0' некоторым начальным состоя-
нием q' машины Т2, |
а состояние |
q'' некоторым начальным состоянием | |||
1 |
0 | ||||
q" |
машины Т3. Затем новую программу объединим с программами П2 и | ||||
1 |
|||||
П3. |
Получим |
программу П, |
задающую машину Тьюринга | ||
Т = Т(Т1( q' |
, q' ),Т2( q'' |
, q" ),Т3), которая называется разветвлением машин | |||
0 |
1 |
0 |
1 |
||
Т2 и Т3, управляемым машиной Т1.
Отметим, что при построении сложных машин Тьюринга применяют так называемую операторную запись алгоритма. Этот способ построения впервые был предложен А.А. Ляпуновым в 1953 году. Так как специальный операторный язык для записи алгоритмов носит вспомогательный характер, то не имеет смысла давать его строгое формально-логическое определение. Ос-тановимся на кратком описании операторного языка и рассмотрим пример.
12
Операторную запись алгоритма представляет собой строку, состоя-
щую из символов, обозначающих машины, символов перехода (вида | q' и
k
q"|), а также символов a и w , служащих для обозначения соответственно
k
начала и окончания работы алгоритма. В операторной записи (некоторого
алгоритма) выражение Тi | qi0 |
Тj …Tm qn1 | Tn обозначает разветвление ма- |
k |
k |
шин Тj и Tn, управляемое машиной Тi, причем заключительное состояние qi0 машины Тi заменяется начальным состоянием qn1 машины Tn, а всякое другое заключительное состояние машины Тi заменяется начальным со-стоянием машины Тj (одним и тем же). Если машина Тi имеет одно заклю-
чительное состояние, то символы | qi0 и qn1 |служат для обозначения безус-
ловного перехода. Там, где могут возникнуть недоразумения, символы qi0 и qn1 опускаются.
Пример 4. Операторная схема |
|||||
| |
|Т1 a Т2 | q20 Т3 | q30 Т4 w | ||||
2 |
1 |
1 |
2 | ||
описывает следующий «процесс вычисления». Начинает работу машина Т2. Если она заканчивает работу в состоянии q20 , то начинает работать машина Т1, а по окончании работы Т1 вновь «выполняет работу» машина Т2. Если же машина Т2 останавливается в некотором заключительном со-стоянии, отличном от q20 , то работу продолжает машина Т3. Если Т3 при-
ходит в заключительное состояние q30 , то начинает работу машина Т1; ес-
ли же Т3 заканчивает работу в некотором заключительном состоянии, от-личном от q30 , то работу продолжает машина Т4. Если машина Т4 когда-
либо остановится, то процесс вычисления на этом заканчивается.
13
5. Список используемой литературы:
- Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман Глава 8. Введение в теорию машин Тьюринга // Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. — М.: «Вильямс», 2002. — С. 528. — ISBN 0-201-44124-1
- Фалевич Б.Я. Теория алгоритмов. – М.: ИНФРА-М, 2006. – с.324.
- Фалина Н.М. Машина Тьюринга // Информатика. - №26. – 2005. – с.12-15
14

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