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

конечный

.docx
Скачиваний:
13
Добавлен:
04.03.2022
Размер:
256.55 Кб
Скачать

Пантелеева К. БСТ1904

Конечные автоматы

6.1

По кодовой комбинации а=yyyxxxyy построить дешифратор с входным алфавитом {х,у} и записать его: 1) диаграммой состояний; 2) таблицей состояний.

Составим диаграмму состояний дешифратора, содержащего 8 внутренних состояний (по количеству символов кодовой комбинации). Пусть начальное состояние – q1. Определим λ(y, q8) = 1, для остальных случаев значение функции выходов равно 0. Функцию переходов зададим следующим образом: δ(y,q1) = q2, δ(x,q1) = q1. В дальнейшем, если y1y2...yk (k≠8) - начало кодовой комбинации, то δ(yk, qk ) = qk+1

Построим переходы:

δ(y,q1) = q2, δ(x,q1) = q1

δ(y,q2)=q3, δ(x,q2)=q2

и т.д. до δ(y, q8) =q2, δ(x,q8)=q1

Получим диаграмму состояний (рис. 1):

Рисунок 1

Теперь запишем таблицу состояний дешифратора:

A/Q

q1

q2

q3

q4

q5

q6

q7

q8

x

q1,0

q2,0

q2,0

q5,0

q6,0

q7,0

q6,0

q1,0

y

q2,0

q3,0

q4,0

q4,0

q3,0

q5,0

q8,0

q2,1

Таблица 1

6.2

Для данного конечного автомата, заданного таблично, со множеством внутренних состояний {1,2,3,4,5,6,7,8,9}, входным алфавитом {а,Ь} и выходным алфавитом {х, у}. 1. Выяснить, является ли автомат сильно связным. 2. Построить эквивалентный минимальный автомат. 3. Проверить работу исходного и минимального автоматов над словом "abbabaab".

A/Q

1

2

3

4

5

6

7

8

9

a

2,x

4,x

4,x

3,x

5,y

7,x

6,x

7,x

7,x

b

1,x

5,x

5,x

5,y

6,y

5,y

5,x

9,x

8,x

1. Выясним, является ли автомат сильно связным. Для этого изобразим диаграмму состояний данного автомата, опуская пометки дуг и объеди

няя пары противоположно направленных дуг, соединяющих одинаковые вершины графа. Получим:

Рисунок 2

Построим в полученном графе циклический маршрут:

1->1->2->4->3->5->6->7->5->5->6-…

Из возможности построения такого маршрута следует, что автомат является инициальным и слабо связным.

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

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

Таблица 2

Далее, в незачеркнутые клетки выписываем пары состояний, в которые переходит автомат из состояний, соответствующих этой клетке, при подаче на вход одинаковых входных символов. Из этого правила записи есть два исключения: 1) не выписываем пары одинаковых состояний; 2) не выписываем пару, соответствующую заполняемой клетке. Будем иметь (табл. 3):

2

2 4

1 5

3

2 4

1 5

4

5

6

3 7

7

2 6

1 5

4 6

4 6

8

2 7

1 9

4 7

5 9

4 7

5 9

6 7

5 9

9

2 7

1 8

4 7

5 8

4 7

5 8

6 7

5 8

9 8

1

2

3

4

5

6

7

8

Таблица 3

Затем, если внутри какой-нибудь клетки выписана пара, соответствующая зачёркнутой ранее клетке, то клетка с этой парой также зачёркивается. Окончательно имеем (табл. 4):

2

2 4

1 5

3

2 4

1 5

4

5

6

3 7

7

2 6

1 5

4 6

4 6

8

2 7

1 9

4 7

5 9

4 7

5 9

6 7

5 9

9

2 7

1 8

4 7

5 8

4 7

5 8

6 7

5 8

9 8

1

2

3

4

5

6

7

8

Таблица 4

Здесь каждой незачёркнутой клетке соответствует пара эквивалентных состояний, которые мы объединяем в классы эквивалентности:

1ꞌ={1,8,9}; 2ꞌ={2,3,7}; 3ꞌ={4,6}; 4ꞌ={5}

Для построения таблицы состояний минимального автомата поступаем следующим образом: чтобы найти значение функций перехода и выхода, например, на наборе (а,1ꞌ), выбираем из класса эквивалентности 1ꞌ любого представителя. Пусть это будет состояние 8. Из таблицы состояний исходного автомата мы имеем, что λ(а,8) = х, значит, определим также функцию выхода минимального автомата: λ(а,1ꞌ) = х. Из таблицы состояний исходного автомата имеем, что δ(а,8) = 7. Но 7 принадлежит {2,3,7}=2', значит, будем считать, что (а,8) = 2'. Найдя значения функций перехода и выхода на всех наборах перемененных, заполним таблицу состояний минимального автомата (табл. 5):

A/Q

1'

2'

3'

4'

a

2',x

3,x'

2',x

4',y

b

1',x

4',x

4',y

3',y

Таблица 5

3. Проверим работу исходного автомата над словом abbabaab. Пусть исходный автомат начинает свою работу, например, из 1 состояния:

Входное слово

a

b

b

a

b

a

a

b

Состояние

1

2

5

6

7

5

5

5

6

Выходное слово

x

x

y

x

x

y

y

y

Таблица 6

Так как 1 принадлежит {1,8,9}=1', то минимальный автомат запускаем из состояния l'. Получим:

Входное слово

a

b

b

a

b

a

a

B

Состояние

1'

2'

4'

3'

2'

4'

4'

4'

3'

Выходное слово

х

x

y

x

x

y

у

y

Таблица 7

Как мы видим, результатом работы исходного и минимального автомата над словом «abbabaab» является одно и тоже слово «xxyxxyyy».

Соседние файлы в предмете Теория языков программирования