Лабораторная работа № 5. МАШИНА ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ Машина Тьюринга

advertisement
Лабораторная работа № 5.
МАШИНА ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ
Машина Тьюринга
Машина Тьюринга – абстрактное устройство, состоящее из бесконечной в обе стороны
ленты, считывающей и печатающей головки, способной перемещаться вправо и влево,
и управляющего устройства. Лента разбита на ячейки. В ячейках могут быть записаны
символы некоторого конечного алфавита
Команда расшифровывается так: если машина находится в состоянии
q и
считанный с ленты символ
a, то машина переходит в состояние q’, печатает в
текущей клетке символ a’ и затем выполняет одно из трех действий D. Изначально
машина находится в состоянии q1. Если машина пришла в состояние q0, то она
останавливается. Машина называется применимой к некоторой записи на ленте, если
при работе над этой записью после конечного числа шагов она останавливается. Если
она никогда не остановится, то машина называется неприменимой к этой записи.
Машину Тьюринга удобно применять при вычислении функций вида
Число n будем записывать с помощью последовательности из n +1 единицы, а набор (n1,
n2,… nk) в виде
Пример 1. Найти результат применения машины Тьюринга к записям на ленте:
Решение.
В
последнем
случае
машина
никогда
не
остановится,
и
будет
работать
вечно.
Таким
образом,
она
неприменима
ко
второй записи на
ленте.
Пример 2. Построить машину Тьюринга, правильно вычисляющую функцию f
(x, y) = x +y .
Решение.
В начальном состоянии на ленте имеем:
После работы машины Тьюринга на ленте должно быть:
Программа такой машины, например, такая:
Машина, построенная таким образом, вначале, двигаясь вправо, заменяет
нуль, разделяющий массивы единиц, единицей; затем, пройдя массив единиц,
начинает движение влево, заменяя две последние единицы нулями.
Пример 3. Найти функцию, получаемую из g(x)= x, h(x, y,z)= zy + z с помощью
операции примитивной рекурсии.
Решение.
Задание 1. Найти результат применения машины Тьюринга к записи
на ленте.
1) q11→q11R
q10→q21L
q21→q21L
q20→q00R.
K:01111 10
q1
2) q11→q11R
q10→q21L
q21→q21L
q1
q20→q00R.
6) q11→q11R
K:01101 0
q1
q10→q20R
q21→q31R
3) q11→q11R
q20→q20R
q10→q21L
q31→q31 R
q21→q21L
q30→q00.
q20→q00R.
K:1 1001101
K:0 1 0000110
q1
q1
7) q11→q11R
4) q11→q11R
q10→q20R
q10→q21L
q21→q31R
q21→q21L
q20→q20R
q20→q00R.
q31→q31 R
K:01 11010
q30→q00.
q1
K:1 00001
q1
5) q11→q11R
q10→q20R
8) q11→q11R
q21→q31R
q10→q20R
q20→q20R
q21→q31R
q31→q31R
q20→q20R
q30→q00.
q31→q31 R
K:1 11001
q30→q00.
K:1 10011
q30→q00.
q1
K:110101
q1
9) q11→q21R
q10→q10R
12)
q21→q10R
q11→q21R
q10→q10R
q20→q30L
q21→q10R
q31→q21L
q20→q30L
q30→q00.
q31→q21L
K:1 11101
q30→q00.
q1
K:110011
q1
10)
q11→q21R
q10→q10R
13)
q21→q10R
q10→q20R
q20→q30L
q21→q21R
q31→q21L
q20→q01.
q30→q00.
K:01110
q11→q01
q1
K:1 1111
q1
14)
11)
q11→q21R
q10→q20R
q10→q10R
q21→q21R
q21→q10R
q20→q01.
q20→q30L
K:011010
q31→q21L
q1
q11→q01
15)
q11→q01
18)
q11→q11R
q10→q20R
q10→q20L
q21→q21R
q21→q21L
q20→q01.
q20→q00.
K:0111110
K:110101
q1
q1
16)
q11→q01
19)
q11→q11R
q10→q20R
q10→q20L
q21→q21R
q21→q21L
q20→q01.
q20→q00.
K:0110110
K:111101
q1
q1
17)
q11→q11R
20)
q11→q11R
q10→q20L
q10→q20L
q21→q21L
q21→q21L
q20→q00.
q20→q00.
K:110011
K:11111
q1
q1
2. Построить машину Тьюринга, правильно вычисляющую функцию.
2
4x
(x) = 2x-1
f ( x, y )  x  2 y
f ( x, y )  x  y , x  y
x3
(x) =
2
f ( x)  2 x
f ( x, y )  2 x  1
f ( x, y )  3 x  2
f ( x, y )  x  y
1. (x) =
2.
3.
4.
5.
6.
7.
8.
9.
x2
3
x
  3
f ( x)  
 2 
1, x  чётное
f ( x)  
0, x  нечётное
 x  2
f ( x)  
 3 
3
f ( x)   
x
f ( x, y )  x  1
10. f ( x) 
11.
12.
13.
14.
15.
 2 
16. f ( x)  
 x  3 
17. f ( x, y )  2 x  y
3
18. f ( x) 
5 x
19.
f ( x)  2
20. f ( x)  2
1 x
x y
3.Найти функцию (x,y), получаемые из g ( x), h( x, y, z ) с помощью операции
примитивной рекурсии.
ОПРЕДЕЛЕНИЕ. Говорят, что (n+1)- местная функция φ получена из n-местной функции
f и (n+2)-местной функции g с помощью оператора примитивной рекурсии, если для
любых х1,…,хn, усправедливы равенства:
φ (x1,…,xn)
φ(x1…xn, y+1)= g(x1…xn,y))
Здесь важно отметить то, что независимо от числа аргументов в φ , рекурсия ведется
только по одной переменной У ; остальные n переменных х1,…,хn, на момент применения
схемы примитивной рекурсии зафиксированы и играют роль параметров. Кроме того ,
схема примитивной рекурсии выражает каждое значение определяемой функции φ не
только через данные функции f и g , но и через так называемые предыдущие значения
определяемой функции φ прежде чем получить значение φ(х1,…,хn, k),придется
проделать k+1 вычисление по указанной схеме- для У=0,1,…,k.
1. g ( x)  x, h( x, y, z )  x  2 z
2. g ( x)  x, h( x, y, z )  zy  z
3. g ( x)  x, h( x, y, z )  x  y  z
4. g ( x)  2, h( x, y, z )  z
5.
6.
7.
8.
9.
y 1
g ( x)  2 x, h( x, y, z )  xy  2 z
g ( x)  x  1, h( x, y, z )  x  2 yz
g ( x)  3, h( x, y, z )  2 xy  z
g ( x)  x  2, h( x, y, z )  x  xy  2 z
g ( x)  1, h( x, y, z )  xyz  z
10. g ( x)  3x, h( x, y, z )  x  z
y
Download