Пример 1
Алфавит состоит из цифр 0,1,…,9. На ленте написано слово:
-
…
2
0
9
3
1
…
и головка показывает на 9. Тогда в следующий такт времени головка может записать вместо 9 цифру 8 и переместиться влево. После этого она будет показывать на 0.
Перейдем к точным определениям.
Машиной Тьюринга T = (A,Q,) называется тройка, состояний из непустых конечных множеств A = {a0,a1,…,an}, Q = {q0,q1,…,qm} и частичной функции : Q A Q A {L,S,R}.
Здесь {L,S,R} – множество, состоящее из трех элементов. Оно одинаково для всех машин Тьюринга и интерпретируется командами перемещения головки: L – влево, R – вправо, S – стоять на месте.
Множество А называется внешним алфавитом, его элементы – буквами. Буквы a0 и a1 для всех машин Тьюринга одинаковы: a0 = 0, a1 = 1. Элементы q0,…,qm называются внутренними состояниями.
Частичная функция называется программой и записывается или с помощью прямоугольной таблицы, в которой в клетке (qi,qj) записывается тройка (qi,qj) Q A {L, S, R}, или с помощью списка команд вида:
-
qiaj qkae означающей (qk,ae,S) = (qi,aj),
-
qiaj qkaeR означающей (qk,ae,R) = (qi,aj),
-
qiaj qkaeL означающей (qk,ae,L) = (qi,aj).
Эти команды обозначим через T(i,j).
Машиным словом, или конфигурацией, называется слово вида: qkae, где 0 k m, 0 e n, и – слова (возможно, пустые), составленные из букв алфавита А. Для обозначения слова аа…а, в котором буква а повторяется x раз, пишем: ах.
Машинное слово: qkae интерпретируется как положение, при котором головка указывает на символ ae, машина находится во внутреннем состоянии qk, слева от текущей ячейки находятся символы, составляющие слово , а справа – слово . В примере 1 машинное слово равно: 20qi931 для некоторого i.
Пусть задана машина Тьюринга Т и машинное слово M = qiaj, где 0 i m. Обозначим через MT’ слово, которое получается (за один такт) по правилам:
1) для i = 0 положим MT’ = M;
2) для i > 0 выполняем одно из следующих трех преобразований:
-
если T(i,j) = qiaj qkae, то MT’ = qkae;
-
в случае T(i,j) = qiaj qkaeR,
если не пусто, то MT’ = qeak, иначе MT ’= qeaka0;
-
в случае T(i,j) = qiaj qkaeL,
если = 1as для некоторых 1 и as, то MT’ = 1qkasae,
иначе (т.е. если пусто) MT’= qka0ae (дополнительная инструкция).
Положим: MT0 = M, MT(n+1) = (MT(n))’.
Будем говорить, что машина Т перерабатывает машинное слово М в слово М1, если MT(n) = M1 для некоторого n 0. Пишем: М T M1, если Т перерабатывает М в М1, и при этом не используется дополнительная инструкция (из правил образования слова MT’).
Говорим, что машина Т вычисляет частичную функцию f: Nn N, если выполнены следующие условия:
-
если (x1,…,xn) Dom(f), то машина Т останавливается, т.е. перерабатывает слово q101x10…1xn0 в некоторое слово q0, и при этом q0 содержит f(x1,…,xn) вхождений символа 1 (здесь символы x1, … , xn обозначены через x1, ..., xn) ;
-
если (x1,…,xn) не принадлежит Dom(f), то машина, начиная со слова M = q101x10…1xn0, работает бесконечно, т.е. q0 не входит в MT(n) ни для каких n 0.
Говорим, что машина Т правильно вычисляет частичную функцию f: Nn N, если выполнены условия:
-
если (x1,…,xn) Dom(f), то q101x10…1xn0 Tq001f(x1,…,xn)0…0;
-
в противном случае машина, начиная со слова q101x10…1xn0, работает бесконечно.
Частичная функция f называется (правильно) вычислимой, если существует машина Тьюринга, которая (правильно) вычисляет f.
- 6. Модальная и темпоральная логикИ
- 6.1. Синтаксис модальной логики
- Дополнительные логические связки
- Приоритеты операций
- Смысловые значения модальностей
- 6.2. Семантика модальной логики
- Модели Крипке
- Упражнение 1
- Упражнение 2
- Семантика темпоральной логики
- Упражнение 3
- Тавтологии
- Упражнение 4
- Условные тавтологии
- Упражнение 5
- 6.3. Алгоритмическая логика Хоара
- Пропозициональная динамическая логика
- Семантика пропозициональной динамической логики
- Аксиомы pdl
- Правила вывода
- Логика Хоара
- Корректность и полнота систем Гильберта
- Свойства шкал Крипке
- Алгоритм Салквиста
- Пример 2
- Пример 3
- Пример 6
- 6.5. Темпоральная логика
- Система Гильберта для темпоральной логики
- Линейные потоки времени
- Стандартный перевод
- Завтра и вчера
- Выбор операторов
- 7. Алгоритмы и рекурсивные функции
- 7.1. Частично рекурсивные функции
- Простейшие функции
- Пример 1
- Оператор примитивной рекурсии
- Пример 2
- Пример 4
- Пример 5
- Пример 6
- Оператор минимизации
- Пример 7
- 7.2. Машины Тьюринга
- Пример 1
- Пример 2
- Пример 3
- Упражнение
- 7.3. Вычислительная сложность
- Труднорешаемые и np-полные задачи
- 6. Модальная и темпоральная логикИ 49
- 7. Алгоритмы и рекурсивные функции 65