Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Нумерация программ для МНР



Определение 4.1. Множество X называют счетным, если можно установить взаимно однозначное отображение между множеством неотрицательных целых чисел Z0 и множеством X.

Определение 4.2. Множество называют не более чем счетным, если оно счетно или конечно.

Определение 4.3. Перечислением или нумерацией множества X называется отображение множества Z0 на множество X.

Перечисление f определяет на множестве X некоторую бесконечную последовательность элементов из X такую, что каждый из элементов множества X встречается в этой последовательности, по крайней мере, один раз.

Если отображение f - взаимно однозначно, то f называют перечислением или нумерацией без повторений.

Определение 4.4. Множество X называется эффективно счетным, если существует функция , устанавливающая взаимно однозначное соответствие между множествами Z0 и X такая, что f и f--1 - вычислимые функции.

Теорема 4.1. Следующие множества являются эффективно счетными:

а) ;

б) ;

в) - множество всех конечных последовательностей целых неотрицательных чисел.

Доказательство. а) Докажем сначала эффективную счетность множества , состоящего из упорядоченных пар (x, y) с целочисленными неотрицательными компонентами x и y. Геометрически это множество представляет целочисленную решетку (рис. 4.1).

Рис. 4.1. Целочисленная решетка

Перенумеровать точки этой решетки можно различными способами, например, так, как показано на рисунке 4.2.

Рис. 4.2. Нумерация точек целочисленной решетки

Предложенная нумерация устанавливает взаимно однозначное отображение между множествами и . Алгоритмический характер процесса вычисления значений функции очевиден. Следовательно, по тезису Черча - вычислимая функция.

Для вычисления значений обратной функции можно, например, в соответствии с предложенным алгоритмом последовательно нумеровать точки целочисленной решетки до номера z. Пара (x, y) координат точки с номером z является значением обратной функции . По тезису Черча - вычислимая функция.

Таким образом, множество эффективно счетно.

б) Теперь несложно доказать эффективную счетность множества . Для этого определим взаимно однозначное отображение множества упорядоченных троек неотрицательных целых чисел на множество следующим образом . Из вычислимости функций и вытекает вычислимость функций и . Поэтому множество эффективно счетно.

в) Для доказательства эффективной счетности множества всех конечных последовательностей целых неотрицательных чисел рассмотрим функцию

,

сопоставляющую каждому упорядоченному набору (a1, a2,..., ak) из k неотрицательных целых чисел некоторое неотрицательное целое число.

Для доказательства взаимной однозначности функции используем тот факт, что у каждого целого числа имеется ровно одно представление в двоичной системе счисления. Запишем значение функции в двоичной системе счисления:

(*)

Например,

=
= 616 – 1 = 615;

= 2320 –1 =
= 2319;

= 544 –1 = 543;

= 520 – 1 = 519;

= 3 – 1 = 2;

= 32 – 1 = 31;

= 1 – 1 = 0.

Однозначность отображения следует из того, что

.

Так как, кроме того, для любого неотрицательного числа x существует, очевидно, кортеж (c1, c2,..., cn) такой, что , то функция устанавливает взаимно однозначное соответствие между множеством и множеством .

Покажем, как вычисляются значения обратной функции для произвольного неотрицательного числа x.

В соответствии с формулой (*)

,

где - запись числа x + 1 в двоичной системе счисления.

Например,

;

;

;

;

;

;

;

.

В силу тезиса Черча функции и вычислимы. Следовательно, - эффективно вычислимое множество.

Теорема 4.2. Множество K команд МНР эффективно счетно.

Доказательство. Множество K команд МНР включает четыре типа команд Z(n), S(n), T(m, n), J(m, n, q), где . Определим взаимно однозначное отображение следующим образом:

b (Z (n)) = 4 ´ (n - 1);

b (S (n)) = 4 ´ (n - 1) + 1;

;

,

где - отображения, определенные в теореме 4.1.

Так как функции , очевидно, вычислимы, то отсюда вытекает эффективная счетность множества K команд МНР.

Теорема 4.3.Множество P всех программ для МНР эффективно счетно.

Доказательство. Пусть - произвольная программа для МНР. Определим взаимно однозначное отображение следующим образом:

.

где - отображения, определенные в теореме 4.1. Так как функции , очевидно, вычислимы, то отсюда вытекает эффективная счетность множества P всех программ для МНР.

Разумеется, существует много других отображений из P в , устанавливающих эффективную счетность множества P. Для нашего изложения подходит любое из таких отображений. Зафиксируем одно из них, например, то которое описано в теореме 4.3.

Определение 4.5. Число g(P) называется геделевым номером программы P или просто номером программы P.

Отображение g играет важную роль в теории алгоритмов. Название числа g(P) связано с именем К. Геделя, впервые в 1931 году предложившего идею кодирования нечисловых объектов натуральными числами.

Ниже программу P с геделевым номером n будем обозначать . Из взаимной однозначности отображения g следует при , хотя обе эти программы и могут вычислять одну и ту же функцию.

Пример 4.1. Найдем геделев номер программы P:

,

,

вычисляющей функцию f (x) = x + 2.

.

b (S (1)) = 4 ´ (1 - 1) + 1 = 1;

.

Пример 4.2. Вычислим программу по ее геделеву номеру m.

1) m = 0.

; .

Следовательно,

: 1. Z (1).

2) m = 1.

; .

Следовательно,

: 1. S (1).

3) m = 2.

; .

Следовательно,

: 1. Z (1),

2. Z (1).

4) m = 3.

; .

Следовательно,

: 1. T (1, 1).

Заметим, что различные программы и вычисляют одну и ту же функцию f (x) = 0.





Дата публикования: 2015-03-26; Прочитано: 1604 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.015 с)...