Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория вычислительных процессов. Лабораторный практикум. Учебное пособие
.pdf
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Белгородский государственный технологический университет
им. В. Г. Шухова
Ю. Д. Рязанов
ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Лабораторный практикум
Утверждено ученым советом университета в качестве учебного пособия
для студентов, обучающихся по направлению подготовки 230100 «Ин-
форматика и вычислительная техника» и специальности 230105 —
Программное обеспечение вычислительной техники
и автоматизированных систем
Белгород
2011

УДК 004(075.8)
ББК 32.81я73
Р99
Р е ц е н з е н т ы:
Кандидат технических наук, доцент Белгородского государственного
университета В.М. Михелев
Кандидат технических наук, доцент Белгородского государственного тех-
нологического университета им. В.Г. Шухова Е.Н. Коробкова
Рязанов, Ю. Д.
Р99 Теория вычислительных процессов: лабораторный практикум:
учебное пособие / Ю.Д. Рязанов. — Белгород: Изд-во БГТУ, 2011. —
99 с.
В учебном пособии содержатся теоретические сведения и необходимые рекомендации
к выполнению лабораторных работ по дисциплине «Теория вычислительных процессов» в
соответствии с государственным образовательным стандартом высшего профессионального
образования.
Рассмотрены основы теоретического программирования: вычислимость и разрешимость, одноленточные автоматы, автоматы Мили и Мура, схемы программ, сети Петри.
Теоретический материал сопровождается примерами и задачами с решениями.
Учебное пособие предназначено для студентов дневной и заочной форм обучения по
направлению подготовки 230100 «Информатика и вычислительная техника» и специальности
230105 — Программное обеспечение вычислительной техники и автоматизированных си-
стем.
Издание публикуется в авторской редакции.
УДК 004(075.8)
ББК 32.81я73
Белгородский государственный
технологический университет
(БГТУ) им. В.Г. Шухова, 2011

3
Оглавление
Введение ……………………………………………….…………………. 5
Лабораторная работа № 1. Вычислимость и разрешимость .………..… 6
Задание …………….……………….………...………………….......... 6
Варианты заданий …………………………..……………………..…. 6
Теоретические сведения ………...…..………………………….……. 8
Основные определения ………………...……………………...…. 8
Машина Тьюринга ….……………………………………………. 9
Массовые алгоритмические проблемы ………...……………. . 13
Проблема остановки … ……………….……………………. 14
Проблема пустой ленты …….…………...……………….… 16
Проблема зацикливания ..……………………..……………. 16
Контрольные вопросы ………………………………………….….. 17
Лабораторная работа № 2. Одноленточные автоматы ……………..… 18
Задание ….……………………………………………………….….. 18
Варианты заданий ……………………………………...…………... 18
Теоретические сведения …..…………………………………..…… 19
Основные понятия ……………………………………...……..… 19
Эквивалентность одноленточных автоматов .……………..….. 22
Минимизация одноленточных автоматов ……………….….… 26
Контрольные вопросы ……………………………………….…… 31
Лабораторная работа № 3. Автоматы Мили и Мура ……...………..… 32
Задание ….………………………………………………………..…. 32
Варианты заданий …………………………………...……………... 33
Теоретические сведения ….…………………………………..……. 38
Автомат Мили. Основные понятия ………………………...….. 38
Автомат Мура. Основные понятия ……..……………………… 40
Трансформация автоматов Мили и Мура …………….……..… 42
Эквивалентность автоматов ..…………………………………... 43
Минимизация автоматов …………………………………..…… 47
Контрольные вопросы ….………………………………………….. 52
Лабораторная работа № 4. Схемы программ ……………..…………... 53
Задание ….………………………………………………………..…. 53
Варианты заданий ………………………………………………..… 53
Теоретические сведения …..………….……………………………. 54
Стандартные схемы программ ……….………………………... 54
Интерпретация ….…………………………….………………… 58
Выполнение программы ……………………….………………. 59

4
Свойства стандартных схем программ ………………..……… 61
Свободные интерпретации ………………………………..…… 63
Изоморфизм стандартных схем ……………………...………... 65
Логико-термальная эквивалентность …………………………. 69
Рекурсивные схемы программ …………………………...….… 70
Рекурсивная программа ….……………………………..……… 71
Трансляция стандартных схем в рекурсивные ……………….. 73
Контрольные вопросы …..…………………………………………. 75
Лабораторная работа № 5. Сети Петри ……………………………….. 76
Задание ….……………………………………………...…………… 76
Варианты заданий ….………………………………………………. 76
Теоретические сведения …...……………………….……………… 81
Структура сети Петри ………………………………………….. 81
Маркировка и выполнение сети Петри ………………….….… 82
Свойства сетей Петри …………………………….……………. 84
Анализ сетей Петри ……………………………………………. 86
Дерево достижимости …………………………………….… 86
Граф достижимости ….………………………………...…… 89
Матричные уравнения …………………………………....… 94
Контрольные вопросы …..……………….………………………… 96
Заключение ………………………………………………………..……. 97
Библиографический список……………………….………………….... 98

5
Введение
Учебное пособие представляет собой описание пяти лабораторных
работ по дисциплине «Теория вычислительных процессов» и библиографический список. Описание каждой работы включает общее задание к
работе, индивидуальные варианты заданий, необходимые теоретические
сведения и перечень контрольных вопросов.
В лабораторной работе №1рассматриваются основные понятия теории вычислимости и разрешимости, машина Тьюринга, как универсальная машина для вычисления значений вычислимых функций, формулируются массовые алгоритмические проблемы и доказываются теоремы о
неразрешимости проблем, связанных с машиной Тьюринга.
Лабораторная работа №2 посвящена изучению одноленточных конечных автоматов как машин, вычисляющих одноместные предикаты,
более простых, чем машины Тьюринга. Показана разрешимость проблем
эквивалентности и минимизации одноленточных автоматов.
Лабораторная работа №3 посвящена изучению конечных автоматов
Мили и Мура как машин, вычисляющих словарные функции, сохраняющих длину слова, более простых, чем машины Тьюринга. Показана равномощность автоматов Мили и Мура и разрешимость проблем эквивалентности и минимизации этих автоматов.
В лабораторной работе №4 изучаются схемы программ как математические модели программ. Рассматриваются стандартные и рекурсивные
схемы. Определяются свойства стандартных схем программ и алгоритм
трансляции стандартных схем в рекурсивные.
Лабораторная работа №5 посвящена изучению сетей Петри. Определяются свойства сетей Петри и различные способы их анализа.

6
a b c d # 0
1 d r
0 c l
0 b l
0 a p
1 0 d l
2 b p
2 b r
1 a r 2
1 b l
1 c r
0 c r
1 a p
a b c d
#
0
0 a r
0 a r
0 b l
1 a r 1
2 d l
1 b r
2 d r
1 a l 2
1 c l
0 c r
2 c r
2 d p
a b c d
#
0
2 c r
2 d r
2 b l
2 b r 1
2 a l 1 a l 2
1 d r
2 a r
2 b p
Л а б о р а т о р н а я р а б о т а № 1
Вычислимость и разрешимость
Цель работы: изучить и осознать основные понятия теории вычисли-
мости и разрешимости.
З а д а н и е
1. Изучить основные понятия:
— полностью и частично определенная функция, вычислимая и
невычислимая функция;
— массовые алгоритмические проблемы, характеристическая и
частичная характеристическая функция множества, разрешимые и
перечислимые множества, разрешимые, частично разрешимые и
неразрешимые проблемы.
2. Изучить машину Тьюринга и способ вычисления функций с
помощью машины Тьюринга.
3. Программно реализовать машину Тьюринга.
4. Для заданной машины Тьюринга (см. «Варианты заданий») найти
примеры слов, на которых она будет останавливаться и примеры слов, на
которых машина зациклится. Протоколы работы машины Тьюринга в
обоих случаях представить в отчете.
Варианты заданий
Вариант 1.
Вариант 2.
Вариант 3.

7
a b c d # 0
1 c r
1 a r
0 d r 1 1 a p
0 d l
2 d r
1 a l 2
1 c p
1 a r
a b c d # 0
0 d r
1 c p
1 a l
1 d l 1
1 b r 2 d r
0 a r 2 2 a r
0 b r
2 d p
a b c d # 0
0 a r
1 d r
1 c r
0 a r 1
0 b l
0 a r
2 c r 2 1 b l 2 c r
2 d l
a b c d # 0
1 c r
2 a r 1 b r 1
2 d r
0 b r
1 c r
2 a r 2
1 a l 2 d r
a b c d # 0
1 b l
1 d r
1 c r
1 a l 1
2 d r 0 a r 2
2 b r 2 d p
a b c d # 0
1 a r
1 b r
1 d p 1 2 b l
2 d l
0 a r
1 b r 2 1 d r
2 c r
a b c d # 0
1 a r
2 a l 0 d r 1
2 d r
1 b r
2 a p
1 a l 2
0 a r 2 c p
2 a r
Вариант 4.
Вариант 5.
Вариант 6.
Вариант 7.
Вариант 8.
Вариант 9.
Вариант 10.

8
Т е о р е т и ч е с к и е с в е д е н и я
Основные определения
Рассмотрим кратко некоторые понятия и определения, используемые в
данной лабораторной работе.
Множество — есть набор несовпадающих объектов, которые мы будем задавать явным перечислением и заключать в фигурные скобки.
Например: D — множество дней недели:
D = { Пн, Вт, Ср, Чт, Пт, Сб, Вс }, D1 = { Вт, Ср, Чт, Пн, Сб, Пт, Вс }.
Множества D и D1 равны, т.к. состоят из одних и тех же элементов, а порядок элементов не важен.
Будем использовать обозначения:
x A — x есть элемент и принадлежит множеству A;
x A — x не является элементом множества А.
Для бесконечных множеств метод перечисления элементов множества
не применим. Для задания таких множеств используется характеристическое свойство А = {x | p(x)}, где х — переменная, значениями которой являются некоторые объекты, а р — свойство тех и только тех значений х,
которые являются элементами задаваемого множества.
Пустое множество — множество, которое не содержит ни одного элемента, обозначается или {}.
Если каждый элемент множества А является элементом множества В,
то множество А включено в множество B (обозначается A B) или является подмножеством множества В. Если хотя бы один элемент множества А не является элементом множества В, то множество А не является
подмножеством множества. Если множество А включено в множество B и
при этом эти множества не равны, то говорят, что множество А строго
включено в множество B (обозначается A B).
Декартовым произведением А
А2 … Аn множеств А1, А2 … и Аn
1
называется множество {(a1, a2, …, an) | a1 A1, a2 A2, , an An}, а An
обозначает А А … А (n раз).
Функцией, отображающей множество Х во множество Y (обозначение F: X → Y), называется множество F X Y , в котором не найдется
хотя бы двух пар, в которых первые элементы равны. Множество X называется областью отправления, а множество Y — областью прибытия.
Множество {x | (x, y) F} — область определения функции F (или множество значений ее аргумента); множество {y | (x, y) F} — область зна-
чений функции F. Если область определения равна области отправления,
то функция называется полностью (всюду) определенной, иначе — ча-
стичной.

9
Функцию F: X → Y называют n-местной функцией над множеством А,
если Y = A и X = An.
Предикатом называют функцию, областью значений которой является множество {0, 1}. При этом говорят, что предикат P: X → {0, 1} исти-
нен для x X, если P(x) = 1, и ложен, если P(x) = 0.
Алфавитом называют непустое конечное множество символов.
Например, V1 = {a, b}, V2 = {0, 1}, V3 = {a, +, 1, =} – алфавиты. Словом в
алфавите V называется конечный объект, получаемый выписыванием
одного за другим символов V, например, а + 1 = 1 + а — слово в алфавите
V3, 101011 — слово в алфавите V2, abaab — слово в алфавите V1. Длина
слова — число символов в нем, пустое слово не содержит ни одного символа.
Множество всех слов в алфавите V обозначается V*.
n-местной словарной функцией над алфавитом V называют n-мест-
ную функцию над V*, т. е. функцию из V* V* … V* (n раз) в V*.
Функция F называется вычислимой, если существует алгоритм нахождения ее значения F(x) по значению аргумента x.
Пусть V — алфавит, М V* — множество слов в V.
Характеристической функцией множества М называется предикат
FM: V* → {0, 1}, всюду определенный на V*: FM (а) = 1, если а М, и
FM (а) = 0, если а М.
Частичная характеристическая функция множества М — это функция НМ: V* → {1}, определенная только для слов из М и имеющая вид НM
(а) = 1 для всех а М.
Множество М называется разрешимым, если его характеристическая
функция вычислима. Множество М перечислимо, если его частичная характеристическая функция вычислима.
Машина Тьюринга
Тьюринг в середине 30-х годов формализовал способ получения значений вычислимой функции с помощью абстрактной «математической
машины», вычисляющей значения функции по значениям ее аргументов.
Конкретная машина Тьюринга задает конкретную вычислимую функцию
и его гипотеза (тезис) состояла в том, что каждая функция, для которой
существует алгоритм нахождения ее значений, представима некоторой
машиной Тьюринга, т. е. является вычислимой.
Тезис Тьюринга не может быть доказан, так как наряду с формальным
понятием вычислимой функции он содержит эмпирическое понятие алгоритма.

10
a
0
a
1
a
2
#
q
1
q3 a2 l
q
2
q4 a1 p
q3 a0 p
q1 a0 l
q
3
q4 a1 r
q
4
q3 a0 r
q3 a2 l
q4 a2 r
Машина Тьюринга Т задает словарную функцию над некоторым алфавитом V и представляет собой набор (V, Q, q0, #, I) и правило функционирования, общее для всех машин, где
V — алфавит машины;
Q — конечное непустое множество символов, называемых состояния-
ми машины (Q V =);
q0 — выделенный элемент множества Q, называемый начальным со-
стоянием;
# — специальный «пустой» символ, не принадлежащий ни V, ни Q;
I — программа машины.
Программа машины — это конечное множество слов вида q a q' a' d,
называемых командами, где q, q' Q, a, a' V {#}; — вспомогательный
символ-разделитель; d — элемент множества { l, r, р}, содержащего три специальных символа, которых нет ни в V, ни в Q. Предполагается также, что в
программе I никакие две команды не могут иметь одинаковую пару первых
двух символов.
Допустим, что имеется некоторая машина Тьюринга, программа которой
представляет собой следующее конечное множество команд:
I = {q1 a0 q3 a2 l, q2 a0 q4 a1 p, q2 a1 q3 a0 p, q2 a2 q1 a0 l,
q3 a1 q4 a1 r, q4 a0 q1 a0 r, q4 a1 q3 a2 l, q4 a2 q4 a2 r}
Программа машины Тьюринга может быть представлена в виде двумерной таблицы, строки которой означают состояния машины, а столбцы — символы входного алфавита. Клетка в строке qi и столбце aj соответствует команде с левой частью qi aj и в ней записывается правая часть команды. Для приведенной выше программы таблица имеет вид:
Пустая клетка таблицы в строке qi и столбце aj означает отсутствие в программе команды с левой частью qi aj.
Кроме этого, для представления машины Тьюринга можно использовать
граф, вершины которого обозначают состояния. Каждой команде программы
соответствует дуга графа. Команде qi ak qj al d соответствует дуга из вершины qi в вершину qj . Начало этой дуги отмечается символом ak , а конец — al d.
Пример машины Тьюринга, заданной графом, представлен на рис 1.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
