
- •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
Пример 2
Пусть машина Тьюринга T = {A, Q, }, A = {0,1}, Q = {q0,q1,q2} задана с помощью таблицы:
-
q0
q1
q2
0
q20R
q01S
1
q21R
Рассмотрим слово: M = q1011…10. На первом шаге выполняется команда q10q20R. Получаем: MT’ = 0q211…10. Затем, до тех пор, пока слово не превратится в слово 011…1q20, будет выполняться команда q21 q21R. После этого будет выполнена команда q20 q01, и машина остановится, ибо q0 соответствует состоянию остановки. Входное слово, состоящее из x единиц, означает, что аргументом вычисляемой функции является число x. Поскольку на выходе получается x + 1 подряд идущих единиц, то машина вычисляет функцию: s(x) = x + 1.
Пример 3
Вычисление функции: s(x) = x+1 в примере 2 не является правильным. Построим машину Тьюринга для правильного вычисления:
-
q0
q1
q2
q3
q4
0
q20R
q31R
q40L
q00L
1
q21R
q41L
q41L
Упражнение
Построить машину Тьюринга, правильно вычисляющую функцию: o(x) = 0.
Можно построить машины Тьюринга для правильного вычисления функций:
Imn(x1,…,xn), 1 m n.
С помощью построения различных машин Тьюринга доказывается, что операторы суперпозиции, примитивной рекурсии и минимизации переводят правильно вычислимые функции в правильно вычислимые. Отсюда вытекает правильная вычислимость всех частично рекурсивных функций. Более того, справедливо и обратное утверждение.
Теорема 1. Частичная функция правильно вычислима тогда и только тогда, когда она частично рекурсивна.
Тезис Чёрча и алгоритмически неразрешимые проблемы
Поскольку класс частично рекурсивных функций совпадает с классом правильно вычислимых, то тезис Чёрча равносилен предположению о том, что для любой алгоритмически вычислимой функции существует правильно вычисляющая её машина Тьюринга.
Применим это для доказательства алгоритмической неразрешимости проблемы остановки машины Тьюринга, которая заключается в нахождении алгоритма, определяющего по машине Тьюринга и начальным данным, остановится ли машина через конечное число шагов. Так как машина Тьюринга задается с помощью конечного набора символов и слов, то число машин Тьюринга счетно и может быть выписано в последовательность: T0, T1, … .
Теорема (о проблеме остановки). Пусть T0,T1, T2,… последовательность, перечисляющая все машины Тьюринга, h(n,k) – функция, принимающая значение 1, если машина Tn останавливается, начиная работу с машинного слова q101k0, и принимающая значения h(n,k) = 0 в других случаях. Тогда функция h: N2 N не является частично рекурсивной. Иными словами, нет алгоритма, определяющего, остановится ли машина Тьюринга, если на вход ей подать число k.
Доказательство. От противного. Пусть функция h(n,k) частично рекурсивна. Тогда частичная функция:
f(n) = My[h(n,n) + y = 0]
тоже частично рекурсивна. Существует номер m такой, что f правильно вычисляется с помощью машины Tm. Тогда f(m) = 0, если и только если h(m,m) = 0. Согласно определению функции h равенство h(m,m) = 0 имеет место тогда и только тогда, когда машина Tm не останавливается, начиная со слова q101m0. Но f правильно вычисляется с момощью Tm , значит, Tm не остановится, начиная с m, если и только если f(m) не определено. Получаем противоречие: f(m) = 0, если и только если f(m) не определено, Следовательно, h – не частично рекурсивна.