
- •Основы теории алгоритмов и нумераций
- •Оглавление
- •Введение*
- •Глава 1. Рекурсивные и примитивно-рекурсивные функции
- •Обозначения
- •Примитивно рекурсивные функции
- •Примеры
- •Функции Аккермана
- •Примеры
- •Общерекурсивные и частично рекурсивные функции
- •Глава 2. Машины тьюринга
- •Определения
- •Табличноеиграфическоезадания машинТьюринга
- •Графическое представление
- •Табличное значение машины
- •Некоторые операции над машинами Тьюринга
- •Композиция машин Тьюринга
- •Разветвление машин Тьюринга
- •Универсальная машина Тьюринга
- •Тезис Черча. Связь рекурсивных функций с машинами Тьюринга
- •Примеры
- •Глава 3. Вычислимость и разрешимость
- •Обсуждение
- •Нумерации алгоритмов
- •Некоторые теоремы в теории алгоритмов.
- •Глава 4. Рекурсивные и рекурсивно перечислимые множества.
- •Характеристические функции множеств.
- •Рекурсивные и примитивно рекурсивные множества.
- •Рекурсивно перечислимые множества.
- •Основная теорема.
- •Примеры.
- •Глава 5. Основные нумерации в теории алгоритмов
- •Нумерация пар и-ок чисел.
- •Кодирование всех-ок.
- •Нумерация конечных множеств.
- •Нумерации Клини и Поста.
- •Нумерация семейства всех двухэлементных множеств.
- •Глава 6. Степени неразрешимости.
- •- Сводимость.
- •- Степени.
- •Теорема о редукции.
- •Примеры.
- •Глава 7. Нумерованные совокупности.
- •Нумерации множества.
- •Некоторые теоремы о нумерациях множеств
- •Глава 8. Приложения теории алгоритмов к разрешимости некоторых проблем.
- •Теорема Райса.
- •Разрешимость проблем распознавания и классификации.
- •Литература
- •Основы теории алгоритмов и нумераций.
Примеры.
1. Доказать, что любое конечное множество натуральных чисел примитивно рекурсивно.
2. Доказать, что
если множества
и
рекурсивны, то множества
также рекурсивны.
3. Доказать, что
если множества
и
рекурсивно перечислимы, то
и
также рекурсивно перечислимы.
4. Доказать, что любое рекурсивное множество рекурсивно перечислимо.
5. Доказать, что существует рекурсивно перечислимое множество, которое не является рекурсивным.
6. Доказать, что существует не рекурсивно перечислимое множество.
7. Доказать, что
если предикаты
и
рекурсивны (примитивно рекурсивны), то
следующие предикаты тоже рекурсивны
(примитивно рекурсивны):
а)
б)
в)
;
г)
д)
е)
,
если
- общерекурсивная (примитивно рекурсивная)
функция.
8. Доказать, что
частичная функция
тогда и только тогда представима в виде
для подходящей
примитивно рекурсивной функции
,
когда график функции
примитивно рекурсивен.
9. Доказать, что
если
есть частично рекурсивная функция,
универсальная для класса всех одноместных
примитивно рекурсивных функций, то
множество
не является рекурсивно перечислимым.
10. Пусть
,
- рекурсивно перечислимые множества.
Доказать, что существуют рекурсивно
перечислимые множества
,
такие, что
,
.
11. Показать, что график общерекурсивной функции рекурсивен.
12. Доказать, что полный прообраз рекурсивного множества относительно общерекурсивной функции рекурсивен.
Глава 5. Основные нумерации в теории алгоритмов
Для того, чтобы
понятия рекурсивности и рекурсивной
перечислимости перенести из области
натуральных чисел в область более
сложных объектов -
-ок
чисел, мы предварительно занумеруем
все
-ки
натуральными числами. В данной главе
метод нумерации будет рассмотрен в
общем виде. Он позволяет глубже вскрыть
природу алгоритмических процессов и
прямым путем приводит к решению многих
интересных проблем.
Впервые метод нумерации для решения фундаментальных вопросов математической логики был применен К. Гёделeм, вследствие чего многие важные нумерации обычно называют нумерациями Гёделя. Целесообразно, однако, ввести особые названия для некоторых из этих нумераций, что и будет сделано ниже.
Нумерация пар и-ок чисел.
Все пары натуральных чисел можно расположить в простую последовательность и притом многими способами. Для определенности рассмотрим следующее расположение этих пар, которое мы будем называть канторовским:
(1)
В этой последовательности
пары идут в порядке возрастания суммы
их членов, а из пар с одинаковой суммой
членов ранее идет пара с меньшим первым
членом. Обозначим через
номер пары
в последовательности (1), причем нумерацию
начнем с нуля. Таким образом,
Число
будем называть (канторовским)
номером пары
.
Через
и
обозначим левый и соответственно правый
члены пары с номером
.
Например,
.
Мы хотим теперь выразить функции
через обычные арифметические функции.
Начнем с функции
.
Пара
находится в отрезке
на
-м
месте после пары
.
Перед парой
в последовательности (1) находятся
отрезков, содержащих
,
,
всего
пар. Поэтому
=
(2)
Обратно, пусть ,
и, следовательно,
Из формулы (2) имеем
=
Отсюда вытекает, что
или
<
Таким образом,
=
(3)
Сравнивая с формулой (2), получаем
∸
(4)
Из (3) и (4) получаем
аналогичное выражение для
.
Отметим, наконец, что из самого определения
функций
,
как функций, связанных с нумерацией
пар, вытекают следующие тождества:
,
,
(5)
Для любого
кодирование
,
отображающее
на
,
определяется посредством
следующим образом:
В частности,
.