Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискра мет. 302.doc
Скачиваний:
28
Добавлен:
09.11.2018
Размер:
2.24 Mб
Скачать

Контрольные вопросы

  1. Что такое Гамильтонов путь? Как определить по матрице смежности начальные и конечные вершины Гамильтонова пути в графе?

  2. Какое максимальное число классов эквивалентности может быть в графе?

  3. Чему равно число Гамильтоновых путей в насыщенном графе?

  4. Что такое связный граф? Как найти связные подграфы в неориентированном графе.

  5. Что такое Эйлеров путь? Во всяком ли связном графе существует ЭП?

  6. Как по матрице смежности неориентированного графа определить существование ЭП?

  7. Что такое сильная компонента графа?

  8. Что такое базовое и доминирующее множества графа?

  9. Каковы свойства сильной компоненты, минимального базового и доминирующего множеств?

  10. Как находится матрица достижимости и контрдостижимости?

  11. Что такое конденсация графа.

  12. В чем сходство и различие алгоритмов определения базового и доминирующего множеств?

Работа 5. МИНИМИЗАЦИЯ НА ЭВМ КОНЕЧНЫХ АВТОМАТОВ С ПАМЯТЬЮ

Цель работы: изучение методов формализованного представления и минимизации конечных автоматов с памятью (КА) на ЭВМ.

Задание

1. Для заданного преподавателем в виде графа КА (КА1) составить таблицы переходов и выходов. Подготовить предложения для представления на ЭВМ КА1.

2. Найти для КА1 К - эквивалентные состояния. (К=1, 2).

3. Для КА1 найти - разбиение и построить минимальный КА1 (МКА 1).

4. Получить на ЭВМ минимальный КА1 и сравнить результаты с п.3.

Общие сведения

Представляется очевидным, что одно и то же автоматное преобразование может быть реализовано разными конечными автоматами, различающимися множествами внутренних состояний Q и, как следствие, функциями переходов и выходов [1, 7, 8]. Поэтому для каждого автоматного преобразования должна существовать форма, его реализующая и обладающая наименьшим числом внутренних состояний. Назовем такой конечный автомат минимальным, а процесс его определения – минимизацией конечных автоматов с памятью.

Основной идеей предлагаемого метода минимизации является разбиение (-разбиение) множества всех внутренних состояний Q заданного автомата на подмножества эквивалентных, с точки зрения выходных последовательностей, состояний и выбором для множества Q только одного состояния из каждого подмножества эквивалентных состояний. Указанное -разбиение может быть найдено с помощью к- разбиений по методике, рассмотренной ниже в методических указаниях на частном примере.

Методические указания

1. Формализованное представление КА. При формализованном представлении КА необходимо составить таблицу переходов и выходов для синхронного и асинхронного КА1, а также составить совмещенные таблицы.

Для представления на ЭВМ КА необходимо определить, какие переменные КА и массивы будут использованы. Эти данные необходимо согласовать с преподавателем.

2. Определение К- эквивалентных состояний и -разбиение рассмотрим на примере построения минимального КА, заданного в виде:

X = {x1, x2, x3}, Y = {0, 1}, Q = {q1, q2, q3, q4, q5, q6, q7, q8, q9},

где X - множество входных состояний; Y - множество выходных состоянии; Q - множество внутренних состояний КА; - таблица переходов; - таблица выходов. Таблицы переходов и выходов заданы следующие:

Таблица переходов

Таблица выходов

x1

x2

x3

q1

q2

q2

q5

q2

q1

q4

q4

q3

q2

q2

q5

q4

q3

q2

q5

q5

q6

q4

q3

q6

q8

q9

q6

q7

q6

q2

q8

q8

q4

q4

q7

q9

q8

q9

q7

x1

x2

x3

q1

1

0

0

q2

0

1

1

q3

1

0

0

q4

0

1

1

q5

1

0

0

q6

0

1

1

q7

1

0

0

q8

1

0

0

q9

0

1

1

Для нахождения - разбиения определим последовательно 1, 2 и т. д. разбиения. Для КА1 на основании таблицы выходов 1 - разбиение состоит из двух классов:

a1 = {q1, q3, q5, q7, q8}; b1 = {q2, q4, q6, q9}.

В дальнейшем индексами ak, bk, ck, dk и т.д. будем обозначать множества, состоящие из эквивалентных состояний КА в k - разбиении.

Для построения 2 - разбиения составим таблицу переходов:

x1

x2

x3

q1

b1

b1

a1

q3

b1

b1

a1

q5

b1

b1

a1

q7

b1

b1

a1

q8

b1

b1

a1

q2

a1

b1

b1

q4

a1

b1

b1

q6

a1

b1

b1

q9

a1

b1

b1

При 2 - разбиении имеем три класса эквивалентных состояний a2, b2, c2. Аналогично определяются разбиения 3, 4, 5.

Для разбиения 3:

Для разбиения 4:

Для разбиения 5:

x1

x2

x3

q1

b2

b2

a2

q3

b2

b2

a2

q5

b2

b2

a2

q7

b2

b2

a2

q8

b2

b2

a2

q2

a2

b2

b2

q4

a2

b2

b2

q6

a2

c2

b1

q9

a2

c2

a2

x1

x2

x3

q1

b3

b3

a3

q3

b3

b3

a3

q5

c3

b3

a3

q7

c3

b3

a3

q8

b3

b3

a3

q2

a3

b3

b3

q4

a3

b3

b3

q6

a3

a3

c3

q9

a3

a3

a3

x1

x2

x3

q1

c4

c4

b4

q3

c4

c4

b4

q5

c4

c4

b4

q7

a4

c4

c4

q8

a4

c4

c4

q2

d4

c4

a4

q4

d4

c4

a4

q6

a4

l4

d4

q9

a4

l4

b4

Так как 4 эквивалентно 5, то разбиения прекращаем и полученное разбиение = 4 является предельным.

3. Для построения минимального КА каждому множеству эквивалентныx состояний a4, b4, c4d4l4 в - разбиении поставим в соответствие одно внутреннее состояние g1, g2, g3, g4, g5 минимального конечного автомата

AM (X, GM, Y, M, M),

где GM = (g1, g2, g3, g4, g5).

M определяется следующим образом:

Если (qj, x)GS, qjGl, то M(gl, x) = qS.

Например: (q1, x1)G2, q1G1, следовательно, M(g1, x1) = g2.

M определяется следующим образом:

Если (qj, x) = Yk, qjGS, то M(gS, x) = Yk.

Например: (q1, x1) = 1, q1G1, следовательно, M(g1, x1) = 1.

В результате получим минимальный КА, для которого GM = (g1, g2, g3, g4, g5) и таблицы переходов и выходов имеют вид:

Таблица переходов

Таблица выходов

м

x1

x2

x3

g1

g2

g2

g3

g2

g1

g2

g2

g4

g4

g2

g1

g4

g1

g5

g4

g5

g1

g5

g3

м

x1

x2

x3

q1

1

0

0

q2

0

1

1

q3

1

0

0

q4

0

1

1

q5

1

0

0

Граф данного КА приведен на рис. 5.1.

Рис. 5.1.