Упражнение
Построить машину Тьюринга, правильно вычисляющую функцию: 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 – не частично рекурсивна.
- 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