Главная страница

курсовая работа по теории автоматов. курс ТА. Теория автоматов


Скачать 0.88 Mb.
НазваниеТеория автоматов
Анкоркурсовая работа по теории автоматов
Дата12.09.2022
Размер0.88 Mb.
Формат файлаdocx
Имя файлакурс ТА.docx
ТипПояснительная записка
#673878
страница5 из 6
1   2   3   4   5   6

5
Рис. 6. Граф-схема автомата Мура, выполняющего операции деления
.3. Определение числа элементов памяти и кодирование состояний автомата



Число элементов памяти N автомата Мили определяем по выражению

N , М – число состояний автомата. Отсюда N = = 4.

Для кодирования состояний автомата будем использовать соседнее кодирование.

Способ кодирования состояний, при котором соседние состояния автомата кодируются наборами, различающимися состоянием только одного элемента памяти, называется соседним кодированием.

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

P(i,j) = q(i,j) + q(j,i),

где q(i,j) – количество дуг, идущих от i-го состояния к j-му на графе состояний автомата;

q(j,i) – количество дуг, идущих от j-го состояния к i-му на графе состояний автомата.

Критерием сложности синтезированной комбинационной схемы автомата является величина

W = ,

где d(i,j) – кодовое состояние по Хеммингу, то есть количество символов, которыми отличаются коды состояний iиj. Чем меньше W, тем проще схема.

  1. Матрицу Т упорядочиваем по весу перехода. В случае одинакового веса для упорядочивания используем суммарный вес перехода, определяемый как общее количество дуг, связанных с обоими состояниями. Упорядоченную матрицу обозначим М.

При упорядочивании матрицы необходимо также учитывать правило, при котором в каждой последующей паре содержится одна компонента (состояние) из предыдущей пары, даже если эта пара имеет меньший вес P(i,j) или меньший суммарный вес. То есть это правило имеет приоритет перед другими.





Пары состояний, образующих матрицу Т




Вес перехода P(i, j)




Суммарный вес перехода







Упорядоченная матрица М




1

2




1




14







9

1




1

3




1




14







1

2




1

5




1




13







1

3




1

7




1




12







1

5




1

8




1




12







12

1




2

9




1




10







1

7




3

4




2




7







1

8




5

6




2




7







10

1

T=

6

2




1




8




M=

9

11




6

3




1




8







6

2




7

9




1




8







3

4




8

9




1




8







2

9




9

1




1




16







6

3




9

10




1




8







7

9




9

11




1




9







8

9




10

1




1




12







9

10




11

12




2




6







5

6




12

1




1




13







11

12




  1. Состояния первой строки матрицы М кодируем начальными кодовыми комбинациями

к( ) = 0000, к( ) = 0001.

  1. Для незакодированного состояния второй строки а2 составляем дополнительную матрицу , где ɣ обозначено незакодированное состояние второй строки, равное его номеру. В матрицу введём все строчки, содержащие ɣ.

. Множество уже закодированных состояний, содержащихся в матрице M6, равно .

  1. Составляем множество кодовых комбинаций для состояния (a6) с учётом условий соседнего кодирования. Для подбора кодов можно использовать карту Карно. Составим карту Карно для трёх переменных и запишем закодированные состояния a9 и a1 в соответствии с их кодами в клетки карты Карно.


х1 х2





х3x4



00

01

11

10

00

а9

*




*

01

а1

*




*

11

*










10

*











Так как в переходе а6 а2 состояние а6 не закодировано, то для нахождения кода для состояния а2 используется только переходы а1 – а2 и а2 – а9. Отметим звёздочками соседние к уже закодированным состояниям а9и а1 клетки карты Карно, получим: для к(а9) = 0000 и к(а9) = 0001 – множество соседних клеток (кодов)

Для каждой кодовой комбинации из вычисляем .
Таблица 3

Расчёт функции W при выборе кода для состояния

Соседние коды по карте Карно (множество )

Состояние и код

Функция W

W = ∑P(i,j)*d(i,j)

= 0000

= 0001

Вес перехода из в

Кодовое расстояние d(9,2)

Вес перехода из в

Кодовое расстояние d(1,2)

0100

1

1

1

2

3

0101

1

2

1

1

3

0011

1

2

1

1

3

1000

1

1

1

2

3

1001

1

2

1

1

3

Функция Wимеет одинаковое значение для всех кодов, поэтому можно выбрать любой, возьмём по порядку написания код 0100, то есть к(а2) = 0100.

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

Для третьей строки в переходе а1 – а3 не закодировано состояние а3.

. Множество уже закодированных состояний, содержащихся в матрице М3, равно В3 = {1}.


х3x4



00

01

11

10

00

а9

а2







01

а1

*




*

11

*










10














х1 х2




Таблица 4

Расчёт функции W при выборе кода для состояния

Соседние коды по карте Карно (множество )

Состояние и код

Функция W

W = ∑P(i,j)*d(i,j)

= 0001

Вес перехода из в

Кодовое расстояние d(1,3)

0101

1

1

1

0011

1

1

1

1001

1

1

1

Возьмём по порядку написания код 0101, то есть к(а3) =0101.

Для четвёртой строки в переходе а1 – а5 не закодировано состояние а5.

. Множество уже закодированных состояний, содержащихся в матрице M5, равно B5 = {1}.


х1 х2





х3x4



00

01

11

10

00

а9

а2







01

а1

а3




*

11

*










10















Таблица 5

Расчёт функции W при выборе кода для состояния


Соседние коды по карте Карно (множество )

Состояние и код

Функция W

W = ∑P(i,j)*d(i,j)

= 0001

Вес перехода из в

Кодовое расстояние d(1,5)

0011

1

1

1

1001

1

1

1


Возьмём по порядку написания код 0101, то есть к(а5) =0011.

Для пятой строки в переходе не закодировано состояние а12.

. Множество уже закодированных состояний, содержащихся в матрице M1, равно B1 = {1}.



х3x4



00

01

11

10

00

а9

а2







01

а1

а3




*

11

а5










10














х1 х2




Получим код к(а12) = 1001.

Для шестой строки в переходе а6 – а2 не закодировано состояние а6.

. Множество уже закодированных состояний, содержащихся в матрице M7, равно В7 = {2, 3, 5}.


х1 х2





х3x4



00

01

11

10

00

а9

а2

*




01

а1

а3

*

а12

11

а5

*




*

10

*











Таблица 6

Расчёт функции W при выборе кода для состояния

Соседние коды по карте Карно (множество )

Состояние и код

Функция W

W = ∑P(i,j)*d(i,j)

= 0100

= 0101

Вес перехода из в

Кодовое расстояние d(2,6)

Вес перехода из в

Кодовое расстояние d(3,6)

1100

1

1

1

2

3

1101

1

2

1

1

3

0111

1

2

1

1

3

1011

1

4

1

3

7

0010

1

2

1

3

5


Возьмём по порядку написания код 1100, то есть к(а6) =1100.

Для седьмой строки в переходе а9 – а11 не закодировано состояние а11.

. Множество уже закодированных состояний, содержащихся в матрице M11, равно В11 = {9,12}.




х3x4



00

01

11

10

00

а9

а2

а6

*

01

а1

а3

*

а12

11

а5







*

10

*











х1 х2




Таблица 7

Расчёт функции W при выборе кода для состояния

Соседние коды по карте Карно (множество )

Состояние и код

Состояние и код

Функция W

W = ∑P(i,j)*d(i,j)

= 011

= 100

Вес перехода из в

Кодовое расстояние d(6,7)

Вес перехода из в

Кодовое расстояние d(1,7)




1000

1

1

2

1

3

1101

1

3

2

1

5

1011

1

3

2

1

5

0010

1

1

2

3

7


Возьмём код к(а11) = 1000.
Для восьмой строки в переходе а7 – а9 не закодировано состояние а11.

. Множество уже закодированных состояний, содержащихся в матрице M11, равно В11 = {9,12}.



х3x4



00

01

11

10

00

а9

а2

а6

а11

01

а1

а3




а12

11

а5










10

*










Получается код к(а7) = 0010.

А
х1 х2

налогично для остальных состояний получаем к(а4) = 1011, к(а8) = 1111,

к(а10) = 1110.

Таким образом, состояния автомата получили следующие коды: к(а1) = 0001, к(а2) = 0100, к(а3) = 0101, к(а4) = 1011, к(а5) = 0011, к(а6) = 1100, к(а7) = 0010,

к(а8) = 1111, к(а9) = 0000, к(а10) = 1110, к(а11) = 1000, к(а12) = 1001.

1   2   3   4   5   6


написать администратору сайта