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

discrete_math

.pdf
Скачиваний:
39
Добавлен:
30.03.2015
Размер:
1.47 Mб
Скачать

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

Определение. Подмножество вершин источника G называется замкнутым, если вместе с каждой вершиной v из этого подмножества ему принадлежат также все вершины, в которые из v идет пустая дуга.

Пример 2. Воспользовавшись тем, что у нас уже имеется источник для распознавания языка L, заданного регулярным выражением a·b + с*, решим для него задачу синтеза.

Поскольку в этом источнике пять вершин, то из них можно образовать 25 подмножеств. Однако нам потребуются только замкнутые подмножества, достижимые из начальной вершины s. Через М1 обозначим минимальное замкнутое подмножество, содержащее начальную вершину s. Очевидно, М1 = {s, u1, t}. Через М2 обозначим замкнутое подмножество, образованное только теми вершинами, в которые можно попасть из вершин множества М1 по словам вида а(Λ)k, где k = 0, 1, 2, … . Иными словами, М2 – это минимальное замкнутое подмножество, которое содержит концы всех дуг, выходящих из вершин подмножества М1 и помеченных символом а. В данном примере М2 = {v2}. Затем аналогично строим минимальные замкнутые подмножества М3 и М4, которые содержат концы всех дуг, помеченных меткой b и с соответственно и выходящих

из вершин подмножества М1. В данном cлучае М3 = , М4 = {u1, u2, t}. Далее получаем замкнутые подмножества, достижимые из М2, М3 и М4 по словам вида а(Λ)k, b(Λ)k и с(Λ)k, и т.д.

 

а

b

c

Эта таблица заполняется по строкам сверху вниз до тех пор, пока в

 

 

 

 

первом столбце

не

окажутся

перечислены

все

подмножества,

М1={s, u1, t}

М2={v2}

М3=

М4={u1, u2, t}

встречающиеся

в

остальных

столбцах

таблицы. Каждое

М2={v2}

М3=

М5={t}

М3=

подмножество из

первого

столбца

соответствует

какому-либо

М3=

М3=

М3=

М3=

состоянию искомого

детерминированного автомата.

Начальному

М4={u1, u2, t}

М3=

М3=

М4={u1, u2, t}

состоянию автомата всегда соответствует подмножество М1, а его

 

 

 

 

заключительным

состояниям

все

замкнутые

подмножества,

М5={t}

М3=

М3=

М3=

содержащие заключительную вершину t. В данном случае автомат

будет иметь следующие пять состояний (для удобства обозначим их цифрами): 1 = {s, u1, t}, 2 = {v2}, 3 =

, 4 = {u1, u2, t}, 5

= {t}.

 

 

 

 

 

 

 

 

 

 

 

 

Начальным состоянием является состояние 1, а заключительными – 1, 4 и 5. Дуга, помеченная выражением a + b + с, заменяет три параллельных дуги, одна из которых имеет метку a, другая – b, а третья – с.

 

1

a

2

 

а

b

c

 

 

 

 

 

 

 

 

 

 

 

 

 

c

b

a+c

b

1

2

3

4

 

 

 

 

4

 

3

5

2

3

5

3

 

 

 

a+b

 

a+b+c

3

3

3

3

 

 

 

 

 

 

 

 

c

 

a+b+c

 

4

3

3

4

 

 

 

 

 

 

 

 

5

3

3

3

 

 

 

 

 

 

 

 

 

 

 

 

48. Эквивалентные состояния автомата-распознавателя, эквивалентные автоматы-распознаватели, минимизация автоматов-распознавателей, алгоритм Мили.

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

Определение. Состояния vk и vi автоматов Т и Т΄ соответственно называются эквивалентными, если для любого входного слова γ А* выходные слова Т(γ, vk) и Т΄(γ, vi) совпадают.

Рассмотрим алгоритм Мили, с помощью которого можно за конечное время узнать, эквивалентны ли интересующие нас состояния произвольного автомата Т с функциями выходов и переходов f и g. На первом этапе множество V состояний автомата разбивают на непересекающиеся классы. Два состояния v′ и v″ помещают в один и тот же класс только тогда, когда для любого входного символа а А соответствующие выходные символы f(a, v′) и f(a, v″) совпадают. Если же найдется символ а А, такой что f(a, v′) ≠ f(a, v″), то состояния v′ и v″ относят к разным классам. На каждом последующем этапе производится расщепление некоторых полученных ранее классов на новые непересекающиеся классы. Через C обозначим один из классов, полученных по окончании n-го этапа, и рассмотрим последовательность действий на (n + 1)-м этапе. Если при каждом а А и любых состояниях u′, u″ C новые состояния g(a, и′) и g(a, и″) принадлежат одному из классов, полученных по окончании n-го этапа, то на (n + 1)-м этапе класс C не расщепляется. Если же для некоторого а А найдутся такие u′, u″ C, что новые состояния g(a, и′) и g(a, и″) принадлежат разным классам, полученным по окончании n-го этапа, то на (n + 1)-м этапе класс С расщепляется. Будем говорить, что расщепление класса С произошло по этому входному символу а. После его расщепления состояния u′ и u″ помещают в разные новые классы. Эти новые классы расщепляются аналогичным образом до тех пор, пока это возможно. Как только процедуру расщепления нельзя будет применить ни к одному из образовавшихся классов, (n + 1)-й этап заканчивается.

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

31

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

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

Определение. Автомат называется минимальным, если все его состояния попарно неэквивалентны.

Задача минимизации состоит в построении минимального автомата, эквивалентного заданному. Очевидно, такой минимальный автомат существует для любого детерминированного конечного автомата. Чтобы его найти, сначала используют алгоритм Мили, позволяющий разбить все состояния исходного автомата на классы эквивалентности, а затем каждый класс эквивалентности объявляют состоянием искомого минимального автомата и получают его функции выходов и переходов.

Пример 1. Найдем классы эквивалентности автомата, заданного таблицей выходов и переходов. В таблице для краткости все состояния обозначены своими номерами и перечислены в первом столбце.

П е р в ы й э т а п. Находясь в состояниях 1, 2, 3 и 6, автомат преобразует входной символ a в выходной символ a, а в состояниях 4 и 5 преобразует а в b. Поэтому на первом этапе множество состояний V расщепляется по входному символу а на два класса: C1 = {1, 2, 3, 6} и C2 = {4, 5}. Заметим, что по входному символу b новые классы C1 и C2 не расщепляются.

В т о р о й э т а п. Класс C2 не расщепляется, т.к. из состояний 4 и 5 под действием входного сигнала а автомат переходит в состояния 6 и 3, которые принадлежат одному классу C1, а под действием сигнала b – в состояние 1, которое тоже принадлежат классу C1.

Класс C1 расщепляется по символу а на два класса: C3 = {1, 3, 6} и C4 = {2}. Действительно, под действием входного символа а из состояний 1, 3 и 6 автомат переходит в состояния 2 и 1, которые принадлежат классу C1, а из состояния 2 – в состояние 5, которое классу C1 не

 

a

b

 

 

 

1

a, 2

b, 5

 

 

 

2

a, 5

b, 4

 

 

 

3

a, 1

b, 5

 

 

 

4

b, 6

a, 1

 

 

 

5

b, 3

a, 1

 

 

 

6

a, 1

b, 4

 

 

 

принадлежит. Поэтому группа состояний 1, 3 и

 

 

 

 

6 после

расщепления

класса C1 не

может

 

 

V = {1,2,3,4,5,6}

 

попасть в один новый класс вместе с

 

 

 

 

 

 

 

состоянием 2. Класс C3

далее не расщепляется,

 

C1 = {1,2,3,6}

C2 = {4,5}

поскольку под действием символа b автомат из

 

состояний 1, 3 и 6 попадает в состояния 5 и 4,

 

 

 

 

которые принадлежат одному классу C2. Таким

C3 = {1,3,6}

C4 = {2}

C2 = {4,5}

образом, по окончании второго этапа получаем

 

 

 

 

разбиение множества V на три класса:

C2 = {4,

C5 = {1}

C6 = {3,6}

C4 = {2}

C2 = {4,5}

5}, C3 = {1, 3, 6} и C4 = {2}.

 

 

 

 

 

 

Т р е т и й

э т а п.

Класс C4 не расщепляется,

C5 = {1}

C6 = {3,6}

C4 = {2}

C2 = {4,5}

поскольку

содержит всего одно состояние.

Класс C2

тоже

не

расщепляется,

т.к. из

 

 

 

 

состояний 4 и 5 под действием входного символа а автомат переходит в состояния 6 и 3, которые принадлежат одному классу C3, а под действием символа b – в одно и то же состояние 1.

Класс C3 расщепляется по символу а на классы C5 = {1} и C6 = {3, 6}. В самом деле, из состояния 1 под действием входного символа а автомат переходит в состояние 2, которое принадлежит классу C4, а из состояний 3 и 6 – в состояние 1, которое классу C4 не принадлежит. Значит, после расщепления класса C3 состояние 1 не должно попасть в один новый класс вместе с группой состояний 3 и 6. Состояния 3 и 6, наоборот, после расщепления C3 обязательно попадут в один класс, поскольку из этих состояний по входному символу b автомат переходит в состояния 5 и 4, принадлежащие классу C2. Таким образом, по окончании третьего этапа множество V оказалось разбито на четыре класса: C2 = {4, 5}, C4 = {2}, C5 = {1} и C6 = {3, 6}.

Ч е т в е р т ы й э т а п. Ни один из классов C2, C4, C5 и C6 не расщепляется. Следовательно, алгоритм завершил работу, а полученные множества C2, C4, C5 и C6 являются классами эквивалентности. Это означает, например, что состояния 4 и 5 эквивалентны друг другу, но не эквивалентны никакому другому состоянию автомата.

Пример 2. Решим задачу минимизации автомата, рассмотренного в примере 1. Поскольку нам уже известно разбиение множества его состояний на классы эквивалентности, оставим по одному состоянию из каждого класса {4,5}, {2}, {1} и {3,6}. Пусть, например, это будут состояния 4, 2, 1 и 3. Состояния 5 и 6 удалим. Тогда искомый минимальный автомат будет иметь четыре состояния.

Чтобы получить его таблицу выходов и переходов, нужно в таблице, задающей исходный

 

a

b

автомат, вычеркнуть последние две строки (т.к. они соответствуют удаленным состояниям 5 и

 

 

 

1

a, 2

b, 4

6), а в оставшихся строках заменить состояния 5 и 6 на эквивалентные им состояния 4 и 3

 

 

 

2

a, 4

b, 4

соответственно. В итоге получим таблицу выходов и переходов искомого минимального

 

 

 

автомата.

3

a, 1

b, 4

 

 

 

 

 

4

b, 3

a, 1

 

 

 

 

32

49. Эквивалентные состояния автомата-преобразователя, эквивалентные автоматыпреобразователи, минимизация автоматовпреобразователей, алгоритм Мили.

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

Определение. Состояния vk и vi автоматов Т и Т΄ соответственно называются эквивалентными, если для любого входного слова γ А* выходные слова Т(γ, vk) и Т΄(γ, vi) совпадают.

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

Определение. Автомат называется минимальным, если все его состояния попарно неэквивалентны.

Задача минимизации состоит в построении минимального автомата, эквивалентного заданному. Очевидно, такой минимальный автомат существует для любого детерминированного конечного автомата. Чтобы его найти, сначала используют алгоритм Мили, позволяющий разбить все состояния исходного автомата на классы эквивалентности, а затем каждый класс эквивалентности объявляют состоянием искомого минимального автомата и получают его функции выходов и переходов.

Пусть имеется автомат-распознаватель R с множеством заключительных состояний F. Через R(γ, vk) обозначим состояние, в котором окажется автомат, если он начинает работу над входным словом γ А* в состоянии vk.

Определение. Состояния vk и vi автоматов R и R΄ называются эквивалентными, если для любого входного слова γ А* либо оба состояния R(γ, vk) и R΄(γ, vi) одновременно являются заключительными, либо незаключительными.

Состояния vk и vi следует считать неэквивалентными, если найдется такое входное слово γ А*, для которого только одно из состояний R(γ, vk) и R΄(γ, vi) заключительное. Говорят, что такое входное слово позволяет различить состояния vk и vi. Эквивалентность двух автоматов-распознавателей означает совпадение языков, которые они распознают.

Используя с небольшими изменениями алгоритм Мили, все состояния автомата-преобразователя можно разбить на классы эквивалентности. Отличие состоит в том, что на первом этапе множество состояний V разбивается всегда на два класса – множество F заключительных состояний и множество V \ F всех остальных состояний. После окончательного разбиения множества V на классы эквивалентности можно решить задачу минимизации заданного автомата.

Пример. Минимизируем автомат, заданный таблицей переходов, в предположении, что начальным состоянием является 1, а

заключительным – состояние 6.

 

 

 

 

 

 

П е р в ы й

э т а п. Множество состояний V разбивается на два класса C = {6} и C = {1,

 

 

 

 

 

 

 

 

1

2

 

a

b

с

2, 3, 4, 5}, поскольку состояние 6 заключительное, а остальные – нет.

 

 

 

 

 

 

 

В т о р о й

э т а п.

Класс

C1 не расщепляется, поскольку

содержит

только одно

1

3

4

1

состояние. Класс C2

расщепляется на классы C3 = {1}, C4 = {2} и C5 = {3, 4, 5}. Состояния

2

4

5

6

3, 4 и 5 попали в один класс C5, т.к. из всех этих состояний по входным символам а и с

 

 

 

 

3

2

6

5

автомат переходит в состояния класса C2, а по символу b – в единственное состояние

 

 

 

 

4

2

6

4

класса C1.

 

 

 

 

 

Состояние 2 и группа состояний 1, 3, 4 и 5 при расщеплении C2

попали в разные классы,

5

2

6

3

поскольку из состояния 2

по входному символу с автомат переходит в состояние 6,

 

 

 

 

6

1

3

2

принадлежащее классу C , а из состояний 1, 3, 4 и 5 – в состояния класса C .

 

 

 

 

 

 

 

 

1

 

2

 

 

 

 

 

Состояние 1 и группа состояний 3, 4 и 5 оказались в разных классах,

поскольку из

 

 

 

 

состояния 1 по входному символу b автомат переходит в состояние 4, принадлежащее классу C2, а из состояний 3, 4 и 5 – в

состояние 6, принадлежащее классу C1.

 

 

 

 

 

 

Т р е т и й э т а п.

Ни

одно

из

множеств

C1 = {6},

C3 = {1},

C4 =

= {2} и C5 = {3, 4, 5} не расщепляется. Они являются классами эквивалентных состояний. Следовательно, эквивалентный исходному минимальный автомат имеет четыре состояния. Пусть его состояние 1 соответствует классу C3, состояние 2 – классу C4, состояние 3 – классу C5, а состояние 4 – классу C1. Тогда искомый минимальный автомат можно задать таблицей

переходов.

 

 

 

 

 

 

 

 

Она получается

из предыдущей таблицы вычеркиванием

строк, соответствующих

 

 

 

 

состояниям 4 и 5, и заменой в оставшихся строках состояний 4 и 5 на состояние 3, а

 

a

b

с

 

 

 

 

состояния 6 на 4. Начальным состоянием минимального автомата является состояние 1, а

1

3

3

1

заключительным – 4.

 

 

 

2

3

3

4

Когда требуется

выяснить, эквивалентны

ли два заданных

автомата,

достаточно их

 

 

 

 

3

2

4

3

минимизировать

и сравнить полученные

автоматы. Если

они имеют

разное число

 

 

 

 

4

1

3

2

состояний, то исходные автоматы не эквивалентны. Эквивалентными они будут только

 

 

 

 

тогда, когда функции выходов и переходов их минимальных автоматов совпадают с

 

 

 

 

точностью до переобозначения состояний.

 

 

 

 

 

 

 

50. Детерминированные и недетерминированные функции, примеры, способы задания.

Определение.

Функция

f Fk называется

детерминированной, если для

любого натурального

t и любых двух

последовательностей

~

~

таких, что (1)

(1), (2) (2), ..., (t) (t) ,

у соответствующих

последовательностей

,

~

~

~

~

первые t элементов тоже совпадают, т.е. y(1) z(1), y(2) z(2), ..., y(t) z(t) .

 

y

f ( )

и z

f ( )

 

 

 

 

 

 

 

 

 

 

33

Если функция является детерминированной, то для каждого t значение элемента у(t) однозначно определяется «прошлыми» входными значениями х(1), х(2),…, х(t – 1) и «настоящим» значением х(t), но не должно зависеть от «будущих» значений х(t + 1), х(t + 2), … .

Пример. Пусть требуется задать с помощью дерева детерминированную функцию f F3, выходная последовательность которой задана равенством у(t) = х(t) + 1 (mod 3), а элементы входной последовательности х(t) {0, 1, 2}.

Рассмотрим ориентированное от корня дерево, «растущее» бесконечно вверх. Корнем дерева является вершина v0. Из каждой вершины выходит по три дуги.

Дуги,

имеющие общее начало, пронумерованы слева направо числами 0,

1,

2, означающими одно из трех возможных

значений

элемента х(t)

входной

последовательности.

Каждая

входная

последовательность

~

порождает в

дереве

x

 

 

 

 

 

 

 

бесконечную ориентированную цепь, выходящую

 

 

 

 

 

 

 

из вершины v0. Кроме номера каждая дуга имеет

 

 

 

 

 

 

 

вторую

метку,

которая

показывает

 

 

 

 

 

 

 

соответствующее значение элемента у(t) выходной

 

 

1,2

 

1,2

 

1,2

последовательности при условии, что элемент х(t)

 

 

 

 

равен номеру дуги. Таким образом, пара чисел на

0,1

2,0

0,1

2,0

0,1

2,0

дуге

дерева, задающего

детерминированную

 

v1

 

v2

 

 

v3

 

 

 

 

функцию,

напоминает

пару меток

на

дуге

 

 

0,1

 

1,2

2,0

 

диаграммы

Мура

 

для

конечного

 

 

 

 

 

детерминированного автомата. Однако более

 

 

 

 

 

 

 

 

 

 

 

v0

 

 

удобным является представление функции в виде

 

 

 

 

 

 

конечного дерева, которое можно получить из

 

 

 

 

 

 

 

v1

v2

v3

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

вершин v1, v2 и v3

можно рассматривать как корень бесконечного дерева, «растущего» вверх из этой

 

 

 

 

 

 

вершины и являющегося поддеревом исходного дерева. Нетрудно видеть, что все эти три поддерева

0,1

 

1,2

эквивалентны исходному дереву, т.е. при совмещении всех четырех поддеревьев метки на их дугах

 

2,0

полностью совпадают. Поэтому из исходного дерева можно удалить поддеревья, растущие из

 

 

 

 

 

 

вершин v1, v2 и v3, сохранив сами эти вершины. В результате получим конечное дерево,

 

v0

изображенное на рисунке. По нему можно восстановить исходное бесконечное дерево. Поэтому

 

 

 

конечное дерево однозначно задает ту же детерминированную функцию.

 

 

 

 

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

Определение. Количество классов эквивалентности вершин в бесконечном дереве детерминированной функции называется весом этой функции.

51. Ограниченно-детерминированные (автоматные) функции, способы их задания.

Определение. Количество классов эквивалентности вершин в бесконечном дереве детерминированной функции называется весом этой функции.

Определение. Детерминированная функция из класса Fk называется автоматной (или ограниченно-детерминированной) функцией, если она имеет конечный вес.

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

Пример. Пусть требуется найти вес и построить диаграмму Мура автоматной функции f F2, выходная последовательность

которой задана равенством у(t) =

0,

при t 1,

 

 

х(t 1) x(t),

при t 2.

 

Заметим, что в данном случае х(t), у(t) {0, 1}.

 

 

 

 

 

 

 

 

 

 

 

На рисунке изображены четыре нижних яруса вершин бесконечного дерева, задающего функцию f.

 

 

 

 

Все дуги помечены парой чисел x(t), у(t).

Кроме того,

каждая вершина имеет числовую метку 0 или 1. Вершины с

 

 

 

 

 

 

 

 

одинаковой

меткой

принадлежат

одному

классу

0

1

0

1

0

1

0

1

эквивалентности, причем

нулем

помечен

корень

 

 

 

 

 

 

 

 

исходного

 

дерева

и

все эквивалентные ему

0,0

1,0

0,0

1,1

0,0

1,0

0,0

1,1

вершины. Таким образом,

заданная функция имеет

0

 

 

1

0

 

 

1

вес, равный

двум.

Следовательно,

она является

 

0,0

1,0

 

0,0

1,1

 

автоматной

функцией

и

может

быть

задана

 

 

 

конечным деревом. В нем должно быть ровно по

 

 

0

 

 

 

1

 

 

 

 

 

 

 

одной внутренней вершине из каждого класса

 

 

0,0

 

1,0

 

 

 

 

 

 

 

эквивалентности. Все остальные его вершины

 

 

 

 

0

 

 

 

должны быть концевыми. Такое конечное дерево

 

 

 

 

 

 

 

 

всегда

позволит

 

восстановить

исходное

бесконечное дерево. Конечное дерево, задающее автоматную функцию из примера 2, представлено на рисунке.

34

 

0

1 Теперь, чтобы получить диаграмму Мура для заданной автоматной функции, нужно

 

 

 

 

 

в конечном дереве отождествить вершины с одинаковыми метками. В данном 0

1,0

1

 

0,0

1,1 случае диаграмма Мура будет иметь две вершины и четыре дуги . Следовательно,

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

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

0,0

 

 

0,0

1,0

автоматную функцию. Начальным состоянием является 0.

0,0

1,1

 

 

 

 

0

 

 

 

 

 

 

 

 

y(t) Y (x(t), q(t 1)),

 

 

 

 

 

 

Q(x(t), q(t 1)),

 

 

 

Всякую автоматную функцию можно задать канонической системой уравнений вида q(t)

 

 

 

 

 

q(0) 0,

 

 

 

 

 

 

 

 

 

 

 

где функция Y – это функция выходов, Q – функция переходов, q(0) – начальное состояние автомата, вычисляющего данную автоматную функцию, а q(t – 1) и q(t) – состояния, в которых оказывается этот автомат соответственно в начале и в конце t- го такта. При этом предполагается, что множество состояний автомата V = {0, 1, 2, …, r – 1}. Функцию, рассмотренную в

примере, можно задать канонической системой

y(t)q(t)

q(0)

x(t) q(t 1),

x(t),

0,

где х(t), у(t), q(t)

{0, 1}.

52. Логические автоматы, способы их задания, синтез двоичного сумматора.

Описывая устройство с одним входом и одним выходом, можно использовать автомат, имеющий несколько входных и выходных каналов. Действительно, каждый символ входного и выходного алфавитов А и В можно закодировать набором длины n и m соответственно из более узкого алфавита, например {0,1}. Тогда автомат будет иметь n входных и m выходных каналов. Через xi(t), где i = 1, 2, …, n, обозначим сигнал, поступающий на i-й входной канал в начале t-го такта, а через уj(t), где j = 1, 2, …, т, – выходной сигнал на j-м канале по окончании t-го такта. Тогда можно считать, что автомат вычисляет сразу т автоматных функций f1, f2, …, fт, каждая из которых зависит от п аргументов (быть может, не от всех существенно). Если же состояния автомата также кодировать наборами длины k в алфавите {0,1}, то его можно будет задать канонической системой уравнений вида

y

 

(t) Y

(x

(t),...,x

n

(t), q (t 1),...,q

(t 1)),

 

1

 

1

 

 

 

1

 

 

 

 

1

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. . . . . . . . . . . . . . . . . . .

 

y

 

 

(t) Y

 

 

 

( x (t),...,x

 

(t), q

(t 1),...,q

 

(t 1)),

 

 

 

 

 

 

 

 

 

m

 

m

 

 

1

 

 

 

n

 

1

 

k

 

 

q

 

(t) Q

 

(x

 

(t),...,x

n

 

(t), q

(t 1),...,q

 

(t 1)),

1

 

1

 

 

1

 

 

 

 

1

 

k

 

 

. . . . . . . . . . . . . . . . . . .

q

 

(t) Q

 

 

(x

(t),...,x

n

(t), q

 

(t 1),...,q

k

(t 1)),

 

k

 

k

 

 

1

 

 

1

 

 

q (0) q

 

(0) ... q

 

 

(0) 0,

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

k

 

 

 

 

 

 

где

 

функции выходов

Y1, Y2, …, Ym

 

 

и переходов Q1, Q2, …, Qk – некоторые логические (булевы) функции. Конечный

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

Пример. Рассмотрим автомат с входным и выходным алфавитом {0,1}, заданный системой уравнений

 

 

 

y(3t 2)

 

,

 

(0,1) (1,0)

 

 

x(3t 2)

 

1

 

 

 

x(3t 1),

 

0

 

y(3t 1)

 

 

 

 

y(3t) 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,0)

(0,0)

где x

– отрицание х. Эта система канонической не

(1,0)

(1,1)

является. Требуется

получить

его

каноническую

 

систему. Заметим, что данный автомат выполняет

 

 

2

 

следующие преобразования входных сигналов: если

 

 

номер

такта равен

1,

4, 7,

…,

то автомат

«инвертирует» входной сигнал; если номер такта равен 2, 5, 8, …, то входной сигнал поступает на выход автомата без изменений; в остальные такты автомат выдает 0. В бесконечном дереве автоматной функции, вычисляемой этим

q1(t – 1)

q2(t – 1)

x(t)

q1(t)

q2(t)

y(t)

0

0

0

0

1

1

 

 

 

 

 

 

0

0

1

0

1

0

 

 

 

 

 

 

0

1

0

1

0

0

 

 

 

 

 

 

0

1

1

1

0

1

 

 

 

 

 

 

1

0

0

0

0

0

 

 

 

 

 

 

1

0

1

0

0

0

 

 

 

 

 

 

автоматом, имеется три класса попарно неэквивалентных вершин. Поэтому данный автомат имеет три состояния. Его диаграмма Мура изображена на рисунке. Начальное состояние 0 закодировано

парой 00, состояние 1 – парой 01, состояние 2 – парой 10. Такое правило кодирования состояний приводит к канонической таблице

 

 

 

y(t)

q (t 1) (q (t 1) x(t))

,

 

 

1

 

2

 

 

 

q2 (t 1),

Из неё уже нетрудно получить каноническую систему q1

(t)

 

 

 

 

 

 

 

 

q2 (t) q1(t 1) q2 (t 1),

q

(0)

q

2

(0) 0.

1

 

 

 

 

 

 

 

Данный автомат является логическим, поскольку в правой части всех канонических уравнений содержатся только булевы функции. Заметим, что при ином выборе кодировки состояний автомата его каноническая таблица и канонические уравнения будут иметь другой вид.

35

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

предыдущего такта, т.е. y(t + 1) = x(t). Единичную задержку можно задать канонической системой

Она моделирует работу простейшего элемента памяти.

Функциональный блок любого логического автомата можно синтезировать из функциональных из рассмотренных выше единичных задержек.

y(t) q(t 1),

q(t) x(t),

q(0) 0.

элементов, а его память –

53. Операции над логическими автоматами: суперпозиция и введение обратной связи.

Пусть имеется два автомата, один из которых вычисляет автоматную функцию f1, а другой – функцию f2. Если выход первого автомата подключить ко входу второго, то полученный автомат будет вычислять суперпозицию f2( f1). Очевидно, суперпозиция автоматных функций сама является автоматной функцией. Её каноническую систему можно получить из канонических систем исходных функций.

Пример 1. Автоматные функции f1 и f2 заданы соответственно каноническими системами

y(t) x

(t) & q(t 1),

y(t) x(t) q(t 1),

 

1

 

 

 

 

 

q(t) x2 (t),

q(t) x(t),

q(0) 0,

 

q(0) 0.

 

 

 

 

 

 

 

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

Схемы автоматов, вычисляющих функции f1 и f2, приведены на рисунке. В первой схеме используется функциональные элементы инвертор и конъюнктор, а во второй – дизъюнктор. Кроме того, прямоугольником на схемах обозначены элементы единичной задержки. Надписи около их входов и выходов указывают, что в начале t-го такта им на вход поступает сигнал q(t), «выталкивая» при этом на выход сигнал q(t – 1).

x1(t)

 

 

x2(t)

x(t)

 

 

 

 

 

q(t)

 

q(t)

 

 

 

 

q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q(t–1)

 

 

 

 

 

 

 

 

 

 

 

q(t–1)

 

 

 

&

 

 

 

 

 

\/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(t)

 

 

 

 

 

y(t)

 

 

x1(t)

 

 

 

x2(t)

 

 

 

 

 

 

 

 

 

 

 

 

q1(t)

 

 

 

q2(t)

 

 

 

 

 

 

q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q1(t-1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q2(t–1)

 

 

 

&

 

 

 

\/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(t)

 

 

1 2 …… k n

 

 

 

 

 

 

~

 

~ ~

~

выходной последовательности y = f

(x1, x2

,...,xn )

 

последовательности

~

 

 

 

 

 

 

 

x1 .

 

 

На нижнем рисунке представлена схема автомата, вычисляющего суперпозицию f2( f1). Он имеет два входа и один выход и получается в результате последовательного соединения исходных автоматов.

Каноническая система полученного автомата имеет вид

y(t) x

(t) & q (t 1) q

2

(t 1),

 

 

1

1

 

 

x

 

(t),

 

 

q (t)

2

 

 

 

1

 

 

 

 

q (t)

x

(t) & q (t 1),

 

 

 

 

 

2

 

1

1

 

 

q (0) q

(0) 0.

 

 

 

1

 

2

 

 

 

Она получается в результате объединения двух исходных систем. При этом из первой системы удалено первое уравнение, a его правая часть подставлена вместо х(t) во вторую cистему. Кроме того, полученная

каноническая

система

содержит

две

функции переходов.

 

 

 

Определение.

Говорят,

что автоматная

функция

f

~ ~

~

зависит

с

(x1, x2

,...,xn )

запаздыванием от аргумента х1, если для

любого

набора

из

n

входных

последовательностей

~

~

~

и

(x1

, x2

,...,xn )

любого момента времени t элемент y(t) не зависит от элемента x1(t) входной

Если имеется автомат, вычисляющий сразу т автоматных функций f1, f2,…, fт, каждая из которых зависит от п аргументов х1, х2,…, хn, и при этом fj зависит от хk с запаздыванием, то в этом автомате можно ввести обратную связь по паре переменных (fj, хk). Операция введения обратной в данном случае заключается в том, что сигнал с j-го выхода направляется на k-й вход. В результате получается автомат, вычисляющий (m – 1) автоматных функций от (n – 1) аргументов.

1 2 …… j

36

Пример. Рассмотрим автомат, схема которого изображена на рисунке. Он вычисляет две функции f1 и f2 от двух аргументов х1 и х2. Убедившись, что f2 зависит от х1 с запаздыванием, требуется ввести обратную связь по паре переменных ( f2, х1) и написать каноническую систему полученного автомата.

x1(t)

 

 

 

 

 

x2(t)

 

 

 

 

 

x2(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q1

 

 

 

q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

&

 

 

 

 

&

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1(t)

 

 

 

 

y1(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q2

 

 

 

q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

\/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

\/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y2(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

(t) x

 

(t) & x

2

(t),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

(t) x

 

 

(t) q

 

(t 1),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

2

Прежде всего запишем каноническую систему исходного автомата. Она имеет вид

 

 

 

(t) x

 

 

(t),

 

 

q

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

 

 

(t) x

 

(t) & q

 

(t 1),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

 

(0) q

 

 

(0) 0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

Поскольку переменная х1(t) является фиктивной для булевой функции у2(t), то автоматная функция f2 зависит от х1 с запаздыванием. Следовательно, можно ввести обратную связь по паре переменных ( f2, х1). В итоге получим автомат с одним входом и одним выходом. Поскольку в ней присутствуют два элемента единичной задержки, то полученный автомат имеет

 

y

(t)

( x

2

(t) q

(t 1)) & x

2

(t),

 

 

1

 

 

 

2

 

 

 

 

(t)

x

 

(t),

 

 

 

 

q

2

 

 

 

не более четырех состояний. Его каноническая система имеет вид

 

1

 

 

 

 

 

 

 

q

(t)

(x

 

(t) q

(t 1)) & q (t 1),

 

 

2

 

2

 

 

 

2

 

1

 

 

q

(0) q

(0) 0.

 

 

 

 

 

1

 

 

2

 

 

 

 

Она получается из исходной канонической системы, если в ней всюду х1(t) заменить правой частью уравнения для у2(t), а само это уравнение удалить из системы.

37

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]