Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6gJr5byPBn.file.1.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
2.09 Mб
Скачать

3.2.3. Условные обозначения и схемные соединения машин Тьюринга

Если для машины Тьюринга, вычисляющей значение рекурсивной функции у = f (х), ввести обозначение:

х Tf y = f(x)

а для машины Тьюринга, вычисляющей два значения рекурсивной функции

y = Р (х) .  +Р (х) . ,

ввести обозначение

P (x) – предикат

 = 0

 = 1

то, соединяя последовательно и/или параллельно различные машины Тьюринга можно вычислять значения любых, но рекурсивных функций. Различные соединения машин Тьюринга чаще всего называют композицией машин Тьюринга, а общую схему соединения – блок схемой.

Примеры схемных соединений в организации вычислений рекурсивных функций приведены ниже.

3.2.4. Рекурсивные функции и вычисления на машинах Тьюринга

Оператор рекурсии. Известно, что значение рекурсивной функции может быть вычислено по схеме примитивной рекурсии:

f (x1; х2; ... хn; y+ 1) = R (g (x1; х2; ... хn); h (x1; х2; ... хn; y; f (x1; х2; ... хn ; y)))

Пусть n = 1, т. е. f (x; y+1) =R (g (x); h (x; y; f (x; y))).

Для реализации этой схемы на машине Тьюринга последняя должна вычислять значения f (x; i+1) до тех пор, пока i  у. При достижении условия i = у процесс вычисления оканчивается и результат вычисления имеет вид:

f (х; у + 1 ) = h (х; у; f (х; у)).

Задание для вычисления функции f (х; у) на машине Тьюринга имеет вид:

Tf : qí | x+1 # | y+1  qk | f (x+1; y+1) +1 .

Весь процесс вычисления следует разбить на блоки, выполняющие основные и дополнительные операции:

шаг 1: вычислить для заданного значения х значение функции

g (х):

Tg : qí | x+1 # | y+1  qk | x+1 # | y+1 # | g(x+1) +1 ,

если g является базовой функцией, то процесс ее вычисления показан в примерах 1, 2, 3;

шаг 2: ввести новую переменную i для счета символов слова (у+1):

Ti : qí | x+1 # | y+1 # | g (x+1) +1  qk | i+1 # | x+1 # | y+1 # | g (x+1) +1

установить i = 0;

шаг 3: вычислить значение функции h (х; i; f (х; i)):

Th : qí | i+1 # | x+1 # | y+1 # | g (x+1) +1

 qk | i+1 # | x+1 # | y+1 # | h (x+1); i; f (x +1; i)) +1;

для вычисления функции h использовать результаты вычисления базовых служебных функций, приведенных в примерах 1-3.

шаг 4: проверить i = у;

если i  у, то принять i = i + 1 и перейти к шагу 3, иначе (если i = у) перейти к шагу 5;

шаг 5: удалить с ленты слова | i+1 , | x+1 , | y+1:

Tk : qí | i+1 # | x+1 # | y+1 # | h (x+1; i; f (x+1; i)) +1  qk | h (x+1); i; f (x +1; i)) +1;

шаг 6: выдать результаты расчетов:

| h (x+1; i; f (x+1; i))  | f (x +1; y +1) +1

Если каждый шаг вычислительного процесса представить отдельной машиной Тьюринга, то их последовательное соединение (кроме машины, реализующей шаг 4), обеспечивает поиск значения функции f (х; у). Выход на шаге 4 должен поступить на входы машины Тh или Tk, т.е. машина, реализующая шаг 4, имеет два выхода и реализует условный переход (или предикат).

Если функции g (х) и h (х; у; f (х; у)) не базовые, но вычислимы по схеме примитивной рекурсии, то функция f (х; у), используя оператор рекурсии R (g(х); h(х; у; f(х; у))), также вычислима на машине Тьюринга.

Оператор суперпозиции. Известно, что n-местная функция f = (x1; х2; ... хn; у) может быть получена из m-местной функции h = (z1; z2; ... zm; у) и m функций (n-местных) gi = (x1; х2; ... хn; zi) с помощью оператора суперпозиций;

f = (x1; х2; ... хn; у) = Smn(hm; gin).

Если m-местная функция h = (z1; z2; ... zn; у) и m функций (n-местных) gi = (x1; х2; ... хn; zi,) вычислимы по Тьюрингу, то функция f = (x1; х2; ... хn; у) также вычислима на машине Тьюринга.

Пусть n = m = 1. Тогда

f = (x; y) =S11 h((z; y); g(x; z)).

Для того, чтобы вычислить значение у = f (х) для данного значения х, необходимо и достаточно, чтобы функция g (х) была определена для значения х, а функция h (g (х)) – по результату вычислений g (х). Таким образом, если h = (z; у) и g=(х; z) вычислимы по Тьюрингу, то их композиция h(g(х))=f(х) = у также вычислима.

Таким образом, весь процесс вычисления опирается на две машины Тьюринга:

шаг 1: вычислить для заданного значения х значение функции g (х):

Tg : qí | x+1  qk | g (x+1) +1

шаг 2: вычислить для полученного значения g (х) значение функции h (g (х)):

Th : qí | g (x+1) +1  qk | h (g (x+1)) +1

Вычисленное значение функции h есть значение искомой функции f, т.е. y = f (x) = h (g (x)).

Если каждый шаг вычислительного процесса представить отдельной машиной Тьюринга, то их последовательное соединение обеспечивает получение искомого результата. На рис. 3.2 приведена схема соединения машин Тьюринга, реализующих оператор суперпозиции.

| x+1 | x+1 # | g (x+1) +1 | x+1 # | h (x+1) +1

Tg Th

Рис. 3.2. Схема соединения машин Тьюринга для реализации оператора суперпозиции (х; у) = S ((z; у); (х; z))

Если n  1и m  1, то необходимо вычислить m функций g, каждая из которых опирается на n независимых переменных xi аргумента, а затем все эти функции использовать в качестве независимых переменных zi аргумента функции h, т.е.:

шаг 1: вычислить при заданных значений x1; х2; ... хn значения функций gi (x1; х2; ... хn) , где 1  i  m:

Tgi : qí | x1+1 # | x2+1 # ... # | xn+1

 qk | g1(x1+1; x2 +1;... xn+1)+1; #... | gm (x1+1; x2+1;... xn+1) +1;

шаг 2: вычислить для полученных значений gi (x1; х2; ... хn) значение функции h (g1; g2; ... gn):

Th : qí | g1(x1+1; x2+1;... xn+1) +1 #... | gm(x1+1; x2+1;... xn+1) +1

 qk | h(g1+1; g2 +1;... gn+1)+1.

Вычисленное значение функции h есть значение искомой функции у = f (x1; х2;... хn) = h(gi (x1; х2;... хn); g2 (x1; х2; ... хn);... gm (x1; х2;... хn)).

Схема вычислительного процесса на композиции машин Тьюринга представлена на рис. 3.3.

| x1+1 # | x2+1 # ... # | xn+1

Òq1 | g1(x1+1; ... xn+1)+1

Òq2 | g2(x1+1; ... xn+1)+1 Th | h2(g1+1;g2+1; ... gm+1)+1

. . .

Òqm | gm(x1+1; ... xn+1)+1

Рис. 3.3. Схема соединения машин Тьюринга для реализации оператора суперпозиции f(x12;...хn;у)=Smn((z1;z2;...zm;y);

(x1; х2;... хn; zi))

Оператор минимизации. Для поиска наименьшего корня функции, т. е.

 (x1; х2;... хn) = y (f (x1; х2;... хn; y) = 0)

также можно применить машины Тьюринга. Композиция машин Тьюринга, приведенных позволяет организовать последовательное приращение вспомогательного аргумента у = 0. 1. 2.... и последующее сравнение значения функции с базовой функцией Сn = 0.

В приведенных примерах показана реализуемость на машинах Тьюринга основных свойств алгоритма: дискретности, детерминированности, массовости и результативности.

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

Существует много модификаций машин Тьюринга, среди которых можно выделить универсальные и многоленточные машины.

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

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

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