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

Хороший материал для К.Р. и так почитать

.pdf
Скачиваний:
111
Добавлен:
15.09.2014
Размер:
1.27 Mб
Скачать

Как видно, выполнение операции 3 уменьшает число единиц в строках матрицы Х. Операции 2 и 3 повторяются до тех пор, пока в каждой строке матрицы Хчисло единиц будет не более чем k.

4. Для i-й строки матрицы Хв получаемую систему уравнений вносится уравнение Ki = zi1 zi2 ... zi p (i = 1, 2, … , т), где т – число строк матрицы

Х, zi j (j = 1, 2, … , p) – литерал, соответствующий столбцу, с единицей в i

строке матрицы Х, р – число единиц в i-й строке матрицы Х.

В результате выполнения описанных действий получим систему уравнений, описывающую ту часть синтезируемой схемы, которая реализует элементарные конъюнкции из заданной системы ДНФ.

17.2. Реализация дизъюнкций

Для реализации дизъюнкций выполняются следующие действия, в основном подобные тем действиям, которые выполнялись при реализации конъюнкций.

1.Путем транспонирования матрицы Y получается матрица Y.

2.В матрице Yотыскивается минор, содержащий только единицы и образованный не более чем k столбцами и как можно большим числом строк.

3.Все единицы матрицы Y, входящие в полученный минор, заменяются нулями, в матрицу Yдобавляется столбец gj + 1, где j – число столбцов, которое

кданному моменту приобрела матрица Yв результате выполнения рассматриваемых действий. Этот столбец имеет единицы в строках минора и нули – в остальных строках. В формируемую систему уравнений вносится

уравнение gj + 1 =

zi

zi

2

... zi

p

, где zi

j

(j = 1, 2, … , p) – литерал,

 

1

 

 

 

 

соответствующий столбцу, входящему в выделенный минор.

Так же, как в предыдущем процессе, операции 2 и 3 повторяются до тех пор, пока в каждой строке матрицы Yчисло единиц будет не более чем k.

4. Для i-й строки матрицы Yв получаемую систему уравнений вносится уравнение уi = zi1 zi2 ... zi p (i = 1, 2, … , т), где т – число строк матрицы

Y, zi j (j = 1, 2, … , p) – литерал, соответствующий столбцу, с единицей в i

строке матрицы Y, р – число единиц в i-й строке матрицы Y.

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

131

17.3. Пример

Для демонстрации описанного метода зададим базис элементов с числом входных полюсов 2 и возьмем в качестве примера систему ДНФ, заданную следующей парой матриц:

 

x1

x2

x3

x4

 

 

y1

y2

y3

 

 

0 1

1

 

 

1 0

1

1

 

 

1

1

1

1

 

 

 

 

1

 

2

 

 

 

 

 

0

0

Х =

 

0

0

1

 

,

Y =

1 1

1

3 .

 

 

0

1

0

0

 

 

 

 

0

 

4

 

 

 

 

 

0

1

 

1 0

0

 

 

0 1

0

5

 

 

 

 

0

0

 

 

 

 

0

 

6

 

0

 

 

 

1

0

В результате преобразования матрицы Х получим следующую матрицу:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x1

x2

x2

x3

x3

x4

x4

 

0

1

1

0

1

0

0

0

 

 

0

1

0

1

0

1

 

 

 

1

0

Х=

 

1

0

0

0

1

1

 

 

0

0 .

 

0

1

1

0

0

1

0

1

 

1

0

0

1

0

1

0

0

 

 

0

0

1

0

1

0

 

 

 

0

1

В этой матрице замечаем минор, образованный строками 1, 2 и столбцами х1, х2. Выполняя пункты 2 и 3 процесса реализации конъюнкций, получаем следующие матрицу и уравнение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x1

x2

x2

x3

x3

x4

x4

g1

 

 

 

0

1

0

0

0

0

0

0

1

 

 

 

 

0

0

0

0

0

1

0

 

 

 

 

1

1

 

 

Х=

 

1

0

0

0

1

1

0

 

, g1

= x2 x3.

0

0

 

0

1

1

0

0

1

0

1

0

 

 

 

1

0

0

1

0

1

0

0

0

 

 

 

 

0

0

1

0

1

0

1

 

 

 

 

0

0

 

 

Повторяя те же действия, получаем следующие матрицы и уравнения:

132

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x1

x2

x2

x3

x3

x4

x4

g1

g2

 

 

0

1

0

0

0

0

0

0

1

0

 

 

 

0

0

0

0

0

1

0

1

 

 

 

1

0

 

Х=

0 0 0

0

0

0

1

0

0

1

, g2 = x1 x3;

 

 

0

1

0

0

0

0

1

0

 

 

 

0

1

 

 

1

0

0

1

0

1

0

0

0

0

 

 

 

0

0

1

0

1

0

1

0

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x1

x2

x2

x3

x3

x4

x4

g1

g2

g3

 

 

0

1

0

0

0

0

0

0

1

0

0

 

 

 

0

0

0

0

0

1

0

1

0

 

 

 

1

0

 

Х=

0 0 0

0

0

0

1

0

0

1

0

, g3 = x2 x3;

 

 

0

1

0

0

0

0

1

0

1

 

 

 

0

0

 

 

1

0

0

0

0

0

0

0

0

0

1

 

 

 

0

0

0

0

0

0

1

0

0

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x1

x2

x2

x3

x3

x4

x4

g1

g2

g3

g4

 

 

 

0

1

0

0

0

0

0

0

1

0

0

0

 

 

 

 

0

0

0

0

0

0

0

1

0

0

 

 

 

 

0

1

 

 

Х=

 

0

0

0

0

0

1

0

0

1

0

 

, g4

= x1 x4;

0

0

 

0

0

1

0

0

0

0

1

0

1

0

0

 

 

 

1

0

0

0

0

0

0

0

0

0

1

0

 

 

 

 

0

0

0

0

0

0

1

0

0

1

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x1

x2

x2

x3

x3

x4

x4

g1

g2

g3

g4

g5

 

 

0

1

0

0

0

0

0

0

1

0

0

0

0

 

 

 

0

0

0

0

0

0

0

1

0

0

1

 

 

 

0

0

 

Х=

0 0 0

0

0

0

1

0

0

1

0

0

0

, g5 = x2 x4.

 

 

0

0

0

0

0

0

0

0

1

0

0

 

 

 

0

1

 

 

1

0

0

0

0

0

0

0

0

0

1

0

0

 

 

 

0

0

0

0

0

0

1

0

0

1

0

 

 

 

0

0

 

В последней матрице все строки имеют ровно по две единицы. Им

соответствуют уравнения K1 = x1 g1, K2 = g1 g4, K3 = x4 g2, K4 = g2 g5, K5 = x1 g3,

K6 = x4 g3.

133

Результатом транспонирования матрицы Y является матрица

 

K1 K2 K3 K4 K5 K6

y

Y=

1

0

1

0

0

1

 

1

1

0

1

 

1 .

 

0

0

y2

 

 

0

1

1

0

 

y3

 

1

0

Эта матрица имеет только один минор с единицами, содержащий более одной строки. Он образован строками у1, у3 и столбцами K1, K3. Для уменьшения числа единиц в строке у2 берем однострочный минор со столбцами K2, K3. В результате получаем следующую матрицу и соответствующие уравнения:

K1 K2 K3 K4 K5 K6 g6 g7

y

 

0 0 0

0

0

1

1

0

K2, g7 = K2 K3.

Y=

0

0

0

1

0

0

 

1 , g6 = K1

0

1

y2

 

 

0

0

1

0

0

1

 

y3

 

0

0

 

Полное описание схемы представляется следующей системой уравнений:

g1 = x2 x3; g2 = x1 x3; g3 = x2 x3; g4 = x1 x4;

g5 = x2 x4; K1 = x1 g1; K2 = g1 g4; K3 = x4 g2;

K4 = g2 g5;

g6 = K2 K3;

K5 = x1 g3;

у1 = K6 g6;

K6 = x4 g3;

у2 = K5 g7;

g6 = K1 K2;

у3 = K4 g6.

134

Г л а в а 18

Конечный автомат. Типы

18.1. Автомат с памятью

До сих пор рассматривались устройства, не обладающие памятью. Такие устройства в любой момент времени на любую комбинацию входных двоичных сигналов реагируют однозначно, т. е. каждой комбинации двоичных сигналов на входе устройства соответствует определенная комбинация двоичных сигналов на выходе независимо от того, какие сигналы приходили на вход раньше. Отсюда происходят названия «комбинационный автомат» или

«комбинационная схема».

Общепринятой моделью поведения такого устройства является система булевых функций. Комбинации двоичных сигналов иногда удобно обозначать абстрактными символами или буквами некоторого заданного алфавита. Пусть имеется входной алфавит А = {a1, a2, … , aα} и выходной алфавит В = {b1, b2, … , bβ}. Тогда общий вид описания поведения комбинационного автомата можно представить табл. 18.1, где bi j В. Эта таблица является

аналогом таблицы истинности. Она полностью определяет алгоритм функционирования заданного устройства.

Таблица 18.1 Пример задания комбинационного автомата

Вход

Выход

а1

bi

 

1

а2

bi2

 

 

аα biα

Часто алгоритм функционирования устройства бывает таким, что простым соответствием вида табл. 18.1 его задать невозможно. Для его описания необходимо ввести время, и работа устройства рассматривается во времени. Время носит дискретный характер, т. е. течение времени представляется как последовательность моментов. В любой момент времени устройство принимает сигнал на входе и выдает сигнал на выходе. В различные моменты устройство может реагировать на один и тот же входной сигнал по-разному. Пусть, например, на вход устройства с входным и выходным алфавитами А = {a1, a2, а3, a4} и В = {b1, b2, b3} пришла последовательность сигналов

a1 a1 а3 a2 a2 а4 a3,

135

а на выходе наблюдается последовательность сигналов

b2 b3 b2 b1 b3 b2 b1.

В первый момент времени устройство на входной сигнал а1 реагировало выходным сигналом b2, а во второй момент на тот же сигнал – сигналом b3. На сигналы а2 и а3 в разные моменты оно реагировало также по-разному, т. е. поведение устройства нельзя описать тем же способом, что использовался для описания поведения комбинационного автомата.

Эта неоднозначность устраняется, если ввести понятие внутреннего состояния или просто состояния. Тогда то, что устройство реагирует на один и тот же сигнал в разные моменты по-разному, можно объяснить так, что оно находится при этом в разных состояниях. Приняв входной сигнал, устройство выдает выходной сигнал и может перейти в другое состояние.

Состояния образуют множество Q = {q1, q2, … , qγ}. Тогда алгоритм функционирования устройства можно представить совокупностью строк вида

(ai, qj) (qs, bt),

где ai А, bt В, qj, qs Q. Устройство, поведение которого можно задать в таком виде, носит название «автомат с памятью» или «последовательностный автомат». Последний термин заключает в себе смысл отображения входной последовательности в другую.

Соответствие (ai, qj) (qs, bt) можно задать таблицей, подобной табл. 18.1, где фактически представлены две функции, определенные на множестве A × Q. Областью значений одной функции является множество Q, другой функции – множество В.

Моделью описанного устройства является конечный автомат, представляющий собой совокупность следующих объектов:

А= {a1, a2, … , aα} – множество входных символов, или входной алфавит;

В= {b1, b2, … , bβ} – множество выходных символов, или выходной алфавит;

Q = {q1, q2, … , qγ} – множество состояний, или внутренний алфавит; Ψ : A × Q Q – функция переходов;

Φ : A × Q В – функция выходов.

Для конечного автомата используется обозначение (A, B, Q, Ψ, Φ). Слово «конечный» подчеркивает, что все три множества, входящие в состав данной модели, конечны. В том виде, в каком эта модель здесь представлена, она носит название «автомат Мили». Другой разновидностью данной модели является автомат Мура, отличающийся от автомата Мили только тем, что функция выходов не зависит от входного символа, т. е. представляет собой отображение

Φ : Q В.

136

Значением функции Ψ(a, q) является состояние q+, в которое переходит автомат из состояния q, если на вход его подан символ а. Значением функции Φ(a, q) является выходной символ, выдаваемый автоматом в состоянии q при поступлении на его вход символа а, а значением функции Φ(q) автомата Мура – выходной символ b, который выдает автомат, находясь в состоянии q. Если значения функций Ψ(a, q) и Φ(a, q) определены для любой пары значений аргументов а и q, а в модели Мура функция Φ(q) определена для всех значений q, то автомат является полностью определенным, или полным автоматом. Иногда приходится иметь дело с не полностью определенным, или частичным

автоматом, у которого эти функции могут быть определены не везде.

Конечный автомат является абстрактной математической моделью дискретного устройства. Поведение, описанное данной моделью, может быть по-разному реализовано в дискретном устройстве. При синхронной реализации моменты времени, когда определяется состояние, в которое переходит устройство, а в случае автомата Мили и выходной символ, зафиксированы. Технически это осуществляется введением генератора синхронизирующих сигналов, которые инициируют соответствующие действия. Период следования таких сигналов не должен быть меньше чем время, необходимое для завершения переходных процессов в устройстве. Реализованный таким образом конечный автомат называется синхронным автоматом.

При асинхронной реализации указанные моменты времени не фиксированы. Они связаны с моментами, в которые происходит изменение входного сигнала. Реализованный таким образом автомат называется асинхронным автоматом. Если синхронный автомат различает последовательности разной длины из одинаковых входных символов, т. е. может реагировать на них различными выходными последовательностями, то асинхронный автомат воспринимает последовательность одинаковых входных символов любой длины как один символ. В схеме такого устройства генератор синхронизирующих сигналов отсутствует.

В асинхронном автомате переход из состояния в состояние происходит за некоторый конечный промежуток времени, в течение которого не должен меняться входной сигнал. При действии любого входного сигнала автомат приходит в некоторое устойчивое состояние, из которого он не выходит до конца действия данного сигнала. При этом должно выполняться требование прямого перехода, которое формально выражается следующим образом: если Ψ(a, qi) = qj, то Ψ(a, qj) = qj. Иногда допускается выполнение следующей цепочки переходов: Ψ(a, qi) = qr, Ψ(a, qr) = qs, … , Ψ(a, qt) = qj, Ψ(a, qj) = qj.

18.2. Представления автомата

Конечный автомат удобно представлять таблицей переходов и таблицей выходов. Строкам этих таблиц соответствуют состояния автомата, столбцам – входные символы. На пересечении строки, соответствующей состоянию q, и

137

столбца, соответствующего входному символу а, в таблице переходов записывается значение Ψ(a, q), а в таблице выходов – значение Φ(a, q). Другими словами, в первом случае в клетке таблицы указывается состояние, в которое автомат переходит из состояния q при поступлении на его вход символа а, а во втором случае – выходной символ, который при этом выдает автомат. Табл.18.2 и табл.18.3 представляют собой пример описанного представления автомата Мили, у которого А = {a1, a2, a3, a4}, В = {b1, b2} и

Q = {q1, q2, q3}.

 

 

Таблица 18.2

 

 

 

Таблица 18.3

 

Функция Ψ

 

 

 

 

Функция Φ

 

 

q1

a1

a2

a3

a4

q1

a1

 

a2

a3

a4

q1

q2

q1

q2

 

b1

 

b1

b2

 

b1

 

q2

q3

q1

q3

q1

 

q2

b1

 

b2

b2

 

b1

 

q3

q3

q1

q1

q1

 

q3

b2

 

b2

b1

 

b1

 

Зная начальное состояние автомата и входную последовательность, нетрудно получить по этим таблицам соответствующую последовательность выходных символов. Приведем пример такого соответствия для автомата, заданного табл. 18.2 и 18.3, на вход которого поступила последовательность символов а1, а2, а2, а1, а3, а4, а1, а4 при начальном состоянии q1. Покажем также состояния, которые проходит автомат:

а1

а2

а2

а1

а3

а4

а1

а4

q1

q1

q2

q1

q1

q1

q2

q3

b1

b1

b2

b1

b2

b1

b1

b1.

Автомат Мура представляется одной таблицей переходов, к которой добавлен один столбец со значениями функции выходов (табл. 18.4).

Можно свести таблицу переходов и таблицу выходов автомата Мили в одну таблицу, которую называют таблицей переходов и выходов. Такая таблица для автомата, заданного в виде табл. 18.2 и табл. 18.3, имеет вид табл. 18.5.

Более наглядным при небольшом числе состояний является представление автомата в виде графа поведения автомата, который представляет собой ориентированный граф. Его вершины соответствуют состояниям автомата, а дуги – переходам между состояниями. При этом дуга помечается всеми входными символами, которые вызывают соответствующий переход, и выходными символами, сопровождающими данный переход (в случае автомата Мили). В случае автомата Мура выходными символами помечаются вершины, соответствующие состояниям, в которых находится автомат при выдаче данных символов. На рис. 18.1 изображены графы переходов автоматов, заданных табл. 18.4 и 18.5.

138

 

 

 

 

 

Таблица 18.4

 

 

 

 

 

 

Таблица 18.5

Таблица переходов автомата Мура

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

автомата Мили

 

 

 

 

q1

a1

a2

a3

a4

Φ

q1

 

 

a1

 

a2

 

a3

a4

 

q1

 

q2

q1

q2

b1

 

 

q1,b1

 

q2,b1

 

q1,b2

 

q2,b1

 

 

q2

q3

 

q1

q3

q1

b1

 

q2

 

q3,b1

 

q1,b2

 

q3,b2

 

q1,b1

 

 

q3

q3

 

q1

q1

q1

b2

 

q3

 

q3,b2

 

q1,b2

 

q1,b1

 

q1,b1

 

 

 

 

 

a1, a3

 

 

 

 

 

 

 

 

 

 

a1/b1, a3/b2

 

 

 

 

 

q1, b1

 

 

a2/b1, a4/b1

 

 

q1 a2/b2, a3/b1, a4/b1

 

 

 

 

 

 

 

 

 

 

 

a2, a4

a2, a4

 

 

a2, a3, a4

 

 

 

 

 

a2/b2, a4/b1

 

 

a1/b2

 

 

 

 

 

 

a1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q2, b1

 

 

 

 

q3, b2

 

q2

 

 

 

q3

 

a1, а3

 

 

 

 

 

 

 

 

a1/b1, а3/b2

 

 

 

а)

 

 

 

 

 

 

 

 

 

б)

 

 

 

 

 

 

Рис. 18.1. Примеры графов поведения: а) автомата Мура; б) автомата Мили

Еще одним способом представления автомата является матрица поведения, представляющая собой квадратную матрицу, строки и столбцы которой помечаются состояниями автомата. В случае автомата Мура на пересечении строки qi и столбца qj матрицы поведения записываются входные символы, переводящие автомат из состояния qi в состояние qj, а строки помечаются также и выходными символами. В случае автомата Мили элементы матрицы поведения, кроме входных символов, вызывающих соответствующие переходы, содержат выходные символы, которые сопровождают эти переходы. Если из состояния qi нет перехода в состояние qj, то на пересечении строки qi и столбца qj ставится прочерк. Для рассмотренных автоматов ниже представлены матрицы поведения, причем первая из них – матрица поведения автомата Мура, вторая – матрица поведения автомата Мили.

q1,b1 q2 ,b1 q3,b2

 

 

 

q1

 

 

 

q2

q3

 

 

a1, a3

 

a2

, a4

 

,

 

q

2

, a

4

 

 

a

 

a

 

 

 

 

 

 

1

 

 

2

, a

, a

4

 

a

 

 

 

 

3

 

 

 

 

1

 

 

139

q1 q2 q3 a2

 

 

q1

 

 

 

 

q2

 

q3

 

a1 / b1, a3 / b2

a2

/ b1

, a4 / b1

a

 

a

2

/ b ,

a

4

/ b

 

 

/ b

.

 

2

 

1

 

 

1

1

 

/ b3 , a3 / b1, a4 / b1

 

 

a1 / b2

18.3. Связь между моделями Мили и Мура

Всякое отображение входных последовательностей в выходные может быть реализовано как с помощью модели Мили, так и с помощью модели Мура. Определим преобразование, переводящее любой автомат Мили в эквивалентный ему автомат Мура, а также преобразование, переводящее любой автомат Мура в эквивалентный ему автомат Мили.

Пусть задан автомат Мура М = (A, B, Q, Ψ, Φ) и требуется получить

эквивалентный ему автомат Мили М = (A , B , Q , Ψ , Φ ).

Очевидно, А = А и В = В. Положим Q = Q и Ψ = Ψ, а Φ определим следующим образом. Пусть Ψ(a, q) = qи Φ(q) = b, где q, qQ, a А и b В. Это означает, что автомат, будучи в состоянии q, отвечает на входной символ а выходным символом b, который выдается в следующий момент времени, когда автомат окажется в состоянии q. Следовательно, можно считать, что Φ (а, q) = b. Автомат Мура и эквивалентный ему автомат Мили представлены в табл. 18.6 и 18.7 соответственно.

Пусть теперь задан автомат Мили М = (A, B, Q, Ψ, Φ) и требуется получить эквивалентный ему автомат Мура М = (A , B , Q , Ψ , Φ ). Как и в предыдущем случае, имеем А = А и В = В. Определим Q следующим образом. Рассмотрим все такие пары вида (q, b), где q Q, b B, что для каждой (q, b) имеется такая пара (a, q), что Ψ(a, q) = q и Φ(a, q) = b (a A, qQ). Каждой паре (q, b) поставим в соответствие состояние q Q и определим функции Ψ и Φ следующим образом:

Ψ (a, q ) = Ψ (a, (q, b)) = (Ψ(a, q), Φ(a, q));

Φ (q ) = Φ ((q, b)) = b.

 

 

Таблица 18.6

 

 

 

Таблица 18.7

q1

a1

a2

a3

Φ

q1

 

a1

a2

a3

q3

q2

q2

0

 

 

q3,0

q2,1

q2,1

 

q2

q1

q4

q3

1

 

q2

 

q1,0

q4,1

q3,0

 

q3

q2

q2

q1

0

 

q3

 

q2,1

q2,1

q1,0

 

q4

q3

q4

q4

1

 

q4

 

q3,0

q4,1

q4,1

 

Если автомат имеет состояние, в которое он никогда не переходит (это может быть начальное состояние), то всякому такому состоянию ставится в

140