Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория алгоритмов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
1.3. Операции над машинами Тьюринга
{ }
00 0000 12
||...| ... || ...| ... ||...| ...
n
x
1
aa aaaa xx x
код число x
2
код число x
n
код число
xx x∧∧∧
xx x
00 0
xx x
xx x
xx x
В данном случае машина M является результатом
операции композиции над машинами M1 и M2.
При уточнении понятия алгоритма с помощью машины Тьюринга часто возникает вопрос: сколько минимальных символов должен иметь алфавит машины Тьюринга, чтобы ее потенциальная вычислимость не уменьшалась.
Практика показывает, что для этих целей достаточно рассматривать алфавит из двух символов. Исходя из этого, в дальнейшем будем рассматривать процесс вычислимости машины Тьюринга в двухсимвольном алфавите
,|Aa= .
0
Осуществим кодирование всех натуральных чисел символами данного алфавита: каждому натуральному числу n поставим в соответствие слово
.
||...|
1
n+
Таким образом, в виде таблицы процесс кодирования
натуральных чисел выглядит:
Таблица 7
N
Код
0 1 2 3 4 5 …
| || ||| |||| ||||| |||||| …
Введем следующие обозначения: запись на ленте
и назовём выражение
12
...
— кодом последова-
n
тельности чисел
Слово
, ,...,
12
...aa a — называется массивом пустых клеток
.
n
(промежуток) а слово a0 — единичным промежутком.
Далее, если на ленте записаны последовательно коды чисел промежутками, обозначим это
, ,...,
12
, разделенные между собой единичными
n
, ,...,
12
щую запись на ленте назовём кодом набора чисел
, ,...,
12
— 21 —
.
n
и соответствую-
n
Глава 1. МАТЕМАТИЧЕСКАЯ МАШИНА ТЬЮРИНГА КАК ФОРМА УТОЧНЕНИЯ ПОНЯТИЯ
in
xx x x∧∧∧∧∧
xx
in
in
xx x x∧∧∧∧∧
in
xx x x∧∧∧∧∧
in i n
xx x x xx x x
i n ii n
xx x x xx x x x
∧∧∧∧∧→∧∧∧+ ∧∧
Определение. Говорят, что в последовательности
12
... ...
число ix воспринимается в стан­дартном положении, если конфигурация машины Тьюринга выглядит следующим образом:
xx
12
||...| ... || ... | ... || ... | ... || ... |
aa a aa a aa a
00 0 00 0 00 0
q
1
и обозначают следующим образом:
12
... ...
.
Определение. Говорят, что последовательность чисел
12
... ...
воспринимается машиной Тьюринга в стандартном поло­жении, если в стандартном положении воспринимается число nx .
В дальнейшем покажем, что любая арифметическая
функция вычислима по МТ.
Основой для этого служит некоторый базис элементар­ных машин Тьюринга, о построении которых будем гово­рить ниже.
1.4. Базис элементарных машин Тьюринга
1. Машина А – воспринимает число в стандартном по-
ложении, увеличивает его на единицу и останавливается, воспринимая полученное число как конечный результат. Программа имеет следующий вид:
|Пq
|
1
a
0
q
1
|Hq
0
Аналитическая запись машины A имеет вид:
... ... ... 1 ...
∧∧∧∧∧→∧∧∧+∧∧,
12 12
A
где между кодами чисел ix и 1ix+ не менее трех пустых яче­ек, в противном случае имеет место:
12 12 1
... ... ... 1, , ...
A
— 22 —
+
.
1.4. Базис элементарных машин Тьюринга
00
aq
12 12
nn
∧∧∧ →∧∧∧ −
12
n
xx x∧∧∧
02
aq
1
| q
nn
2. Машина В – воспринимает число в стандартном по-
ложении, стирает крайне правый символ кода этого чис­ла, сдвигает управляющую головку на одну ячейку влево и останавливается. Программа имеет следующий вид:
a
0
q
1
-
|
Л
Таким образом, если машина B воспринимает число больше нуля в стандартном положении, то она уменьшает это число на единицу и останавливается, воспринимая по­лученное число.
Аналитическая запись можно представить следую­щим образом:
xx x xx x
... ... 1
B
.
3. Машина С – если машина воспринимает последо-
вательность чисел
...
в стандартном положе­нии, то через одну пустую ячейку она записывает код нуля и останавливается, воспринимая нуль.
Программа имеет вид:
П
|
1
a
0
q
1
q
2
Аналитическая форма машины C выглядит:
xx x xx x∧∧∧→∧∧∧ .
12 12
... ... ,0
П
| Hq
C
0
4. Машина Д – воспринимает в стандартном положе-
нии число xi, справа от которого тоже записано какое-то число, заполняет символами | промежуток справа от кода числа xi, оставляя одну пустую ячейку перед следующим справа числом. Останавливается, воспринимая получен­ное число.
Программа имеет вид:
— 23 —
Глава 1. МАТЕМАТИЧЕСКАЯ МАШИНА ТЬЮРИНГА КАК ФОРМА УТОЧНЕНИЯ ПОНЯТИЯ
2
| q
1
| q
2
| q
3
| q
00
aq
1 11 1
iin iin
xxx xxxx x
++
1
q
1
| q
0
1q02
aq
1
| q
1
2q02
aq
0
12 1 12 1
ii n ii n
xx x x x xx x x x
−−
∧∧∧ ∧∧∧→∧∧∧ ∧∧∧
a
0
q
1
q
2
q
3
П
П
q
2
q
2
|
П
1
Л
3
Л
В аналитическом виде эта машина представляется так:
... ... ... , ...
∧∧∧ ∧∧→∧∧+λ ∧∧ .
D
5. Машина Р – передвигает управляющую головку
на одну ячейку влево. Запись на ленте не меняется.
a
0
q
1
|
|
Л
0
7. Машина V – передвигает управляющую головку
на одну ячейку вправо. Запись на ленте не меняется.
П
|
0
a
0
q
1
9. Машина L – воспринимает число в стандартном по-
ложении, передвигает управляющую головку к первому слева числу, если оно имеется, и воспринимает это число, затем останавливается.
Программа имеет следующий вид:
a
|
Л
Л
Л
| Hq
Аналитическая запись машины L:
... ... ... ...
L
10. Машина R – воспринимает число в стандартном
положении, передвигает управляющую головку к перво­му справа числу, если оно имеется, и воспринимает его
— 24 —
.
1.4. Базис элементарных машин Тьюринга
02
aq
02
aq
00
aq
ii n ii n
xx xx x xx xx x
++
xx
( )
12 12 1
mm
xx x xx x x
km
xxx
1 11
km km k
xxxxxxxx
xx
m mm
mm
yx x yx
в стандартном положении. В противном случае машина R работает произвольно.
Программа имеет следующий вид:
|П
|П
|П
|
1
3
3
a
0
q
1
q
2
q
3
П
П
Л
Аналитическая запись машины R:
... ... ... ...
∧∧∧∧ ∧∧→∧∧∧∧ ∧∧.
12 1 12 1
R
11. Машина mT – воспринимает в стандартном поло-
жении набор 1,...,
, справа от которого нет чисел, и она
m
записывает справа от кода числа mx через одну пустую ячейку, код первого числа этого набора — 1x , останавли­вается, воспринимая полученный
T
m
→ .
T
→ .
12. Машина
ра 1,..., ,...,
, ,..., , ,..., ,
k
T — выбирает первые k элементов из набо-
m
:
,..., ,..., ,..., ,..., , ,...,
k
m
1m + — набор:
13. Машина mK – воспринимает в стандартном поло-
жении набор 1,..., этот набор, т.е.:
, ,..., , ,..., ,, , ,...,
xx x xx x xx x→ .
12 12 12
, и через две пустые ячейки копирует
m
K
m
14. Машина U – воспринимает число в стандартном по-
ложении, стирает все числа, расположенные слева от него, до ближайшего не единичного промежутка; останавлива­ется, воспринимая первоначальное число:
,...,
∧ →∧ .
1
U
15. Машина S – воспринимает число в стандартном по-
ложении, сдвигает его к соседнему слева числу, оставляя
— 25 —
Глава 1. МАТЕМАТИЧЕСКАЯ МАШИНА ТЬЮРИНГА КАК ФОРМА УТОЧНЕНИЯ ПОНЯТИЯ
11
mm
xxyxxy
>
>
xx
≤
−>
02
aq
02
aq
02
aq
02
aq
02
aq
между ними единичный промежуток. Останавливается, воспринимая сдвинутое число:
,..., ,..., ,
S
∧→ .
Примеры: постройте программы машин, вычисляю-
щие следующие функции:
1, 0
x
1.
2.
3.
=
Sgx
 
=
Sgx
 
= −=
fx x
( )
=
0, 0
x
0, 0
x
=
1, 0
x
0, 1
1
 
;
;
x
1, 1
.
Для каждой функции программа соответственно име-
ет вид:
для функция Sgx :
для функция Sgx :
a
0
q
1
q
2
q
3
q
q
2
q
3
| Hq
0
|П
2
a
0
1
|П
3
| Hq
0
— 26 —
|
Л
Л
Л
|
Л
Л
1.4. Базис элементарных машин Тьюринга
( )
02
aq
02
aq
00
для функция
q
1
q
2
q
3
a
| Hq
0
1fx x= −:
|
Л
0
Л
a Hq
Универсальная машина Тьюринга
Систему команд машины Тьюринга можно интерпре­тировать и как описание работы конкретного механизма, и как программу, т.е. совокупность предписаний, одно­значно приводящих к результату.
При решения задач мы невольно принимаем вторую интерпретацию, выступая в роли механизма, который способен воспроизвести работу любой машины Тьюринга. Эта способность связана с существованием алгоритма воспроизведения работы машины Тьюринга по заданной программе, то есть системе команд. Словесное описание такого алгоритма дать нетрудно, и его главное циклически повторяющееся действие состоит в следующем.
Для текущей конфигурации a1akqiaja2 найти в системе команд команду с левой частью qiaj.
Если правая часть этой команды имеет вид q'ia'jR', то заменить в текущей конфигурации akqiaj на aka'jq'i.
Если правая часть имеет вид q'ia'jL, то заменить akqiaj на qi'akaj'.
Если же правая часть имеет вид q'ia'jE, то заменить akqiaj на akqi'aj'.
Словесное описание алгоритма может быть неточным
и нуждается в формализации. Так как в качестве такой
— 27 —
Глава 1. МАТЕМАТИЧЕСКАЯ МАШИНА ТЬЮРИНГА КАК ФОРМА УТОЧНЕНИЯ ПОНЯТИЯ
формализации понятия алгоритма сейчас обсуждается ма­шина Тьюринга, то естественно поставить задачу постро­ения машины Тьюринга, реализующей описанный алго­ритм воспроизведения.
Для машин Тьюринга, вычисляющих функции от од­ной переменной, формулировка этой задачи такова: по­строить машину Тьюринга U, вычисляющую функцию от двух переменных и такую, что для любой машины T с системой команд ST U(ST,a) = T(a), если T(a) определена (или останавливается), и U(ST,a) не останавливается, если T(a) не останавливается.
Любую машину U, обладающую указанным свойст вом, будем называть универсальной машиной Тьюринга.
Нетрудно обобщить эту формулировку для любого числа переменных.
Теорема. Универсальная машина Тьюринга сущест­вует.
Доказательство этой теоремы мы приводить не будем, но отметим, что имеется ее конструктивное доказатель­ство, в котором описывается построение искомой универ­сальной машины Тьюринга.
Отметим следующий важный для нас момент. При построении машин Тьюринга в примерах мы не жалели ни символов ленты, ни состояний, стремясь к наглядности построений. Нетрудно сказать, а программист, привык­ший к двоичному кодированию, легко в это поверит, что можно построить машину Тьюринга U всего с двумя сим­волами на ленте.
К. Шеннон построил универсальную машину всего с двумя состояниями, что совсем не очевидно. В то же вре­мя показано (Б. Борроу и М. Минский), что универсаль­ная машина с двумя состояниями и двумя символами не­возможна. Вообще в определенных пределах уменьшение
— 28 —
1.4. Базис элементарных машин Тьюринга
числа символов U ведет к увеличению числа состояний, и наоборот.
Существование универсальной машины Тьюринга оз-
начает, что систему команд ∑T любой машины T можно ин­терпретировать двояко, а именно как:
• описание работы конкретного устройства машины T
• программу для универсальной машины U
Для современной информатики это обстоятельство вполне естественно: любой алгоритм может быть реали­зован либо аппаратно (построением соответствующей схе­мы), либо программно (написание программы для уни­версального компьютера). Однако важно осознавать, что сама идея универсального алгоритмического устройства совершенно не связана с развитием современных техни­ческих средств его реализации (лампы, полупроводники, БИС и т.д.) и является не техническим, а математическим фактом, который описывается в абстрактных математи­ческих терминах, не зависящих от технических средств, и к тому же опирающимся на крайне малое количество весьма элементарных исходных понятий.
Указанная двоякая интерпретация сохраняет на аб­страктном уровне основные плюсы и минусы двух ва­риантов инженерной реализации. Конкретная машина T работает гораздо быстрее; кроме того, управляющее устройство машины U довольно громоздко, то есть вели­ко число состояний и команд. Однако его сложность по­стоянна, и, будучи раз построено, оно годится для реали­зации сколь угодно больших алгоритмов, понадобится лишь большой объем ленты, которую естественно считать более дешевой и более просто устроенной, чем управляю­щее устройство. Кроме того, при смене алгоритма не пона­добится строить новых устройств, нужно лишь написать новую программу.
— 29 —
Глава 1. МАТЕМАТИЧЕСКАЯ МАШИНА ТЬЮРИНГА КАК ФОРМА УТОЧНЕНИЯ ПОНЯТИЯ
{ }
123
1.5. Уточнение понятия алгоритма через машину с неограниченными регистрами
Рассмотрим теперь уточнение определения алгоритма через машину с неограниченным количеством регистров (МНР). При этом, как в случае машины Тьюринга, в каче­стве изучаемых объектов берем элементы из множества на­туральных чисел, т.е.
Ниже мы перечислим все команды из списка предпи­саний МНР, однозначно определим действие каждой ко­манды и опишем механизм реализации алгоритма. Нужно отметить, что процесс работы МНР полностью удовлетво­ряет всем свойствам алгоритма.
Машина с неограниченными регистрами является исполнителем, представляющим собой простой «идеали­зированный компьютер». Идеализация состоит в том, что каждый отдельный реальный компьютер ограничен как величиной чисел, которые поступают на вход, так и разме­ром памяти (необходимой для запоминания промежуточ­ных результатов). МНР лишена этих ограничений. Машина с неограниченными регистрами имеет неограниченно боль­шую память, ячейки которой будем называть регистрами и обозначать
, , ,...RRR .Каждый регистр в любой момент времени содержит натуральное число. Число, содержаще­еся в Rn, будем обозначать через rn. Это можно представить следующим образом:
R
1
r
1
R
r
0
2
2
0,1,2,...N = .
R
3
r
3
Таблица 8
R
r
...
4
...
4
При этом только конечное множество регистров со­держит числа, отличные от нуля. Все остальные регистры заполнены нулями. Это допущение предполагает, что каж­дый алгоритм использует только конечный объем памяти.
— 30 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]