- •Министерство Российской Федерации по связи и информатизации
- •Глава 1. Высказывания, формулы, тавтологии.
- •Отношения логической эквивалентности и логического следствия.
- •Задачи.
- •Глава 2. Формальные теории.
- •Глава 3. Исчисление высказываний.
- •Построение вывода в логике высказываний.
- •Задачи.
- •Глава 4. Метод резолюций в логике высказываний.
- •Задачи.
- •Глава 5. Предикаты.
- •Задачи.
- •Глава 6. Исчисление предикатов.
- •Теория равенства.
- •Формальная арифметика.
- •Теория частично упорядоченных множеств.
- •Задачи.
- •Глава 7. Алгоритмы.
- •Глава 8. Рекурсивные функции.
- •Задачи.
- •Глава 9. Машины Тьюринга.
- •Операции с машинами Тьюринга.
- •Принцип двойственности.
- •Способы композиции машин Тьюринга.
- •Задачи.
- •Ответы и указания.
Операции с машинами Тьюринга.
Очевидно, что некоторые алгоритмы могут быть составлены из нескольких более простых алгоритмов, и наоборот, могут служить основой для построения новых алгоритмов.
Точно также, удобно строить машины Тьюринга, исходя из уже построенных машин.
Принцип двойственности.
Пусть Т – произвольная программа (машина Тьюринга). Обозначим Т* программу, которая получается из Т заменой (во всех командах) R на L и наоборот. Программа Т* называется двойственной к Т.
Пример. Машина Тьюринга в произвольной записи, начиная с любой ячейки, двигаясь вправо, находит первый нуль. Соответствующая программа имеет вид:
.
Возможны три случая.
В начальный момент головка машины обозревает нуль. Машина останавливается.
В начальный момент головка машины обозревает единицу, и справа от начальной ячейки есть хотя бы один нуль. Машина переместит головку через массив единиц вправо и остановится перед первым нулем.
В начальный момент головка машины обозревает единицу, и справа от начальной ячейки запись состоит только из единиц. Машина будет перемещать головку через массив единиц вправо, не останавливаясь.
В программе заменим символ R на L. Получим программу:
.
Данная программа будет двойственной к предыдушей. Непосредственной проверкой можно убедиться, что головка машины, двигаясь влево, будет отыскивать первый нуль.
Очевидно, что (Т*)*=Т, то есть понятие двойственности является взаимным. Машины Тьюринга, соответствующие двойственным программам, будем называть двойственными машинами Тьюринга.
Из примера было видно, что двойственные машины функционируют симметричным образом. Так, пусть в начальный момент времени имеется конфигурация
,
и машина Т в момент времени t переработает ее в конфигурацию
.
В то же время, двойственная машина Т* конфигурацию
![]()
(симметричную
первой конфигурации относительно
)
в момент времениt
переработает в конфигурацию
,
симметричную
второй конфигурации относительно
.
В Содержание.
Способы композиции машин Тьюринга.
Последовательное подключение одной машины Тьюринга к другой. Пусть
и
– две машины Тьюринга над алфавитом{0,1},
множества состояний машин не пересекаются.
Перенумеруем 0,1,…,l-1
все команды
с
программы
.
Пустьp(x)
– предикат на множестве {0,1,…,l-1}.
Последовательное
подключение
к
(относительно предикатаp(x))
– это машина Тьюринга
,
которая получается следующим образом.
Первая половина таблицы для
совпадает с таблицей
для тех клеток, в которых нет команды
с
.
Если
p(n)=1,
то в клетке n
– команда
,
– номер строки (0 или 1), где находится
клеткаn,
– начальное состояние
.
Если
p(n)=0,
то в клетке n
– команда
с
.
Вторая половина таблицыТ
полностью совпадает с таблицей
.
-
…
…
…
…
0
1
В
частном случае, если
– начальное состояние машины
,
а
– начальное состояние
,
заменим в программе
состояние
на состояние
,
и полученную программу объединим с
программой
.
В результате мы получим программу для
машины
,
которая является композицией машин
и
по паре состояний (
,
).
Итерация машины Тьюринга. Пусть
– машина Тьюринга над алфавитом{0,1}.
Перенумеруем 0,1,…,l-1
все команды
с
программы
.
Пустьp(x)
– предикат на множестве {0,1,…,l-1}.
Итерация
машины Тьюринга
относительно предикатаp(x)
– это машина Тьюринга Т,
которая получается следующим образом.
Таблица Т
совпадает с таблицей
для тех клеток, в которых нет команды
не с
.
Если
p(n)=1,
то в клетке n
– команда
,a
– номер строки, где находится клетка
n,
– начальное состояние
.
Если
p(n)=0,
то в клетке n
– команда
с
.
Действительно,
имеет место итерация, т.е. многократная
работа машины
.
В
частном случае, если
– заключительное состояние машины
,
а
– любое состояние машины
,
не являющееся заключительным, то заменим
в программе
состояние
на состояние
.
В результате мы получим программу для
машиныТ,
которая является итерацией машины
по паре состояний (
,
).
Отметим, что начальных и заключительных состояний может быть несколько.
В Содержание.
