Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lec15

.pdf
Скачиваний:
10
Добавлен:
23.06.2023
Размер:
995.45 Кб
Скачать

На ленте натуральное х будет записываться массивом из х единиц. Числа на ленте будем разделять символом «*», если пустой символ, то это ноль.

Рассмотрим произвольную функцию y=f(x1, x2, … xi, … xn), где xi,y {0} (принимает целое неотрицательное значение).

Функция f(x1, x2, … xi, … xn) называется вычислимой по Тьюрингу, если существует машина Тьюринга, работающая следующим образом: для любой совокупности чисел x1, x2, … xi, … xn, для которых функция f определена, машина Тьюринга, начав работу из начальной конфигурации

q01x1 1x2 1xn,

заканчивает работу конфигурацией

qz1y,

где y=f(x1, x2, … xi, … xn), 1k – запись числа k в виде k единиц на ленте. Если f на совокупности x1, x2, … xi, … xn не определена, то машина Тьюринга работает бесконечно.

11

Пример 15.1. МТ, вычисляющая y=x+1.

Требуется построить МТ, которая прибавляет единицу к числу на ленте. а) классическая запись чисел, б) x – целое десятичное число: состоит из

цифр, записанных в последовательные ячейки на ленте.

1

 

Решение а): q1 – состояние изменения цифры.

q1 1qzS

1q1R

Решение б): МТ прибавляет 1 к последней цифре числа. Если последняя цифра равна 9, то ее заменить на 0 и прибавить 1 к предыдущей цифре.

 

0

1

2

3

4

5

6

7

8

9

 

 

 

 

 

q0

q1L

0q0R

1q0R

2q0R 3q0R 4q0R 5q0R 6q0R 7q0R 8q0R 9q0R

q1

1qzS

1qzS

2qzS

3qzS 4qzS 5qzS 6qzS 7qzS 8qzS 9qzS 0q1L

q1 – состояние изменения цифры, q0 – ход к последней цифре. Если в состоянии q1 автомат видит цифру 0..8, то заменяет ее на 1..9, соответственно, и переходит в состояние qz. Если же он видит цифру 9, то заменяет ее на 0, сдвигается влево, оставаясь в состоянии q1. Так продолжается до тех пор, пока автомат не встретит цифру меньше 9. Если же все цифры были равны 9, то он заменит их нулями, запишет 0 на месте старшей цифры, сдвинется влево и в пустой клетке запишет 1. Затем

перейдет в состояние qz, т.е. остановится.

12

Вычислимость суперпозиции.

Пусть заданы две функции: y=f(x) и z=g(y), причем z определена на области значений функции f, тогда функция z=g(f(x)) называется

суперпозицией функций f и g или композицией.

Теорема 15.1. Если функции f и g вычислимы по Тьюрингу, то их суперпозиция тоже вычислима по Тьюрингу.

Машину Т=Тf•Тg называют композицией исходных машин Тьюринга.

Доказательство:

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

Пример 15.2. Композиция МТ f и g.

 

 

 

 

 

1

 

Для примера 15.1 а). f(x)=x+1, g(x)=g() –

 

 

 

 

 

 

q1

1q2S

1q1R

 

окончание работы в правильной конфигурации.

 

q2

1qzS

1q1L

 

q2 – ход к первой цифре числа.

13

 

 

 

Вычислимость условного перехода (разветвления).

Пусть x1, x2, … xn символы переменных произвольной природы. n-местным предикатом P(x1, x2, … xn) называется высказывание об этих переменных, которое для каждого набора значений переменных либо не определено, либо истинно, либо ложно.

Областью определения предиката Р(x1, x2, … xn) называется совокупность всех наборов x1, x2, … xn, для которых предикат Р (x1, x2, … xn) либо .И., либо .Л.

Областью истинности предиката называется:

{(x1,…,xn) / P(x1,…,xn) = «И»}.

Областью ложности предиката называется:

{(x1,…,xn) / P(x1,…,xn) = «Л»}.

!!! Определения в ТА аналогичны определениям в исчислении предикатов (лекция 11).

14

Характеристическая функция предиката.

Характеристической функцией предиката Р называется функция:

1, если Р (x1, x2, … xn) = .И.

χp(x1, x2, … xn) =

, x

, … x

) = .Л.

0, если Р (x

1

2

n

 

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

.И.x1*x2*…*xn,

то есть перед первым аргументом стоит символ .И., если Р(x1, x2, … xn) = .И.

15

Теорема 15.2. Если функция f1(x1,…,xn),f2(x1,…,xn) и предикат P(x1,…,xn) вычисляется по Тьюрингу, то и функция

f1(x1,…,xn) если Р (х1,

….,хn) = .И.

f(x1,…,xn) = f

(x ,…,x ) если Р (х

1,

х

) = .Л.

2

1

n

…., n

 

также вычислима по Тьюрингу.

Вычисление функции f(x1,…,xn) приводит к разветвлению вычисления.

Доказательство: докажем, что существует МТ вычисляющая разветвление.

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

предикат. Те команды где есть конечное состояние .И.qzph заменяем на □q01R (то есть машина переходит к программе для вычисления f1, а команды

.Л.qzph заменяем на □q02R (то есть машина стирает значение «ложь», записывает пустой символ и переходит к программе для вычисления f2.

16

Свойства машины Тьюринга как алгоритма.

Дискретность: МТ может перейти к (k+1)-му шагу только после выполнения k-го шага, т.к. именно шаг k определяет, каким будет (k+1)-й шаг.

Элементарность: На каждом шаге в ячейку пишется символ aʹ из алфавита A, выполняется одно действие h {R,L,S}, и МТ переходит в дискретное состояние.

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

Результативность: Содержательно результаты каждого шага и всей последовательности шагов определены однозначно, следовательно, правильно написанная МТ за конечное число шагов перейдет в состояние qz, т.е. за конечное число шагов будет получено решение задачи.

Массовость: Каждая машина Тьюринга определена над всеми

 

допустимыми словами из алфавита.

17

 

Часть 3.

Геделевская нумерация.

Это прием позволяющий любой алгоритм превратить в численный алгоритм, работающий с натуральными числами:

объекты любой природы можно закодировать натуральными числами.

Пусть существует некоторый алфавит А. Рассмотрим все слова языка А*=множество всех слов в алфавите А. Мы хотим все слова α А* перенумеровать так чтобы соответствие между словом α и его номером

N(α) было взаимно-однозначным. Если α = a

a

… a , то номер слова это

1

2

 

N α = 2 1 · 3 2· · p ,

где ps – простые числа.

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

19

Вторичная нумерация: есть последовательность слов Π=α1α2…αk, тогда этой фразе взаимно-однозначно можно составить одно натуральное число:

N П = 2N(α1) · 3N(α2) · · pN(αk k),

где pk – простые числа.

С помощью третичной нумерации можно занумеровать любой текст.

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

По Гёделевскому номеру однозначно восстанавливается закодированный объект: всякое натуральное число однозначно разложимо в произведение степеней простых чисел.

20