Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математическая логика и теория алгоритмов. Учебное пособие для студентов механико-математического факультета и факультета компьютерных наук и информац.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
713 Кб
Скачать

Раздел 2. АЛГОРИТМЫ

Г л а в а 1

АЛГОРИТМЫ И ВЫЧИСЛИМЫЕ ФУНКЦИИ

А л г о р и т м есть точное предписание, согласно которому по любому входному объекту из данного класса входных объектов можно эффективно получать выходные объекты. Например, алгоритм деления целых (вещественных) чисел «углом» или алгоритм умножения двух квадратных матриц порядка n. Ограничимся дискретными предписаниями, входные и выходные данные которых представляют собой конструктивные объекты. Конструктивные объекты можно кодировать словами в некотором алфавите, отсюда свойство массовости алгоритма. Получив входное слово, алгоритм через конечное число элементарных шагов должен построить выходное слово и закончить работу, или на данном входном слове предписание ведет к бесконечной последовательности элементарных шагов, тогда алгоритм не определен на этом слове. Алгоритм должен обладать свойством детерминированности, т. е. каждый элементарный шаг определяется предыдущей ситуацией. Наконец, выполнение вычислений определяется только предписанием (программой) и не зависит от внешних факторов. Точное (математическое) понятие алгоритма было дано А. Тьюрингом в 1936 году, которое получило название машины Тьюринга. А. Тьюринг привел ряд доводов в пользу того, что любые вычислительные процедуры могут быть реализованы на его машине: ТЕЗИС ЧЕРЧА – ТЬЮРИНГА.

1.1.Машина Тьюринга

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

Вкаждый момент количество информации конечно и не имеет верхней грани. На ленте записывается входное слово, черновая работа и выходное слово. Это – слова над внешним алфавитом A. У нас алфавит A = {0,1}

предназначен для вычисления арифметических функций f : Nk → N. Собственно машина, которая осуществляет вычисление, имеет конеч-

ное число возможных «состояний» – внутренний алфавит Q = {q0, q1, …, qs}, и представляет собой конечный список правил вида: qia → bδqj, где

53

i = 1, …, s, j = 0, …, s; δ {R,L,S}; a,b A; qi,qj Q. В каждой ячейке рабочей части ленты записан один из символов внешнего алфавита. В

каждый момент времени t = 0, 1, … считывается содержимое одной ячейки и, согласно команде qia → bδqj,, символ a заменяется символом b, и происходит сдвиг на следующую ячейку, соответственно, вправо (R), влево (L), на месте (S), после чего управление передается команде qjc → ..., где c – символ ячейки, куда сдвинулась головка. Состояние q0 означает прекращение работы машины. Машина Тьюринга вычисляет частичную арифметическую функцию f (k)(x1, …, xk), если машина Тьюринга всякий набор (a1, …, ak) Arg f перерабатывает в число b = f (k)(a1, …, ak). Функция называется вычислимой на машине Тьюринга, если существует вычисляющая ее машина.

Для удобства вычислений договоримся о следующем: 0 будет изображаться «|», 1, соответственно, – «||» и т. д.; вычисления начинать с левого конца слова, записанного на ленте машины, и заканчивать в начале заключительного слова, стерев предварительно черновую работу; кортежи изображать наборами «|» с пробелами из 0. Для удобства «|» будем изображать 1.

Примеры вычислений на машине Тьюринга

1. x + y:

2. rm (x,3):

q11 1Rq1

q11 0Rq2

q10 1Lq2

q21 0Rq3

q21 1Lq2

q31 0Rq4

q20 0Rq3

q41 0Rq2

q31 0Rq4

q20 1Sq0

q41 0Rq0

q30 1Lq2

 

q40 1Lq3

3. χx<y(x,y): q11 1Rq1

q10 0Lq2 q21 0Lq3

q31 1Rq4 q400Rq4 q41 0Rq5

*q51 1Lq6

q60 0Lq6 q61 1Sq2 q30 0Sq7 q70 0Rq7 q71 0Rq8

 

 

q81 1Sq9

 

 

 

q

 

0

 

0Sq12

 

 

 

 

 

 

 

8

 

 

8q5

 

0

 

0Lq

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

>

 

12

 

 

 

12

q

 

 

 

Lq

 

 

<

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

<

 

 

 

 

 

 

 

 

 

 

80

 

1 11

(x < y)

 

q9

1 0Rq9 (x

 

y)

>

 

 

 

 

 

 

 

Sq

 

(x = y)

 

 

>q

12

1

 

 

1

13

 

 

 

 

 

>

 

 

 

>

 

 

(q 0 1Sq

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

>

 

 

 

 

>

 

 

 

1 0Lq13

 

 

 

 

 

>q90 1Sq0

 

 

>q13

 

11

 

0

 

>

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

:

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

:

 

 

 

0

 

 

0Sq8

 

 

 

 

 

 

 

 

 

 

 

>q13

 

 

 

 

 

 

 

 

54

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