Общие сведения о цифровых автоматах

Синтез цифровых автоматов без памяти. Одноразрядный комбинационный сумматор. Минимизация систем переключательных функций. Регистры параллельного действия. Технические особенности конечных автоматов. Счетчики с одновременным, сквозным, групповым переносом.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курс лекций
Язык русский
Дата добавления 16.09.2017
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Параллельный сумматор со сквозным переносом

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

Pi+1=aibiaiPibiPi=aibi(aibi)Pi=CiTiPi

где Ci=aibi - собственный перенос, сформированный в i-ом разряде;

Ti=aibi - признак распространения переноса, образованного в предыдущих разрядах, через i-разряд;

TiPi - транзитный перенос, т.е. перенос из предыдущих разрядов, проходящий через i-й разряд.

С учетом полученного выражения для Pi+1 схема сумматора со сквозным переносом может быть представлена в виде.

В этой схеме предполагается, что в каждом i-ом одноразрядном комбинационном сумматоре формируется кроме Si еще и

Ci=aibi и Ti=aibi.

Время суммирования m разрядных чисел равно

t= tз+(m-1)tзр

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

Параллельный сумматор с одновременным переносом.

Время формирования суммы может быть еще уменьшено, если использовать сумматоры с одновременным (параллельным) переносом. Принцип построения таких сумматоров заключается в том, что значение каждого разряда суммы получается в результате одновременного анализа данного и всех более младших разрядов слагаемых. Для вывода формулы одновременного переноса в (i+1)-ый разряд (Pi+1) представим все формулы сквозного переноса для каждого разряда:

P1

P2=C1T1P1

P3=C2T2P2

. . . . .

Pi=Ci-1Ti-1Pi-1

Pi+1=CiTiPi

Подставив в уравнение Pi+1 значение Pi, получим

Pi+1=CiTiСi-1TiTi-1Pi-1.

Подставляя в это уравнение Pi-1 имеем

Pi+1=CiTiСi-1TiTi-1Ci-2TiTi-1Ti-2Pi-2 и т.д.

В конечном счете логическое уравнение переноса в (i+1) разряд, выраженное через значения разрядов слагаемых имеет вид:

Pi+1=CiTiСi-1TiTi-1Ci-2TiTi-1Ti-2Ci-3…TiTi-1Ti-2…T3T2C1TiTi-1Ti-2…T3T2T1P1

Из этого уравнения следует, что на выходе i-го разряда перенос Pi+1 возникает тогда, когда он образован в данном разряде, или если он был образован в некотором предыдущем разряде, а во всех последующих разрядах, включая данный, выполняется условие распространения переноса. Следовательно, перенос в каждом разряде может быть выработан одновременно с запуском переноса P1 в младший разряд. Из этого уравнения может быть образована система уравнений для сумматора с одновременным переносом. Система уравнений для четырехразрядного сумматора имеет следующий вид:

P1

P2=C1T1P1

P3=C2T2C1T2T1P1

P4=C3T3C2T3T2C1T3T2T1P1

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

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

t= tз+tзр

tз - время задержки формирования сигнала суммы (Si), tзр - время задержки формирования сигнала переноса. Схема формирования сигнала переноса на элементах булевого базиса в каждом разряде трехуровневая (один уровень - вычисление Ti и Сi, второй и третий уровни получение Pi+1 по сформированным - Ti и Сi). Поэтому tзр=3, где - задержка сигнала в одном логическом элементе. Такие сумматоры являются самыми быстродействующими.

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

Параллельные сумматоры с групповым переносом.

В сумматорах с групповым переносом все разряды разбиваются на группы по P разрядов (обычно P=46), причем в пределах каждой из групп перенос организуется по одновременному или сквозному методу. Между группами перенос может быть либо одновременным, либо сквозным. Например, 12-ти разрядный сумматор с одновременным переносом между группами (в каждой группе 4 разряда) имеет вид.

12-ти разрядный сумматор с одновременным переносом между группами.

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

Cjгр - сигнал переноса из j группы (собственный перенос). Этот перенос вычисляется по формуле:

Pi+1=CiTiСi-1TiTi-1Ci-2TiTi-1Ti-2Ci-3…TiTi-1Ti-2…T3T2C1TiTi-1Ti-2…T3T2T1P1, .

Tjгр - сигнал условия прохождения через j-ую группу (признак транзитного переноса).

Tjгр =TlTl-1…Tk

где k - номер младшего разряда в группе, l- номер старшего разряда в группе.

Ti - признак прохождения переноса через i-ый разряд.

Для нашей схемы:

P2=C1грT1грP1

P3=C2грT2грP2=С2грT2грС1грT2грT1грP1

В свою очередь:

T1гр=T1T2T3T4; T2гр=T5T6T7T8, где Ti=aibi.

C1гр=C4T4С3T4T3C2T4T3T2C1 T4T3T2T1P1

Ci=aibi - перенос из i-го разряда (собственный).

C2гр=C8T8С7T8T7C6T8T7T6C5 T8T7T6T5P2

Очевидно, такой сумматор будет иметь меньшую сложность, чем аналогичный сумматор с одновременным переносом от всех 12-ти разрядов, но будет и менее быстродействующим, т.к. добавляются цепи для формирования Сjгр и Tjгр, в которых будет дополнительная задержка сигнала.

Лекция 13. Абстрактный синтез конечных автоматов

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

Представление событий в автоматах

В основе рассматриваемого способа задания автоматов, лежит понятие событий, представимых в автоматах.

Пусть Y{y1, y2, …, yk} - выходной алфавит конечного автомата S с фиксированным начальным состоянием a0. Тогда каждой букве yj, выходного алфавита можно поставить в соответствие множество входных слов Sj(x1, x2,…, xm), которые вызывают появление на выходе автомата буквы yj. Определенное таким образом множество слов Sj(x1, x2, …, xm) называют событием, представленным в автомате выходным сигналом yj.

Поэтому для задания конечного автомата, имеющего выходной алфавит Y{y1, y2, …, yk}, достаточно разбить множество всех возможных входных слов на K событий S1, S2, …, Sk, представленных в автомате выходными сигналами y1, y2, …, yk соответственно. Для частичного автомата необходимо, кроме того, задать множество Sз запрещенных слов. Таким образом, конечный автомат может быть задан таблицей, устанавливающей соответствия между событиями и буквами выходного алфавита. Зная набор событий Sj, можно, не пользуясь таблицами переходов и выходов, найти реакцию автомата на любое входное слово, для чего достаточно определить множество каких слов входного алфавита оно входит (то есть какому событию принадлежит).

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

Соответствие событий буквам выходного алфавита

Событие

Буква

S1(x1, x2,…, xm)

S2(x1, x2,…, xm)

Sk(x1, x2,…, xm)

Sз(x1, x2,…, xm)

y1

y2

yk

-

Операции в алгебре событий. Алгебра событий включает три операции: дизъюнкцию (объединение) событий, произведение событий и итерацию событий.

Дизъюнкцией событий называют событие S = S1v S2v…vSk, состоящее из всех слов, входящих в события S1, S2, …, Sk.

Пример:

Событие S1 содержит слова x1, x2x1, x1x1, т.е. S1 = (x1, x2x1, x1x1), а S2=(x2,x1x2). Тогда

S = S1 v S2 = (x1, x2, x1x1, x1x2x2x1)

Произведением событий называется событие S = S1* S2* …,* Sk, состоящее из всех слов, полученных приписыванием к каждому слову события S1 каждого слова события S2, затем слова события S3 и т.д.

Пример: S1 и S2 те же. Тогда

S = S1* S2 = (x1x2, x1x1x2, x2x1x2, x2x1x1x2, x1x1x2, x1x1x1x2)

Произведение событий не коммутативно, то есть слова, входящие в события S1*S2 и S2*S1 различны: то есть S1*S2 S2*S1. Поскольку произведение не коммутативно, следует различать операции «умножение справа» и «умножение слева». Например, относительно произведения событий S1*S2 можно сказать, что событие S2 умножено на событие S1 справа, а событие S1 на S2 - слева.

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

Итерацией события S называется событие{S}, состоящее из пустого слова e и всех слов вида S, SS, SSS и т.д. до бесконечности. То есть:

{S} = e v S v SS v SSS v …

Пример: S=(x2,x1x2), {S} = (e, x2, x2 x2, x2x2x2, …, x1x2, x1x2x1x2, …, x2x1x2, x1x2x2, …)

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

Теорема: Любые регулярные выражения и только они представимы в конечных автоматах.

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

Рассмотрим, как можно совершить переход от описательной формы задания алгоритмов работы конечных автоматов к представлению этих алгоритмов в виде регулярных выражений. С целью упрощения такого перехода вводят основные события, из которых с помощью операций дизъюнкции, умножения и итерации можно составить более сложные события, соответствующие заданному алгоритму работы автомата. За основные события принимают такие события, которые более часто встречаются в инженерной практике при синтезе схем ЭВМ.
Пусть дан конечный алфавит X = (x1, x2, …, xm).

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

Система основных событий

В эту систему мы включим те из наиболее часто встречающихся событий, которые используются при записи регулярных выражений на практических занятиях и курсовой работе. Пусть дан алфавит X{ x1, x2, …, xm }.

1. Событие, состоящее из всех слов входного алфавита (всеобщее событие).

F = {x1 v x2 v …v xm}

2. Событие, содержащее все слова, оканчивающиеся буквой xi.

S = { x1 v x2 v …v xi v …v xm } xi = Fxi

3. Событие, содержащее все слова, оканчивающиеся отрезком слова l1

S = F l1

4. Событие, содержащее все слова, начинающиеся с отрезка слова l1 и оканчивающиеся на l2:

S = l1 F l2

5. Событие, содержащее только однобуквенные слова входного алфавита

S = x1 v x2 v …v xm

6. Событие, содержащее только двухбуквенные слова входного алфавита

S = (x1 v x2 v …v xm)( x1 v x2 v …v xm)

7. Событие, содержащее все слова длиной r

S = ( x1 v x2 v…v xm)( x1 v x2 v…v xm)…(x1 v x2 v…v xm) - r членов

8. Событие, содержащее все слова, длина которых кратна r

S = {( x1 v x2 v…v xm)( x1 v x2 v…v xm)…(x1 v x2 v…v xm)} - r членов

9. Событие, состоящее из всех слов алфавита X{ x1, x2}, не содержащих комбинации букв x1x1 и оканчивающихся буквой x2

S = { x2 v x1 x2}

10. Событие, состоящее из всех слов алфавита X{ x1, x2}, не содержащих серии из r букв x1 и оканчивающихся буквой x2

S = { x2 v x1 x2 v x1x1 x2 v … v x1x1… x1 x2} - (r-1) членов.

Рассмотрим пример составления регулярного выражения.

Пример. Записать в виде регулярного выражения алгоритм работы автомата, сравнивающего два двоичных числа, представленных в последовательном коде. Количество разрядов числа - произвольно. Окончание чисел фиксируется подачей на вход автомата сигнала xs. Если число, поданное на первый вход автомата, меньше числа, поданного на второй вход, то КА выдает сигнал y1, если больше - то y2, если оба числа равны - то y3. Числа подаются на входы автомата младшими разрядами вперед. На входы автомата сравнения одновременно может поступить одна из четырех комбинаций сигналов 00,01,10,11, которые закодируем следующим образом x00=00, x01=01, x10=10, x11=11. При этом будем считать, что первая цифра каждой комбинации относится к первому входу, а вторая - ко второму входу. Таким образом, входной алфавит автомата включает пять букв X{ x00, x01, x10, x11, xs }, а выходной три буквы Y{y1, y2, y3}.

-------------------------

КА

------------>

Х{x00,x01,x10,x11,xs}

Y{y1,y2,y3}

Два двоичных числа равны, если равны цифры в любых одинаковых разрядах. Поэтому событие, заключающееся в поступлении на вход автомата равных чисел, состоит из всех возможных слов, содержащих буквы x00 и x11. То есть S3 = { x00 v x11} xs.

События, представленные в автомате сигналами y1 и y2 можно записать в виде:

S1={x00vx01vx10vx11}x01{x00vx11}xs

S2={x00vx01vx10vx11}xx10{x00vx11}xs.

События S1, S2 и S3 не охватывают всего множества слов, которые могут быть записаны в алфавите X{ x00, x01, x10, x11, xs}, т.к. в эти события входят только слова, оканчивающиеся буквой xs. Слова, не входящие в S1, S2 и S3, должны быть представлены в автомате пустой буквой e: S4 = S1 v S2 v S3

Очевидно, что записанные выражения можно упростить, если входные сигналы 00 и 11 закодировать одной буквой, например xr. Такое кодирование возможно, т.к. КА одинаково реагирует на эти комбинации.

S1={xrvx01vx10}x01{xr}xs

S2={xrvx01vx10}x10{xr}xs

S3={xr}xs, S4=S1vS2vS3

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

1. S1 v S2 = S2 v S1 - закон коммутативности

2. (S1vS2)vS3=S1v(S2vS3)=S1vS2vS3 - законы ассоциативности

3. S1*(S2*S3) = (S1*S2)*S3 - законы ассоциативности

4. S1(S2v S3) = S1S2 v S1S3 - закон дистрибутивности

5. {{S}} = {S}

6. {S}*{S} = {S}

7. {{S1} v {S2} = { S1 v S2}

8. {e} = e

9. eS = Se = S

Методы абстрактного синтеза.

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

1. Первый этап заключается в получении таблиц переходов и выходов в некоторой исходной форме. Построенный по этим таблицам автомат обычно содержит «лишние» внутренние состояния.

2. На втором этапе производится минимизация количества внутренних состояний заданного автомата.

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

Алгоритм синтеза автомата Мура

Рассмотрим пример абстрактного синтеза автомата для случая, когда регулярные отношения составлены без применения операции итерации. Составим отмеченную таблицу переходов автомата, имеющего входной алфавит X{x1, x2} и реализующий следующий алгоритм.

S1 = x1x2 v x1x1x1

S2 = x1x2x2 v x2x2

Sзапр. = x1 v x2x2x2

При синтезе условимся начальное состояние автомата обозначать цифрой 0, а остальные состояния - десятичными числами 1, 2, 3 и т.д. Очевидно, самый простой, хотя и не экономный по числу используемых внутренних состояний автомата. Алгоритм синтеза заключается в следующем. Фиксируется начальное состояние и для входного слова, содержащего r букв, назначается r внутренних состояний. Переходы в автомате определяются так, что первая буква входного слова переводит автомат из начального состояния 0 в состояние 1, вторая буква из 1 в 2 и т.д. Аналогичные последовательности внутренних состояний назначаются для всех остальных слов. Затем все конечные состояния, в которые автомат попадает после подачи слов, входящих в событие Si, отмечаются выходными сигналами yi.

Чтобы система переходов автомата была определенной, для всех слов, имеющих одинаковые начальные отрезки, следует назначать одну и ту же последовательность состояний. Например, для регулярного события S1 первая буква x1 переводит автомат из начального состояния 0 в состояние 1, вторая буква x2 - из 1 в 2.

S1 =

|

x1

|

x2

|

v

|

x1

|

x1

|

x1

|

0

1

2

0

1

3

4

S2 =

|

x1

|

x2

|

x2

|

v

|

x2

|

x2

|

0

1

2

5

0

6

7

Поскольку первая буква второго слова x1x1x1, входящего в S1 также есть x1, то она переводит автомат из начального состояния 0 в 1. Вторая буква x1 переводит автомат из 1 в 3, третья - из 3 в 4.

Первые две буквы слова x1x2x2, входящего в S2, совпадают с первым словом события S1. Поэтому первые две буквы этого слова должны последовательно переводить автомат из 0 в 1, и из 1 в 2. Дальнейшие состояния обозначим числами 5, 6 и 7. Получившаяся в результате форма записи определяет разметку мест регулярных выражений.

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

е

е

y1

e

y1

y2

e

y2

e

xj\ai

0

1

2

3

4

5

6

7

*

x1

1

3

*

4

*

*

*

*

*

x2

6

2

5

*

*

*

7

*

*

Чтобы система переходов автомата была определена при подаче любого входного слова, кроме состояний 0 - 7, вводится еще одно состояние, которое обозначается звездочкой *. В это состояние автомат переходит при подаче входных слов, которые не входят в события S1 и S2. Выходным сигналом y1 отмечены состояния 2 и 4, y2 - состояния 5 и 7. Остальные состояния отмечены пустой буквой e.

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

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

Разметка регулярных выражений

Разметка регулярных выражений проводится по правилам подчинения мест.

Общие правила подчинения мест регулярного выражения

1. Индекс места перед любыми скобками распространяется на начальные места всех дизъюнктивных членов, записанных в этих скобках.

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

3. Индекс места перед итерационными скобками распространяется на место, непосредственно следующее за этими скобками.

4. Индекс конечного места любого дизъюнктивного члена, заключенного в итерационные скобки, распространяется на начальные места всех дизъюнктивных членов, заключенных в эти итерационные скобки.

5. Индексы мест, слева и справа от которых стоят буквы, никуда не распространяются.

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

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

В этом автомате сигнал y1 выдается после поступления подряд 3-х букв x1, а y2 - после x2, следующей за серией их 3-х и более букв x1. В остальных случаях выдается буква e.

Индексы основных мест записываются непосредственно под регулярными выражениями, а индексы предосновных мест располагаются ниже индексов основных мест, под горизонтальной чертой. Выражение имеет 12 основных мест (от 0 до 11).

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

Теперь найдем предосновные места, на которые распространяется индекс 1. Если автомат находится в состоянии 1, то он может принять букву x2, расположенную слева от места 1, так как эта буква находится в итерационных скобках и, следовательно, неоднократно может повторяться во входном слове автомата. Кроме того, в состоянии 1 автомат может принять начальные буквы других слов, расположенных в итерационных скобках, и букву x1, непосредственно следующую за этими скобками. Таким образом, месту с индексом 1 в данном случае подчиняются те же предосновные места, что и месту с индексом 0. Если автомат находится в состоянии 2, то он может принять только букву x2, расположенную справа от места с индексом 2. Поэтому индекс распространяется на единственное пред основное место, являющееся одновременно основным местом 2. Аналогично можно найти подчиненные места других основных мест.

По окончании слова, входящего в событие S, автомат переходит в состояние 11, после чего на вход автомата может поступить второе слово, этого события S, так как мы считаем, что автомат является автоматом многократного действия. Автоматами многократного действия называются такие автоматы, которые могут неоднократно принимать слова, входящие в события, представленные в автомате. В таких автоматах индекс конечного места распространяется на те же предосновные места, на которые распространяется индекс начального места, т.е. по окончании очередного слова на вход автомата этого слова может поступить вновь.

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

Лекция 14. Минимизация внутренних состояний автомата

На первом этапе минимизации внутренних состояний можно пользоваться следующим правилом:

· Если несколько предосновных мест отмечено одинаковой совокупностью индексов и справа от этих мест записаны одинаковые буквы, то основные места, расположенные справа от этих букв можно отметить одинаковыми индексами.

В полученном нами выражении основные места 2, 4 и 7 можно отметить общим индексом, так как слева от каждого из этих мест записана буква x1, а предосновные места, предшествующие этой букве, имеют одинаковую совокупность индексов (0, 1, 3, 6, 11). Теперь с учетом этого проведем новую разметку:

Проделанную процедуру можно повторить вновь, так как в полученном выражении есть два места (4 и 6), перед которыми стоит одинаковая буква x1, имеющая предосновное место, отмеченное одинаковым индексом 2.

После этого получим окончательную разметку:

Второй этап минимизации.

Составление отмеченной таблицы переходов. Составим теперь отмеченную таблицу переходов автомата. Определим вначале внутренние состояния, в которые переходит автомат из состояния 0 при подаче на его вход сигнала x1.

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

Таких мест в выражении три. Все основные места, расположенные за этой буквой x1, отмечены индексом 2. Следовательно, автомат из состояния 0 под действием сигнала x1 переходит в состояние 2. Аналогично сигнал x2 переводит автомат из состояния 0 в состояние 1, так как за предосновным местом, содержащим индекс 0, после буквы x2 расположено основное место с индексом 1.

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

Сигнал y1 выдается после поступления подряд трех букв x1, то есть в состоянии 6, а сигнал y2 - после x2, следующей за серией из трех и более букв, то есть в состоянии 8. В остальных случаях выдается пустая буква е.

Отсюда получаем следующую отмеченную таблицу переходов.

yg

e

e

e

e

e

e

y1

e

y2

xj\ai

0

1

2

3

4

5

6

7

8

x1

2

2

4

2

6

2

7

7

2

x2

1

1

3

1

5

1

8

8

1

Из построенной таблицы видно, что из состояний 0, 1, 3 и 5 автомат сигналами x1 и x2 переводится в одинаковые состояния (2 и 1). Кроме того, все перечисленные состояния отмечены одинаковыми выходными сигналами. Поэтому состояния 0, 1, 3 и 5 можно объединить в одно состояние, обозначив его как a0. Введем также обозначения: 2 - a1; 4 - a2; 6 - a3; 7 - a4; 8 - a5. Тогда получим упрощенную таблицу переходов автомата. В этой таблице из состояний a3 и a4 под действием входных сигналов х1 и х2 автомат переходит в одинаковые состояния a4 и a5. Но объединять эти состояния нельзя, так как они отмечены разными выходными сигналами. По этой же причине нельзя объединять состояния a0 и а5. Объединение состояний и составляет второй этап минимизации, причем объединяются только такие состояния, которые отмечены одинаковыми выходными сигналами, и из которых под действием одинаковых входных сигналов происходит переход в одинаковые состояния. Очевидно, у таких состояний должны совпадать столбцы таблицы переходов.

e

e

e

y1

e

y2

xj\ai

a0

a1

a2

a3

a4

a5

x1

a1

a2

a3

a4

a4

a1

x2

a0

a0

a0

a5

a5

a0

Второй пример абстрактного синтеза

Рассмотрим еще один пример абстрактного синтеза автомата. Найдем таблицу переходов автомата сравнения чисел, условия работы которого заданы регулярными выражениями:

Регулярные выражения:

Регулярные выражения событий S1 и S2 содержат одинаковые сомножители в итерационных скобках, перед которыми расположено место с индексом 0. Поэтому в обоих выражениях основные места внутри итерационных скобок отмечены одинаковыми индексами (3, 4 и 5). Индекс конечного места каждого выражения распространяется на начальные места всех регулярных выражений, так как в автоматах многократного действия за словом любого события, например S1, может быть подано слово любого другого события, то есть S1 v S2 v S3. В размеченных выражениях можно объединить места с индексами 4, 6 и 5, 9:

По размеченному выражению составим отмеченную таблицу переходов.

yg

е

е

y3

е

е

е

е

y1

е

y2

е

е

е

е

xj\ai

0

1

2

3

4

5

6

7

8

9

1v3

3v6

3v8

*

xr

1v3

1

1v3

3

3v6

3v8

6

1v3

8

1v3

1v3

3v6

3v8

*

x01

4

*

4

4

4

4

*

3

*

4

4

4

4

*

x10

5

*

5

5

5

5

*

5

*

5

5

5

5

*

xs

2

2

2

*

7

9

7

2

9

2

2

7

9

*

При составлении таблицы следует учитывать, что для разных регулярных выражений автомат под действием одних и тех же входных сигналов переходит в разные состояния. Эти внутренние состояния будем отмечать множеством индексов основных мест. Например. В событии S3 переход из состояния 0 в состояние 1 происходит под действием сигнала xr а в S1 под действием этого же сигнала из состояния 0 автомат переходит в состояние 3. Поэтому, внутреннее состояние, в которое автомат переходит под действием xr из состояния 0, будем обозначать множеством из двух индексов 1 v 3. Аналогично получается переход из состояний 2, 7 и 9 под действием xr, а также переход из состояния 4 и 5 в состояния 3 v 6 и 3 v 8 соответственно под действием xr. При заполнении таблицы получается свободные клетки там, где переходы в автомате не определенны. Такие клетки будем отмечать звездочкой *, которую следует рассматривать как индекс некоторого внутреннего состояния. Таблица переходов составляется не только для состояний, отмеченных индексами основных мест регулярного выражения, но и для состояний, отмеченных множеством индексов. Для заполнения колонок для таких состояний достаточно образовать дизъюнкцию таких индексов, которые расположены в колонках, отмеченных индексами, входящими в множества. Например. Для заполнения колонки 1 v 3 образуем дизъюнкцию индексов расположенных в колонках 1 и 3. Поскольку состояния 1, 3, 6 и 8 отмечены пустой буквой e, то и состояния 1 v 3, 3 v 6, 3 v 8 также отмечаются буквой е.

После построения таблицы проведем второй этап минимизации числа внутренних состояний автомата. Можно объединить состояния, отмеченные индексами: 0 и 1v3, 4 и 3v6, 5 и 3v8. При этом состояния отмеченные звездочкой обозначим через 10, а состояния 1v3 - 0, 3v6 - 4, 3v8 - 5.

yg

e

e

y3

e

e

e

e

y1

e

y2

e

xj\ai

0

1

2

3

4

5

6

7

8

9

10

xr

0

1

0

3

4

5

6

0

8

0

10

X01

4

10

4

4

4

4

10

4

10

4

10

X10

5

10

5

5

5

5

10

5

10

5

10

xs

2

2

2

10

7

9

7

2

9

2

10

По построенной таблице проведем третий этап минимизации, исключив такие состояния, в которые автомат из нулевого состояния никогда перейти не может. В нашем случае такими состояниями являются 1, 3, 6, 8 и 10.

Обозначив оставшиеся состояния 0 - b 0, 2 - b 1, 4 - b 2, 5 - b 3, 7 - b 4, 9 - b 5, получим окончательную таблицу переходов заданного автомата.

yg

e

y3

e

e

y1

y2

xj\ai

b0

b1

b2

b3

b4

b5

xr

b0

b0

b2

b3

b0

b0

x01

b2

b2

b2

b2

b2

b2

x10

b3

b3

b3

b3

b3

b3

xs

b1

b1

b4

b5

b1

b1

Четвёртый этап минимизации.

В некоторых случаях после получения отмеченной таблицы переходов автомата возможен четвертый этап минимизации. Правда этот этап не всегда приводит к уменьшению числа состояний и часто является проверочным. Алгоритм этого этапа рассмотрим на примере.

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

yg

y1

y1

y1

y2

y1

y2

y2

y2

xj\ai

0

1

2

3

4

5

6

7

x1

2

5

2

2

4

4

5

2

x2

3

1

7

3

5

5

1

7

X3

1

6

1

1

1

1

6

1

Алгоритм минимизации заключается в следующем:

1. Все внутренние состояния разбиваются на группы по числу выходных сигналов. В нашем случае есть два выходных сигнала y1 и y2 и, следовательно, будет две группы, которые мы обозначим буквами a и b.

2. По таблице переходов автомата определяют, к каким группам принадлежат внутренние состояния, в которые автомат переходит из данного состояния под воздействием каждой буквы входного алфавита. Эти состояния запишем в виде последовательности букв под каждым из состояний автомата. Например, из состояния 0 автомат переходит в состояния 2, 3 и 1, которые принадлежат соответственно к следующим группам a, b и a. Эта последовательность букв (aba) и записывается под состоянием 0.

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

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

Разделение состояний на новые группы продолжают до тех пор, пока новые группы состояний появляться не будут.

В нашем случае, минимизация заканчивается на втором шаге, так как все состояния, входящие в группы а и с отмечены одинаковыми последовательностями букв, а группа b и d содержат только по одному состоянию.

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

Взяв в качестве представителей групп состояния 0, 1, 3 и 6 и обозначив их символами a0, a1, a2 и a3 соответственно, получим следующую таблицу переходов с минимальным числом внутренних состояний.

yg

y1

y1

y2

y2

xj\ai

a0

a1

a2

a3

x1

a0

a2

a0

a2

x2

a2

a1

a2

a1

x3

a1

a3

a1

a3

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

xj\ai

a0

a1

a2

a3

x1

a0/y1

a2/y2

a0/y1

a2/y2

x2

a2/y2

a1/y1

a2/y2

a1/y1

x3

a1/y1

a3/y2

a1/y1

a3/y2

В полученной таблице колонки, помеченные состояниями a0 и a2, a1 и a3 идентичны, что позволяет при минимизации исключить состояния a2 и a3.

В результате получаем таблицу переходов и выходов автомата Мили имеющего два состояния a0 и a1.

xj\ai

a0

a1

x1

a0/y1

a0/y2

x2

a0/y2

a1/y1

x3

a1/y1

a1/y2

Лекция 15. Вероятностные автоматы

Детерминированные автоматы S мы задавали совокупностью из пяти объектов: S(A, X, Y, , ), где A = {a0,a1,a2,...,aM}- множество внутренних состояний автомата, X = {x1, x2,…, xF} - множество входных сигналов (входной алфавит), xi - буква входного алфавита, Y = {y1, y2,…, yG} - множество выходных сигналов (выходной алфавит),

- функция переходов, обеспечивающая однозначный переход автомата в состояние as из состояния аm под действием входного сигнала xf, то есть as = [am, xf],

- функция выходов, определяющая однозначное значение выходного сигнала yg в зависимости от состояния автомата аm и входного сигнала xf, т.е. yg = [аm , xf].

В работе Поспелова Д.А. «Вероятностные автоматы» рассмотрена более общую модель автомата, а именно: зная состояние автомата аm и входной сигнал xf, мы не можем с вероятностью, равной 1 сказать, в каком состоянии окажется автомат в следующий момент времени, а также какой выходной сигнал он в этом случае вырабатывает.

Однако мы можем указать вероятности наступления соответствующего события, а именно: зная состояние аm и входной сигнал xf, мы можем указать вероятности перехода автомата в состояния {а0, а1, …, аm, …, аM}, а также вероятности появления выходных сигналов {y1, y2,…,yg, …, yG}, т.е. задаем закон распределения вероятностей.

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

am,xf

a0

a1

am

aM

a0,x1

P010

P011

P01m

P01M

a0,x2

P020

P021

P02m

P02M

am,xF

P0F0

P0F1

P0Fm

P0FM

a1,x1

P110

P111

P11m

P11M

am,xf

Pmf0

Pmf1

Pmfm

PmfM

aM,xF

PMF0

PMF1

PMFm

PMFM

am,xf

y1

y2

yy

aM

a0,x1

q011

q012

q01y

q01G

a0,x2

q021

q022

q02y

q02G

am,xF

q0F1

q0F2

q0Fy

q0FG

a1,x1

q111

q112

q11y

q11G

am,xf

qmf1

qmf2

qmfy

qmfG

aM,xF

qMF1

qMF2

qMFy

qMFG

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

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

, ,

где , .

Автоматы, в которых зная состояние автомата аm и входной сигнал xf, мы можем указать лишь вероятности перехода в новое состояние и вероятности появления выходных сигналов, т.е. законы распределения, называются вероятностными автоматами (ВА).

По аналогии с детерминированными автоматами, Можно определить ВА Мили и Мура. ВА, у которых вероятности появления выходных сигналов (закон распределения) зависят лишь от состояний автомата, но не зависят от входных сигналов, называются ВА Мура. Если же вероятности появления выходных сигналов (закон распределения) зависят как от состояний автомата, так и от входных сигналов, имеем автомат Мили.

Рассмотрим некоторые частные случаи вероятностных автоматов. Может быть, что выходные сигналы автомата определяются детерминировано, а переходы автомата - случайно. Такие автоматы называются Y - детерминированными вероятностными автоматами. Если состояния определяются детерминировано, то имеем А- детерминированный вероятностный автомат.

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

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

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

Часто при построении ВА изменение вероятностей производят по некоторому закону, причем закон зависит от истории функционирования автомата (т.е. зависит от входных сигналов, поданных на него и от выходных сигналов, т.е. реакции автомата). Такие ВА с переменной структурой называются автоматами компенсирующего типа. Их разработке и уделяется основное внимание.

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

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

Проблема организации целесообразного поведения автомата в случайной среде тесно связана со способом изменения вероятностей перехода автомата. Возможно изменение вероятностей перехода автомата по строкам и по столбцам.

Рассмотрим У-детерминированный вероятностный автомат. Пусть автомат в некоторый момент времени t находится в состоянии аm, выдал соответствующий этому состоянию выходной сигнал yg и получил на вход сигнал поощрения. Тогда вероятность рmm перехода из состоянии аm в состояние аm увеличиваются на некоторую величину , а все остальные вероятности в строке уменьшаются на /М. Если же автомат получает сигнал штрафа, то вероятность рmm перехода из состоянии аm в состояние аm уменьшаются на некоторую величину , а все остальные вероятности в строке на увеличиваются на/М, чтобы сумма вероятностей осталась равной 1.

Возможен и другой принцип изменения вероятностей, при котором происходит учет предыстории поведения автомата. Если автомат в момент времени t перешел из состояния аm в состояние ак и в момент времени t+1 получил сигнал «штраф», то вероятность рmк заменяется на рmк, где коэффициентбольше 0 и меньше 1, а все остальные вероятности в строке изменяются на величину

Если же получил сигнал «нештраф», то вероятность рmк величину

а все остальные уменьшаются на величину

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

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

Рассмотрим пример, который приводит Д.А. Поспелов - регулирование движения через автомобильный перекресток. Обычно (мы с вами всегда сталкиваемся именно с таким светофором) задают жесткий режим переключения светофоров, при котором длительность включенных сигналов (красного и зеленого) - постоянны. Однако, как показывает практика работы таких светофоров, решение задачи получается мало эффективным, поскольку предполагается, что потоки машин постоянные, стационарные.

Можно установить датчики на перекрестке, которые бы подсчитывали число машин (очередь), возникающее в данном направлении при красном свете светофора. Пусть на перекрестке стоит ВА компенсирующего типа, который имеет 2 состояния: включен красный свет вдоль главного направления и включен зеленый свет. Каждому состоянию однозначно соответствует выходной сигнал, т.е. автомат У-детерминированный. С датчиков поступают сигналы штрафа и нештрафа.

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

Пусть в начале все эти вероятности равны 0,5 и на главном направлении скопилось П1 машин, а на другом - П2. На вход автомата поступает сигнал = П1 - П2. Пусть > 0, т.е. на главном направлении больше машин. Тогда если автомат в момент времени t находился в состоянии зеленом, перешел в состояние зеленый и получил сигнал нештраф, то вероятность рзз (t+1) увеличивается, а вероятность рзк (t+1) уменьшается:

рзк (t+1) = рзк (t),

а вероятность рзз (t+1) = 1- рзк (t+1).

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

Размещено на Allbest.ur


Подобные документы

  • Основные понятия теории клеточных автоматов. Анализ подходов встроенного самотестирования цифровых схем. Модули сигнатурного мониторинга на сетях клеточных автоматов. Программа моделирования одномерной сети клеточных автоматов на языке Borland Delphi.

    дипломная работа [1,9 M], добавлен 31.08.2011

  • Основные инструменты анализа и синтеза цифровых устройств. Синтез комбинационного устройства, реализующего заданную функцию. Минимизация переключательных функций с помощью карт Карно. Общие правила минимизации функций. Дешифратор базиса Шеффера.

    контрольная работа [540,0 K], добавлен 09.01.2014

  • Изучение основных понятий теории автоматов. Анализ работы цифровых машин с программным управлением на примере автоматов Мили и Мура. Устройство преобразователей дискретной информации (RS-триггера). Разработка схемы цифрового автомата для сложения чисел.

    курсовая работа [449,2 K], добавлен 16.09.2017

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

    методичка [2,7 M], добавлен 02.04.2011

  • Проектирование цифровых автоматов Мили и Мура с памятью в булевом базисе по заданной ГСА. Составление частично структурированной таблицы переходов-выходов. Построение функций выходов, логической схемы автомата. Особенности его экспериментальной проверки.

    курсовая работа [628,7 K], добавлен 14.07.2012

  • Понятие и назначение счетчика, его параметры. Принцип построения суммирующего и вычитающего счетчика. Универсальность реверсивного счетчика. Счетчики и делители с коэффициентом пересчета, отличным от 2n. Счетчики со сквозным переносом (разные триггеры).

    реферат [2,0 M], добавлен 29.11.2010

  • Основные понятия абстрактных детерминированных автоматов Мили и Мура, как монофункциональных так и многофункциональных, реализуемых на триггерах. Понятия многофункциональных детерминированных автоматов 1-го, 2-го и 3-го рода на схемах автоматной памяти.

    контрольная работа [495,3 K], добавлен 28.03.2018

  • Знакомство с табличными и графическими способами задания многофункциональных абстрактных детерминированных автоматов. Рассмотрение сфер использования абстрактных автоматов с памятью. Анализ особенностей многофункциональных автоматов Мараховского.

    контрольная работа [787,5 K], добавлен 28.03.2018

  • Основные понятия абстрактных цифровых автоматов, их классификация и способы задания. Связь между моделями Мили и Мура. Эквивалентные автоматы и эквивалентные их преобразования. Минимизация числа внутренних состояний автомата, алгоритм Ауфенкампа-Хона.

    контрольная работа [278,3 K], добавлен 22.01.2011

  • Выбор типа триггера, характеристика принципа его действия. Четырёхразрядный счетчик со сквозным переносом, разработка и выбор его схемы. Выбор ИМС, с помощью которых реализуется счётчик. Принципиальная схема ИМС, её описание и основные параметры.

    курсовая работа [318,7 K], добавлен 14.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.