Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VDM-123.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Вычислимые функции

Пусть = (1,2,…n), n 1, - произвольный набор целых неотрицательных чисел. Слово называется основным машинным кодом набора в алфавите {0,1} и обозначается через K( ), т.е. K( ) = , где = (1,2,…n), n 1.

В частности, слово является основным машинным кодом числа

В дальнейшем будем рассматривать частичные числовые функции.

Определение. Функция f(x1, x2,…, xn), n 1, называется частичной числовой функцией, если переменные xi ( ) принимают значения из расширенного натурального ряда N={0,1,...} и в том случае, когда на наборе = (1,2,…n) функция f определена, f( )N.

Определение. Частичная числовая функция f называется вычислимой, если существует машина Тьюринга Mf, обладающая следующими свойствами:

    1. Если f( ) определена, то Mf (K( ))=K(f( )) (т.е. машина Mf, будучи применима к основному коду для и находясь в начальном состоянии над его левой единицей, останавливается и в заключительном состоянии на ленте выдает код для f( )).

    2. Если f( ) не определена, то либо M f(K( )) не является кодом никакого числа из N, либо Mf не применима к слову K( ) (т.е. машина Mf, будучи применима к основному коду для и находясь в начальном состоянии над его левой единицей, либо останавливается, но при этом запись на ленте отлична от кода любого числа из N, либо не останавливается).

Определение. Если функция f вычислима с помощью машины Mf, то будем говорить, что машина Mf вычисляет функцию f.

Определение. Машина Mf вычисляет функцию f(x1, x2,…, xn) правильным образом:

а) если f( ) определено, то Mf (K( ))=K(f( )), при этом останов происходит над левой единицей кода для f( );

б) если f( ) не определено, то Mf, будучи применима к K( ) и находясь в начальном состоянии над его левой единицей, не останавливается.

П ример.

    1. S(x) = x + 1;

    2. O(x1, x2,…, xn)=0, n 1; простейшие частичные

    3. ( x1, x2,…, xn) = xm, . числовые функции

Покажем, что данные функции вычислимы.

1) Вычислимость функции S(x) следует из того, что она реализуема следующей машиной:

S

0

1S

1

1L

2) Вычислимость функции O(x1, x2,…, xn)=0, n 1, следует из того, что она реализуема следующей машиной:

O

0

1S

1

0R

3) Вычислимость функции ( x1, x2,…, xn) = xm, , следует из того, что она реализуема следующей машиной:

q1

…

qm-1

qm

…

qn

0

0R

…

0R

0R

0R

…

0L

0L

0R

1

0R

…

0R

1R

0R

…

0R

1L

1L

Машина для идет направо (в начальный момент обозревается, как всегда, левая единица основного кода) и стирает все массивы основного кода для (1,2,…n), кроме m-го, затем возвращается влево и встает над левой единицей оставшегося массива.

Замечание. Машина Mf вычисляет данные функции правильным образом.

Лемма. Если f(x1, x2,…, xn) - вычислимая функция, то существует машина Тьюринга, которая вычисляет ее правильным образом.

Замечание. В дальнейшем для вычислимых функций будем использовать исключительно машины, вычисляющие их правильным образом.

Через Pвыч. обозначим класс всех вычислимых функций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]