Файл: Алферова З.В. Теория алгоритмов учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.06.2024

Просмотров: 111

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2..Имея машины Тьюринга, вычисляющие функции f, fu

fg,

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

 

3. Имея машины Тьюринга, вычисляющие

какие-то

функции

g и /г, построить машину, вычисляющую

функцию, возникающую

из g и h примитивной рекурсией.

 

 

 

 

4. Построить машину Тьюринга, осуществляющую

обращение

функции.

 

 

 

 

 

Первая из этих задач нами уже решена, остальные предлагает­

ся решить читателю.

 

 

 

 

 

Упражнения:

 

алфавитом А =

 

 

1. Машина Тьюринга задана внешним

{0, 1,

* }

внутренним алфавитом

Q = {qo, Яь Цг, Яг), где 0 —пустой символ,

a q3 — заключительное

состояние. Программа

машины

Тьюринга

задана в виде следующей таблицы соответствия:

_

 

 

\ А

1

0

*

 

Q

\

 

 

 

до

£/2

<7оЛ

 

 

 

 

С/2

 

 

 

%

 

Останов

 

 

 

 

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

V<7o

 

 

 

 

 

 

 

 

1

1

1

.*

1

1

 

1

 

 

 

 

V<7o

 

 

 

 

*

 

 

 

1

1

1

1

1

1

1

1

\

 

 

 

 

 

 

 

 

V<7o

 

 

 

 

 

 

 

 

0

0

1

1

#• '

0

0

1

1

2. Задана машина

Тьюринга:

 

 

 

 

 

А = {0,1}, Q =

{q0,

ft, qt,

q3,

qit q&, qu,

q7, qe,

q9, q10,

qu, qu},

где 0 — пустой символ, a q^ — заключительное состояние. Программа задана в виде:

42


Яо

9,0Л

^ОЛ

Яч

913

д8 ол

Я1

<?2

<Ь1Л

<7в

<?9ол

<78

<72

я\ш

?2

<7э

<7юШ

<?9

Яз

<?3

<?10

9иОП

9ю1П

Я*

<76ОП

й Ш

Яи

97 Л

 

Яъ

?в оп

<7бШ

Ян

 

 

Яв

<7в1П

 

 

Останов

Записать алгоритм сложения чисел, заданных на ленте в виде

1

1

1

1

1

0

1

1

1

Машина начинает просмотр с самой левой единицы, находясь в со­ стоянии <7о.

Результат суммирования должен быть представлен в виде

1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1

3. Машина Тьюринга задана следующей таблицей:

 

 

 

1

 

 

 

 

 

*

 

 

^

^ ^

^

 

1

 

0

 

 

а

 

 

 

 

 

Q

 

^

\

 

 

 

 

 

 

 

 

 

Яо

 

 

<?2аЛ

 

q0A

 

Яз

<7оШ

 

<7i

 

 

 

 

<?оЛ

 

<7iH

<?оЛ

 

Яг

 

 

q2JI

 

«7i 1

 

д2 Л

<7о1

 

Яз

 

 

<?П

 

Яз

 

 

Я<Я

?

 

 

 

 

3

 

 

а

 

 

о

 

Записать

алгоритм

повторного

сложения

чисел

т и п, заданных

в виде

 

 

 

 

 

 

*

 

 

 

 

 

!

>

1

1

 

1

1

1

 

 

 

 

 

Процесс сложения-состоит в следующем: левое число т прибав­ ляется к первому числу п, потом т прибавляется к полученной сум­ ме п + т и т. д.

Просмотр ленты начинается с самой левой единицы. Машина находится в состоянии qo.

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

За основу взять

таблицу соответствия для повторного сложения

(3 упражнение)

и изменить ее так, чтобы процесс повторного сум­

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

43


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

V<?3

1

1

1

1

1

#•

1

1

Результат умножения должен быть представлен в виде:

V

0 0 0 0

1 1

 

1 1 1

1 1 1

Записать алгоритм с указанием соответствующих

конфигураций.

6. Составить таблицу

соответствия

для машины Тьюринга, вы­

полняющей алгоритм умножения

двух

чисел.

 

*

 

 

Записать алгоритм с указанием для каждой команды соответст­ вующей конфигурации. .

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

8.Составить таблицу соответствия для машины Тьюринга, вы­ полняющей алгоритм деления, записать алгоритм с соответствую­ щими конфигурациями.

9.Пользуясь понятием машины Поста, записать алгоритмы:

 

а)

сложения двух чисел;

 

 

 

 

 

 

 

 

 

б)

вычитания двух чисел;

 

 

 

 

 

 

 

 

 

в) умножения двух чисел;

 

 

 

 

 

 

 

 

 

г) деление одного числа на другое.

 

 

 

 

 

 

 

10. Машина Тьюринга задана следующей таблицей соответст­

вия:

 

 

 

 

 

 

 

 

 

 

 

 

 

\

А

S

0

It

2

3

4

5

• б

7

8

9

а

А

 

 

я

\

 

 

 

 

 

 

 

 

 

 

 

 

 

%

<7iSn

frOn

2

 

 

 

 

 

 

 

 

 

 

<7i

q3SU

 

 

 

 

 

 

 

 

 

 

 

 

QeSn

<ьол

q^aJl

 

 

 

 

 

 

 

 

 

 

<7г

 

<?1Л

?4 ЗП

?4

<74

? 4 6 П

<7jn

</4

<?4

 

 

 

Ь

 

 

<74

<74

ЯМ

 

Я*

qbSU

<7«0П

 

 

 

 

 

 

 

 

 

Яь

%оп 1

 

 

 

 

 

 

 

 

<7iin

 

 

 

 

дк

 

 

 

 

 

 

 

 

 

Яе

Останов

Записать алгоритм счетчика единиц с указанием соответствую­ щих конфигураций. •.

11. Составить таблицу соответствия для машины Тьюринга, вы - ' полняющей алгоритмы сложения и вычитания. Записать алгоритм одного примера с указанием конфигураций, соответствующих каж­ дой команде.

44


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

1.4. Нормальные алгоритмы А. А. Маркова

Как мы уже условились, всякий общий способ задания алгорит­ мов называется алгоритмической системой. Алгоритмическая систе­ ма, основанная на соответствии между словами в абстрактном ал­

фавите, включает* в себя объекты двоякой

природы: элементарные

операторы и элементарные распознаватели.

 

Элементарные операторы — достаточно

просто задаваемые ал­

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

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

Для указания набора элементарных операторов и порядка их

следования при задании

конкретного алгоритма удобно пользо­

ваться ориентированными

графами

особого ряда, называемыми

граф-схемами соответствующих алгоритмов.

Граф-схема алгоритма представляет собой конечное множество

соединенных между собой вершин

(или геометрических фигур), на­

зываемых узлами граф-схемы. Каждому узлу, кроме особых узлов, называемых входом и выходом, сопоставляется какой-либо элемен­ тарный оператор или распознаватель. Из каждого узла, которому сопоставлен оператор, а также из входного узла исходит точно по одной дуге. Из каждого узла, которому сопоставлен распознава­ тель, исходит точно по две дуги. Из выходного узла не исходит ни одной дуги. Число дуг, входящих в узел граф-схемы, может быть любьш.

Рассмотрим на примере общий вид такой граф-схемы (стр. 46).

В рассматриваемом случае для вершины, соответствующей вхо-

 

+

 

 

 

 

=

1; для вершин,

соответст-

ду, имеем Р или Р+(х)

= 0, Р или Р~(х)

 

 

 

 

 

 

 

+

или' Р+{х)

 

ИЛИ

вующих элементарным операторам, —Р

1, Р

Р~(х) =

1; для вершин, соответствующих

элементарным

распозна-

вателям,

+

или Р+(х)

=

Р~(х)

=

2; для вершины,

соот-

Р

2, Р

или

ветствующей

 

+

или

P+ix)

=

1,

или Р~(х)

=

0.

 

выходу, —Р

Р

 

В общем случае число дуг, входящих в вершины-распознавате­ ли, может быть любым.

Алгоритм, определенный граф-схемой, работает следующим об­ разом. Входное слово поступает на вход и двигается по направле­ ниям, указанным стрелками. При попадании^слова в распознава-

45


тельный узел осуществляется проверка условия, сопоставленного этому узлу. При выполнении условия слово направляется в опера­ торный узел, при невыполнении — к следующему распознавателю (иногда эти стрелки соответственно обозначают знаками « + » и «—»).

Если входное слово р , поданное на вход граф-схемы, проходя через узлы схемы и преобразуясь, попадает через конечное число шагов на выход^ то считается, что алгоритм применим к слову р (слово р входит в область определения этого алгоритма). Резуль­ татом воздействия на слово р будет то слово, которое оказывается на выходе схемы. Если после подачи слова р на вход графа его преобразование и движение по граф-схеме продолжается бесконеч­ но долго, не приводя на выход, считается, что алгоритм не приме­ ним к слову р , т. е. слово р не входит в область определения алго-

Вход

adcaSca

 

ЭР,

ЭР,

ЭР,

'Выход

.

 

• асоосоа,

ритма. В нормальных алгоритмах в качестве элементарного опера­ тора используется оператор подстановки, а в качестве элементарно­ го распознавателя — распознаватель вхождения.

Распознаватель вхождения проверяет условие — имеет ли место вхождение рассматриваемого слова pi в качестве подслова некото­

рого заданного слова q.

 

 

 

 

 

 

"Оператор

подстановки заменяет

первое

слева

вхождение сло­

ва pi в слово q на некоторое заданное слово

р%.

Оператор

подста­

новки задается обычно в виде двух

слов,

соединенных

стрелой

Pi—*Pz.

 

 

 

 

 

 

 

Например, для слова abcabca

применение

подстановки

ос^-сл

через два шага приводит к слову

асЬасЬа.

 

 

 

 

'

аЪсаЪс—^асЪаЬса—yacbacba.

 

 

Последовательность слов ри ръ

• • •, Рп,

получаемых в

процессе

реализации алгоритма, называется дедуктивной цепочкой, ведущей от слова pi к слову р п .

46