
- •Курсовая работа
- •1 Теоретический вопрос «Конечные автоматы. Двоичные автоматы.»
- •Введение
- •1.2 Способы задания автоматов Мили
- •1.2.1 Табличный способ
- •1.2.2 Графический способ
- •1.3 Элементарные автоматы
- •1.4 Вывод
- •2 Решение задачи «о спящем парикмахере»
- •2.1 Постановка задачи
- •2.2Реализация задачи с помощью сетей Петри
- •2.3 Листинг программы
- •2.3.1 Фрагмент программы «Barber»
- •2.3.2 Фрагмент программы «Hall»
- •2.3.3 Фрагмент программы «Main»
- •3 Список использованных источников
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Магнитогорский государственный технический университет им. Г.И. Носова»
Кафедра вычислительной техники и прикладной математики
Курсовая работа
по дисциплине: «Теория вычислительных процессов»
на тему: «Конечные автоматы. Двоичные автоматы.»
Выполнил: |
студент группы АВ-10 Истомин А.А. |
Проверила: |
к.т.н., доцент Кочержинская Ю.В. |
Магнитогорск 2012
Оглавление
1 Теоретический вопрос «Конечные автоматы. Двоичные автоматы.» 3
1.1 Введение 3
1.2 Способы задания автоматов Мили 5
1.2.1 Табличный способ 5
1.2.2 Графический способ 6
1.3 Элементарные автоматы 6
1.4 Вывод 13
2 Решение задачи «О спящем парикмахере» 14
2.1 Постановка задачи 14
2.2Реализация задачи с помощью сетей Петри 14
2.3 Листинг программы 15
2.3.1 Фрагмент программы «Barber» 15
2.3.2 Фрагмент программы «Hall» 18
2.3.3 Фрагмент программы «Main» 21
3 Список использованных источников 25
1 Теоретический вопрос «Конечные автоматы. Двоичные автоматы.»
Введение
Автомат- дискретный преобразователь информации способный принимать различные состояния, переходить под воздействием входных сигналов из одного состояния в другое и выдавать выходные сигналы. Если множество состояний автомата, а так же множества входных и выходных сигналов конечны, то автомат называется конечным автоматом. Понятие состояния введено в связи с тем, что часто возникает необходимость в описании поведения систем, выходные сигналы которых зависят не только от состояния входов в данный момент времени, но и от некоторых предысторий, то есть от сигналов, которые поступали на входы системы ранее. Состояния как раз и соответствуют некоторой памяти о прошлом, позволяя устранить время как явную переменную и выразить выходные сигналы как функцию состояний и входов в данный момент времени.
Информацию, поступающую на вход автомата, а так же выходную информацию принято кодировать конечной совокупностью символов. Эту совокупность называют алфавитом, отдельные символы, образующие алфавит – буквами, а любые упорядоченные последовательности букв данного алфавита – словами в этом алфавите.
Например: в алфавите X = (x1, x2), состоящем из двух букв, словами будут: x1, x2, x1x1, x1x2, x2x1,x2x2, x1x1x1 и т.д.
Наряду со словами, состоящими не менее чем из одной буквы, введем слово, не содержащее ни одной буквы, которое будем обозначать символом е и называть пустым словом или пустой буквой.
Математической моделью реального конечного автомата является абстрактный автомат, который имеет один входной канал и один выходной канал.
X(x1,…,xm) |
---> |
A(a0,...,an) |
---> |
Y(y1,…,yk) |
Автомат
функционирует в дискретные моменты
времени, интервал, между которыми Т
называется тактом.
При этом в каждый дискретный момент
времени на вход автомата поступает одна
буква входного алфавита, автомат
переходит из одного состояния в другое
и выдается одна буква выходного алфавита.
В зависимости от того, как задается
длительность такта Т, различают
автоматы синхронного действия (T=const)
и асинхронного действия (T
const).
Мы будем рассматривать, в основном,
синхронные автоматы, функционирующие
в дискретные моменты времени, которые
можно обозначить целыми неотрицательными
натуральными числами, t=0,1,2,3,….,
имеющими смысл номера такта.
Для задания конечного автомата S необходимо задавать совокупность из пяти объектов: S(A, X, Y, d, l), где A = {a0,a1,a2,...,an}– множество внутренних состояний автомата, X = {x1, x2,…, xm} – множество входных сигналов (входной алфавит), xi – буква входного алфавита, Y = {y1, y2,…, yk} – множество выходных сигналов (выходной алфавит),
d - функция переходов, определяющая состояние автомата a(t+1), в котором автомат будет находится в момент времени (t+1), в зависимости от состояния автомата a(t) и входного сигнала x(t) в момент времени t, то есть a(t+1) = d [a(t), x(t)],
l - функция выходов, определяющая значение выходного сигнала y(t) в зависимости от состояния автомата a(t) и входного сигнала x(t) в момент времени t, т.е. y(t) = l[a(t), x(t)].
Автомат работает следующим образом: в каждый момент времени t он находится в определенном состоянии a(t) из множества А возможных состояний. Причем в начальный момент времени t = 0 он всегда находится в состоянии a(t = 0) = a0. В момент времени t автомат воспринимает входной сигнал x(t), выдает выходной сигналу y(t) = l[a(t), x(t)] и переходит в следующее состояние a(t+1)=d[a(t), x(t)]. Другими словами абстрактный автомат каждой паре символов a(t) и x(t) ставит в однозначное соответствие пару символов a(t+1) и y(t). Такие автоматы называют детерминированными. На преобразование информации в детерминированных автоматах наложены условия.
Условия преобразования информации в детерминированных автоматах:
1. Любое входное слово, длинною l букв, преобразуется в выходное слово той же длины.
2. Если каждый раз перед подачей входных сигналов автомат находится в одном и том же состоянии, то при совпадении в двух входных словах первых l1 букв, в выходных словах первые l1 букв также совпадут.
Кроме детерминированных автоматов существуют вероятностные или стохастические автоматы, в которых переход из одного состояния в другое под воздействием случайных или детерминированных входных сигналов происходит случайно. Работа таких автоматов описывается уже матрицей переходов d, элементами которой являются вероятности переходов из одного состояния в другое. Нами будут рассмотрены, в основном, детерминированные автоматы.
Применяемые на практике автоматы принято разделять на два класса - это автоматы Мили и автоматы Мура, названные так по имени американских ученых, которые впервые начали их изучать. Функционирование автоматов строго подчиняется определённым законам (законы функционирования автоматов).
Законы функционирования автоматов описываются системами уравнений:
Автомат Мили:
|
a(t + 1) = d[a(t),x(t)] |
|
y(t) = l[a(t),x(t)] |
|
t = 1,2,3… |
Автомат Мура:
|
a(t + 1) = d[a(t),x(t)] |
|
y(t) = l[a(t)] |
|
t = 1,2,3… |
Отличительной особенностью автоматов Мили является то, что их выходные сигналы зависят как от состояния автомата, так и от значения входного сигнала. В автоматах Мура выходные сигналы y(t) в каждый дискретный момент времени t однозначно определяются состоянием автомата в тот же момент времени и не зависят от значения входного сигнала.