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

Теория вычислительных процессов. Лабораторный практикум. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Белгородский государственный технологический университет
им. В. Г. Шухова
Ю. Д. Рязанов
ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Утверждено ученым советом университета в качестве учебного пособия
для студентов, обучающихся по направлению подготовки 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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]