Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раб. прогр. дисц. Мат_логика (спец. ПМИ) 20.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.04 Mб
Скачать

Упражнение

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

Для удобства обозначим через P(a1, a2, ..., an) вычисление по алгоритму P с начальной конфигурацией a1, a2, ..., an, 0, 0, .... Если вычислительный процесс заканчивается с результатом b, будем писать P(a1, a2, ..., an) = b.

Определение 3.1. Пусть f - функция от n неотрицательных целых переменных со значениями во множестве Z0 неотрицательных целых чисел (функция ). Функция f называется вычислимой на МНР (или МНР–вычислимой), если существует такой алгоритм P, что

1) вычисление P(a1, a2, ..., an) останавливается тогда и только тогда, когда (a1, a2, ..., an) принадлежит области определения f;

2) если (a1, a2, ..., an) принадлежит области определения f; то в заключительной конфигурации в регистре R1 находится целое число b такое, что f(a1, a2, ..., an) = b.

С этого момента под термином вычислимое будем подразумевать МНР–вычислимое.

Рассмотрим теперь несколько простых примеров вычислимых функций.

Пример 3.2. Докажите МНР-вычислимость функции + y.

Решение. Получим x + y, прибавляя y раз 1 к числу x. Начальной конфигурацией алгоритма служит x, y, 0, 0, 0, .... Типичной конфигурацией в процессе вычисления является

R1

R2

R3

R4

R5

...

x + k

y

k

0

0

...

Определим алгоритм следующим образом:

I1

J(3, 2, 5)

I2

S(1)

I3

S(3)

I4

J(1, 1, 1)

Заданный алгоритм вычисляет функцию + y.

Пример 3.3. Докажите МНР-вычислимость функции

Решение. Составим алгоритм для начальной конфигурации x, 0, 0, .... Типичной конфигурацией в процессе вычисления является:

R1

R2

R3

R4

R5

...

x

k

k + 1

0

0

...

Следующий алгоритм МНР-вычисляет функцию.

I1

J(1, 2, 6)

I2

S(2)

I3

J(1, 2, 6)

I4

S(3)

I5

J(1, 1, 2)

I6

T(3, 1)

Упражнения

3.2. Составьте алгоритмы, вычисляющие функции:

а)

б)

в)

г)

д)*

е)*

Здесь [x / y] означает наименьшее целое число, не превосходящее действительное число x / y.

3.3. Покажите, что для каждой команды переадресации существует программа без команд переадресации, которая на всякой конфигурации МНР дает тот же результат, что и T(m, n). Это означает, что команды переадресации на самом деле избыточны в нашем определении МНР. Тем не менее, представляется естественным и удобным иметь такие команды, облегчающие построение алгоритмов.

Введем еще несколько понятий необходимых для дальнейшего изложения.

Определение 3.2. n–местным предикатом на множестве M называется отображение H, сопоставляющее каждому упорядоченному набору (a1, a2, ..., an) элементов из M одно из логических значений «истинно» или «ложно».

Пример 3.4. Функции «быть простым числом», «быть четным числом» являются одноместными предикатами на множестве целых чисел.

Пример 3.5. Свойства «иметь одинаковые остатки при делении на 3» или «быть равными» являются бинарными предикатами на множестве целых чисел.

Определение 3.3. Предикат называется разрешимым, если его характеристическая функция

вычислима.

В контексте вычислимости предикаты часто называют проблемами. Поэтому ниже мы наряду с термином «разрешимый предикат» будем использовать также «разрешимая проблема».