
- •Вопросы к экзамену
- •Образцы экзаменационных билетов
- •1. Дедуктивный характер математики. Предмет математической логики, ее роль в вопросах обоснования математики.
- •1. Днф. Теорема о разложении функций по переменным. Алгоритм приведения к сднф.
- •Приложение 1
- •Аксиоматические теории
- •1. Понятие аксиоматической теории
- •2. Как возникают аксиоматические теории
- •3. Примеры аксиоматических теорий
- •4. Интерпретации и модели аксиоматической теории
- •5. Свойства аксиоматических теорий
- •Упражнения
- •Упражнения
- •6. Формулировка аксиоматической теории
- •Упражнения
- •Литература
- •Приложение 2
- •Вычислимость. Введение в теорию алгоритмов
- •Введение
- •1. Интуитивное понятие алгоритма
- •Упражнения
- •2. Свойства алгоритмов
- •3. Уточнение понятия алгоритма
- •Упражнение
- •Упражнения
- •Упражнение
- •4. Нумерация программ для мнр
- •5. Нумерация вычислимых функций
- •Упражнение
- •Упражнения
- •6. Универсальные программы
- •7. Алгоритмически неразрешимые проблемы
- •Упражнения
Упражнения
8.1. Докажите, что не существует алгоритма, определяющего по тексту программы, будет ли эта программа вычислять некоторую конкретную вычислимую функцию.
8.2. 2. Покажите, что
не существует всюду определенной
вычислимой функции f(x,
y), обладающей
следующим свойством: если программа
останавливается, то это происходит за
f(x,
y) или меньше
шагов.
Указание. Покажите, что если бы такая функция существовала, то проблема остановки была бы разрешима.
Естественно задаться вопросом, какие свойства вычислимых функций можно алгоритмически распознать по их программам. Оказывается, что никакие, кроме тривиальных. Доказательство этого факта содержится в теореме Райса.
Теорема
8.5 (теорема Райса). Пусть B
- непустое множество одноместных
вычислимых функций, не совпадающее со
всем множеством
одноместных вычислимых функций. Тогда
проблема «
»
неразрешима.
Доказательство.
Очевидно, что проблема «
»
разрешима тогда и только тогда, когда
разрешима проблема «
».
Поэтому без потери общности можно
считать, что нигде не определенная
функция
не принадлежит B.
Выберем некоторую
функцию
и рассмотрим функцию
По тезису Черча функция f(x, y) вычислима. Поэтому существует (по s-m-n-теореме) всюду определенная вычислимая функция s(x) такая, что . По определению функции f(x, y) имеем:
.
Таким образом, с помощью вычислимой функции s(x) мы свели проблему « » к проблеме « ». Следовательно, проблема « » неразрешима.
Дадим более содержательную формулировку теоремы Райса. Пусть Q некоторое свойство одноместных вычислимых функций. Свойство Q назовем нетривиальным, если существуют функции, обладающие свойством Q, и функции не обладающие этим свойством.
Все обычно рассматриваемые свойства являются нетривиальными. Примерами нетривиальных свойств служат следующие:
функция тождественно равна нулю;
функция нигде не определена;
функция всюду определена;
функция взаимно однозначна;
функция определена при x = 0.
Так как вычислимые функции могут быть заданы программами их вычисления, то естественно возникает вопрос: можно ли по программе узнать, обладает ли соответствующая ей функция заданным нетривиальным свойством.
Теорема 8.6. Каково бы ни было нетривиальное свойство Q одноместных вычислимых функций, задача распознавания этого свойства алгоритмически неразрешима.
Доказательство. Пусть B - множество одноместных вычислимых функций, обладающих свойством Q. Множество B не пусто и не совпадает со всем множеством одноместных вычислимых функций. По теореме Райса проблема « » неразрешима.
Из последней теоремы следует неразрешимость многих задач, связанных с программированием. Например, если имеется некоторая программа, то по ней, вообще говоря, ничего нельзя сказать о функции, реализуемой программой. По двум программам нельзя установить, реализуют ли они одну и ту же функцию, а это приводит к неразрешимости многих задач, связанных с эквивалентными преобразованиями и минимизацией программ. В любом алгоритмическом языке, какие бы правила синтаксиса там ни применялись, всегда будут иметься «бессмысленные» программы, задающие функции не определенные ни в одной из точек (эти программы нельзя обнаружить). Теорема Райса позволяет доказывать алгоритмическую неразрешимость многих задач, связанных с вычислениями на компьютерах.
Более подробно ознакомиться с формальными подходами к вычислимости можно по книгам [4, 5].