- •010400.62 Прикладная математика и информатика
- •Предисловие
- •1. Элементы математической логики
- •1.1. Логические связки и их таблицы истинности
- •1.2. Свойства логических операций
- •1.3. Функции алгебры логики и их свойства
- •1.4. Совершенные формы
- •1.5. Многочлены Жегалкина
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •2. Множества и отображения
- •2.1. Множества
- •2.2. Операции над множествами.
- •2.3. Свойства операций над множествами
- •2.4. Отображения множеств
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •3. Элементы комбинаторного анализа
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •4. Элементы теории графов
- •4.1. Основные понятия теории графов
- •4.2. Основные операции над графами
- •4.3. Матрицы графов
- •4.4. Мосты, деревья
- •4.5. Алгоритмы построения минимального остовного дерева
- •4.6 Задача о кратчайшем пути и алгоритм Дейкстры для ее решения
- •4.7. Дерево кратчайших путей
- •4.8. Гамильтоновы циклы и гамильтоновы графы
- •4.9. Эйлеровы циклы и эйлеровы графы
- •Примеры решения задач
- •Алгоритм Дейкстры-Прима
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •5. Теория кодирования
- •5.1. Основные понятия теории кодирования
- •5.2. Проблема взаимной однозначности
- •5.3. Коды Хемминга
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •6. Теория автоматов
- •6.1. Основные понятия теории автоматов
- •6.2. Способы задания конечного автомата
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •7. Задания для самостоятельной работы
- •Библиографический список
- •Мария Николаевна Рыжкова Андрей Владимирович Макаров
- •010400.62 Прикладная математика и информатика
6.2. Способы задания конечного автомата
Чтобы задать конечный автомат S, необходимо описать все элементы множества S = {A, X, Y, d, l} , т.е. необходимо описать входной, выходной алфавиты и алфавит состояний, а также функции переходов d и выходов l. При этом среди множества A = {a0, a1, …, an} необходимо выделить начальное состояния a0, в котором автомат находится в момент времени t = 0. Существует несколько способов задания работы автомата, но наиболее часто используются табличный, графический, задание с помощью булевых функций.
1). Табличный способ. При этом способе автомат Мили описывается двумя таблицами: таблицей переходов и таблицей выходов.
Таблица переходов Таблица выходов
xj\aj
a0
…
an
x1
d(a0,x1)
…
d(an,x1)
…
…
…
…
xm
d(a0,xm)
…
d(an,
xm) |
xj\aj
a0
…
an
x1
l(a0,
x1)
…
l(an,
x1)
…
…
…
…
xm
l(
a0,
xm)
…
l(an,
xm) |
Строки этих таблиц соответствуют входным сигналам x(t), а столбцы – состояниям. На пересечении столбца ai и строки xj в таблице переходов ставится состояние as = d[ai, xj], в которое автомат перейдет из состояния ai под воздействием сигнала xj; а в таблице выходов – соответствующий этому переходу выходной сигнал yg = l[ai, xj].
Таблица 6.1
Совмещенная таблица переходов и выходов автомата Мили:
xj\ai |
a0 |
… |
an |
x1 |
d(a0, x1)/ l(a0, x1) |
… |
d(an, x1)/ l(an, x1) |
… |
… |
… |
… |
xm |
d(a0, xm)/ l(a0, xm) |
… |
d(an, xm)/ l(an, xm) |
Задание таблиц переходов и выходов полностью описывает работу конечного автомата, поскольку задаются не только сами функции переходов и выходов, но и также все три алфавита: входной, выходной и алфавит состояний.
2). Графический способ задания автомата (задание автомата с помощью графа) – этот способ основан на использовании ориентированных связных графов. Вершины графов соответствуют состояниям автомата, а дуги – переходам между ними. Две вершины графа ai и as соединяются дугой, направленной от ai к as, если в автомате имеется переход из ai в as, т.е. as = d(ai, xj). В автомате Мили дуга отмечается входным сигналом xj, вызвавшим переход, и выходным сигналом yg, который возникает при переходе. Внутри кружочка, обозначающего вершину графа, записывается состояние.
3). Задание с помощью булевых функций – если автомат задан табличной функцией или диаграммой Мура, то возможно задание автомата с помощью булевых функций. Алгоритм задания следующий:
a. Находим числа k, r, s, удовлетворяющие условиям:
2k-1 < m < 2k
2r-1 < n < 2r
2s-1 < p < 2s
где m = |X|, n = |A|, p = |Y| - число символов множеств.
При этом видно, что k, r, s равны числу разрядов, в двоичном представлении чисел m, n, p.
b. Кодируем входные и выходные символы исходного автомата:
Каждому ai Î А взаимно-однозначно ставим в соответствие двоичную последовательность длины r – двоичный код a (а) = a1a2..ar. Аналогично и для каждого x и y: b (x) = b1b2..bk, g (y) = g1g2…gs.
c. Составляем следующую таблицу:
Таблица 6.2
Код входного символа |
Код текущего состояния |
Код следующего состояния |
Код выходного символа |
||||||||||||
b1 |
b2 |
… |
bk |
a1 |
a2 |
… |
ar |
d1 |
d2 |
… |
dr |
l1 |
l2 |
… |
ls |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b1 |
b2 |
… |
bk |
a1 |
a2 |
… |
ar |
a1’ |
a2’ |
… |
ar’ |
g1 |
g2 |
… |
gs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
Эта таблица содержит k + r + r + s столбцов и 2k+1 строк.
d. Заполнение последних столбцов в таблице: для каждой пары (xi, aj) по таблице автомата находим d(x, a) = a’ и l (x, a) = y. Затем находим код a (а) = a1’ a2’..a r’ и g(y) = g1g2…gs.
