Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Вывод, соответствующий этому разбору:
S’Þ $ S
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Пример разбора цепочки для грамматики с арифметикой.
Для ГПП техника выделения основы следующая:
Строится матрица отношений предшествования между символами VTÈVN. При этом между парой символов х и y может существовать не более одного отношения предшествования, обозначаемого символами <o, ≗, o>.
Грубо говоря, отношения предшествования отражают порядок появления символов в правом выводе.
Если a j y – текущее состояние цепочки, где j – основа, то
Между всеми смежными символами цепочки a, выполняется отношение <o или ≗ .
2. Между последним символом цепочки a и первым символом цепочки j (основы) выполняется отношение <o.
3. Между смежными символами основы выполняются отношения ≗.
4. Между последним символом основы и первым символом цепочки у выполняется отношение o>.
Если такое свойство отношений имеет место и для каждой пары символов определено не более одного отношения, то основу легко выделить, просматривая цепочку a j y слева направо до тех пор, пока впервые не встретится отношение o>. Для нахождения левого конца основы надо возвращаться назад, пока впервые не встретится отношение <o . Цепочка, заключенная между <o и o> и будет основой. Если в грамматике нет правил с одинаковыми правыми частями, то однозначно находится нетерминал А такой, что A ® j , что позволяет свернуть основу, получая цепочку bi-1 .
Этот процесс продолжается до тех пор, пока цепочка либо не свернется к начальному символу S, либо дальнейшие свертки окажутся невозможными.
Отношения простого предшествования с указанными свойствами могут быть определены на VNÈVT следующим образом [1]:
X <o Y, если в R есть правило A® a X B b, и при этом BÞ+Yw;
X ≗ Y, если в R есть правило A® a X Y b.
Отношение o> определяется на (VNÈVT) ´ VT , так как непосредственно справа от основы может быть только терминальный символ.
X o > a, если в R есть правило A® a X Y b, и B Þ+ g X, YÞ* a d. Так как основа может совпадать с правым или левым концом цепочки, то удобно заключить анализируемую цепочку в концевые маркеры $ и $ , положив для XÎ VNÈVT, X o > $ для всех X, для которых S Þ+ a X и X<o $ для всех X, для которых S Þ+ X a.
Грамматика G называется грамматикой простого предшествования, если она не содержит l-правил, для любой пары символов из VNÈVT выполняется не более одного отношения простого предшествования и в ней нет правил с одинаковыми правыми частями.
Выполнение этих требований, очевидно, гарантирует возможность на любом шаге разбора однозначно выделить основу и произвести свертку.
Пример. Пусть множество правил грамматики: S® a S S b, S® c. Для заключения цепочки в маркеры вводим новый начальный символ S’и правило S’®$S$. Отношения предшествования для этой грамматики приведены в табл.1.
S | a | b | c | $ | |
S | ≗ | <o | ≗ | <o | |
a | ≗ | <o | <o | ||
b | o> | o> | o> | o> | |
c | o> | o> | o> | o> | |
$ | <o | <o |
Разбор цепочки $accb$.$<oa<oco>cb$├$<oa≗S<oco>b$├$<oa≗S≗S≗bo>$├$S$
Вывод, соответствующий этому разбору:
S’Þ $ S $Þ$ a S S b $Þ$ a S c b $Þ$ a c c b $
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |
Способ построения свёртки для цепочки связан с использованием стека, куда посимвольно переносится информация из входного буфера, до тех пор, пока не встретится отношение o>. Тогда к цепочке от отношения o> до ближайшего слева отношения <o должна применяться свёртка.
Алгоритм разбора для ГПП:
1. Анализируемая цепочка заключается в маркеры.
2. Берём очередной символ из входного буфера (слева направо). Если между верхним символом стека и первым символом входной цепочки отношение<o или ≗ , то заносим этот символ из входной цепочки в стек и возвращаемся к шагу 2, если же между верхним символом стека и первым символом входной цепочки отношение o>, то переходим к шагу 3. Если между символами нет никакого отношения предшествования, то цепочка не принадлежит языку, порождаемому грамматикой.
3. Обратное движение: из стека вынимаются символы до первого отношения <o между первым символом стека и символом цепочки во входном буфере. Если такой символ появился, то переходим к шагу 4, иначе цепочка не принадлежит языку, порождаемому грамматикой.
4. Применяем свёртку (заменяем выделенный фрагмент на левую часть правила грамматики, правая часть которого совпадает с основой) и возвращаемся к шагу 2. Если свёртка неприменима (нет такой правой части правила), то цепочка не принадлежит языку, порождаемому грамматикой.
Если в результате применения свёртки мы приходим к цепочке $ S $, то исходная цепочка принадлежит языку, порождаемому грамматикой, в противном случае цепочка не принадлежит языку, порождаемому грамматикой.
Обозначим
Head(A)={X/AÞ+Xa} (First1(A)=Head(A)Ç VT),
Tail(A)= {X/AÞ+ a X}, тогда
X <o Y Û A®a X B b & YÎ Head(B)
X o > a Û A®a B C b & XÎ Tail(B) & aÎFirst1(C).
Пример разбора цепочки aaccbbcb с использованием построенной таблицы отношений предшествования приведен в табл.2.
Таблица 2
Отношение | Входная | ||
Стек | предшествования | строка | Операция |
$ | <o | aaccbcb$ | сдвиг |
$a | <o | accbcb$ | сдвиг |
$aa | <o | ccbcb$ | сдвиг |
$aac | o> | cbcb$ | «Свертка» |
$aaS | <o | cbcb$ | сдвиг |
$aaSc | o> | bcb$ | «Свертка» |
$aaSS | ≗ | bcb$ | сдвиг |
$aaSSb | o> | cb$ | «Свертка» |
$aS | <o | cb$ | сдвиг |
$aSc | o> | b$ | «Свертка» |
$aSS | ≗ | b$ | сдвиг |
$aSSb | o> | $ | «Свертка» |
$S | $ | «Конец» |
12.Элементы теории конечных автоматов
Конечный автомат (автомат Мили) S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q´ Va ® Vb .
Автомат однозначно задает отображение Va* ® Vb* (входной цепочки в выходную).
Модель автомата – абстрактное устройство с входной и выходной лентами и управляющей головкой.
В каждый момент времени автомат находится в одном из состояний множества Q, воспринимает один из символов входного алфавита (содержащийся в ячейке, с которой происходит считывание), и печатает один символ выходного алфавита на выходной ленте. Время у нас считается дискретным.
Существуют две традиции в задании автоматов. Первая из них - явное задание дискретного времени, т. е. номера такта tÎN(= {0,1,2,…}, a(t)ÎVa, b(t) ÎVb, q(t) ÎQ.
Тогда работа автомата описывается с помощью рекуррентных соотношений:
q(t+1)=f (q(t),a(t))
b(t)=g(q(t),a(t))
Иногда рассматривается b(t+1)=g(q(t),a(t)) – автомат с задержкой; мы такие автоматы не рассматриваем, т. к. это для некоторых задач неудобно.
Граф переходов автомата определяется следующим образом:
Множество вершин графа – каждая вершина соответствует элементу множества Q, множество ребер определяется отображениями F и G, причём F определяет связи (переходы состояний), а G – выходы. Отображения в общем случае частичные, но если определено f(qi, aj), то определено и g(qi, aj).
Пример. Пусть граф переходов автомата представлен на рис.26.

Рис. 26. Пример автомата Мили.
При входной цепочке aabb получается выходная цепочка cdcc.
Функции переходов и выходов определяют автоматное отображение Va*®Vb* . При этом для любой входной цепочки a=a1a2….ak f(q0, a1a2….ak )= f(f(…f(q0, a1)a2)…. ak )
Или, эквивалентное индуктивное определение:
1. f(qi, aj) определяется по таблице перехода автомата,
2. f(qi, a aj)= f (f(qi, a), aj).
Соответствующая функция выхода:
1. g(qi, aj) определяется по таблице перехода автомата,
2. g(qi, a aj)= g (f(qi, a), aj).
Тогда входному слову a=a1a2….ak ставится в соответствие выходное слово w(a)=g(q0,a1)g(q0,a1 a2), …g (q0, a1a2….ak).
Это отображение, ставящее в соответствие входным словам выходные слова, называется автоматным отображение, или автоматным оператором, реализуемым автоматом S. Будем говорить, что S(a)=w.
Автоматное отображение можно определить индуктивно, как и функцию переходов.
1. S(q0, aj)= g(q0, aj)
2. S(qi, a aj)= S(q0, a)g (q0, a), aj).
Как и ранее, длина цепочки a обозначается½a½.
Свойства автоматного отображения:
1. a и w = S(a) имеют одинаковую длину ½a½=½ S(a)½.
2. Если a=a1a2, и S(a1a2)=w1w2, где ½a1½=½w1½, то S(a1)= w1.
Т. е. автоматный оператор является оператором без «предвосхищения», без заглядывания вперед, например, мы не можем построить инверсию слова.
Говорят, что состояние qj достижимо из состояния qi, если $aÎ Va*, такая, что f(qi, a)=qj.
Автомат S называется сильно связным, если любое состояние достижимо из любого другого.
Два автомата S и T изоморфны, если входы, выходы и состояния автомата S можно переименовать таким образом, чтобы таблица переходов автомата S превратилась в таблицу переходов автомата Т.
Например, автомат на рис. 26 изоморфен автомату на рис. 27. Если же заменить f на c на стрелке из qC в qA, то автоматы становятся неэквивалентны.
Соответствия:
a – b, b – a
c – c, d – f
q0 – qA
q1 – qB
q2 - qC

Рис.27. Автомат Мили, изоморфный автомату на рис. 26.
Пусть T и S автоматы с одинаковыми входными и выходными алфавитами. Состояние q автомата S и состояние r автомата T называются неразличимыми, если для любой входной цепочки aÎVa* S(q, a)=T(r, a). При T=S говорим о неразличимых состояниях одного автомата.
Если неразличимы входные состояния двух автоматов, то они реализуют одно и то же автоматное отображение. В этом случае автоматы эквивалентны.
Переход от автомата к эквивалентному – эквивалентное преобразование автомата.
Автоматы Мура.
Отличаются от автоматов Мили тем, что здесь одному состоянию ( а не переходу) соответствует один выход.
Конечный автомат Мура: S=< Va, Q, Vb, q0, F, G>, где
Va={a1,a2,…am}, m³1 – входной алфавит автомата,
Vb= {b1, b2, …, bn}, n³1 – выходной алфавит автомата,
Q= {q0,q1,…qk}, k³0 – внутренний алфавит (алфавит состояний),
q0ÎQ – начальное состояние автомата,
F - функция переходов; F: Q´ Va ®Q,
G - функция выходов, G: Q ® Vb.
Приняты две схемы задания автоматов Мура:
Первая схема | Вторая схема |
b(t)= g(q(t)) | q (t+1) =f (q(t), a(t)) b(t)= g(q(t+1)) |
При работе по первой схеме выход автомата однозначно соответствует состоянию, из которого совершается переход, по второй – состоянию, в которое автомат переходит. Хотя при записи уравнений первая схема выглядит более естественно, условие второй схемы реализовать проще: в соответствующих автоматах Мили для первой схемы должны быть одинаковые выходы на всех дугах, выходящих из состояния, для второй – одинаковые выходы должны быть на дугах, ведущих в состояние.
Рассмотрим автомат Мура, представленный на рис. 28

Рис.28 Автомат Мура
Здесь выходы, соответствующие состояниям, изображены справа от состояния. Если рассматривать работу автомата по первой схеме, то входу aabb будет соответствовать выход ABBC, если же по строй схеме, то этому же входу соответствует выход BBCA.
По автомату Мура всегда можно построить автомат Мили.
Автомат Мили, эквивалентный автомату Мура, представленному на рис. 28, при работе по первой схеме, дан на рис. 29, а при работе по второй схеме – на рис.30.

Рис. 29. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 1-ой схеме, здесь все дуги, ведущие из состояния, имеют одинаковые выходы.

Рис.30. Автомат Мили, эквивалентный автомату Мура на рис. 28, при работе по 2-ой схеме, здесь все дуги, ведущие в состояние, имеют одинаковые выходы.
По выразительной мощности эти модели (автоматы Мили и Мура) эквивалентны, если используется вторая версия для представления автоматов Мура. (Очевидно, что по автомату Мура всегда можно построить автомат Мили.)
Построение автомата Мура (вторая схема) по автомату Мили:
а) Если все дуги, ведущие в некоторое состояние qk, имеют одинаковые выходные пометки bs, то эта пометка просто переносится на это состояние (рис.31).

Рис. 31
Формально это условие для состояния qk и выхода bs можно записать так:
"qi, qj, an, am (f(qi, an)= f(qj, am)= qk Þ g(qi, an)= g(qj, am)= bs)
б) Общий случай: в некоторые вершины ведут дуги, помеченные разными символами. В этом случае все qk такие вершины расщепляются на множество вершин (расщепление состояния), помечаемых символами <qk, bj> (рис.32).
qk®{<qk, bs>/ f(qi, a)=qk, g(qi, a)=bs}

Рис. 32. Расщепление вершины.
В общем случае число состояний увеличивается. Затем для каждого состояния qi исходного автомата Мили и для каждой дуги из состояния qi в состояние qk с пометкой ap/bs(ap - вход, bs - выход) строятся дуги из всех <qi, bj> в <qk, bs> и помечаются ap.
Кроме того, если начальное состояние q0 расщепилось, вводится новое начальное состояние, в которое не ведет ни одна дуга.
Затем приписываем состояниям соответствующие выходы и переобозначаем состояния.
Например, рассмотрим автомат Мили (Рис. 33, а), приведенный так же на рис. 26. У этого автомата состояния q1 и q2 расщепляются, а q0 нет, поэтому нет необходимости вводить новое входное состояние. Полученный эквивалентный автомат Мура приведён на рис. 33.б.


Рис. 33. Автомат Мили(а) и эквивалентный ему автомат Мура(б) до и после (в) переобозначения состояний.
Таким образом, полный алгоритм построения эквивалентного автомата Мура по автомату Мили выглядит следующим образом:
1) Расщепляем состояния.
2) Вводим дополнительное входное состояние (если входное состояние расщепилось).
3) Строим дуги, соответствующие дугам исходного автомата.
4) Переносим выходные символы на соответствующие состояния.
5) Переобозначаем состояния.
Таким образом, установлено соответствие между разными типами автоматов.
Частичные автоматы
Автомат S называется частичным автоматом, если хотя бы одна из двух функций (F или G) не полностью определена, т. е. для некоторых пар (состояние, вход) значение F или G не определено (обозначается прочерками в таблице).
Состояния A и B называются псевдоэквивалентными (обозначается A@B), если они одновременно не определены или определены и равны функции F и G. Эти функции для частичных автоматов определяются следующим образом:
f(qi, a)
1) f(qi, aj) – по таблице переходов автомата
2) если f(qi, a) определена, то f(qi, a aj)@f(f(qi, a),aj)
3) если f(qi, a) не определена, то не определена и f(qi, a aj) для всех aj.
g(qi, a aj)
1) g(qi, aj) – по таблице переходов автомата
2) g(qi, a aj)@g (f(qi, a), aj).
Автоматное отображение:
1) S(qi, aj)= g(qi, aj) (если g(qi, aj) не определено, то S(qi, aj) считаем равным прочерку)
2) если f(qi, a) определена, то S(qi, a aj)=S(qi, a) g(f(qi, a) aj). Если g(f(qi, a), aj) не определена, то считаем её равной прочерку)
3) если f(qi, a) не определена, то не определена и S(qi, a aj) для всех aj.
Входное слово a, для которого S(qi, a) определено, называется допустимым для S.
Отметим неравноправность функций f и g – неопределенность g не препятствует допустимости слова, а неопределенность функции f для некоторого слова говорит о недопустимости любого его продолжения.
Состояния qi Î S и rjÎT псевдонеотличимы (псевдоэквивалентны), если для любой цепочки a S(qi, a)@T(rj, a) (Т. е. области определённости и неопределённости для qi и rj совпадают, и в области определённости отображения совпадают).
Автоматы S и T псевдонеотличимы, если для любого состояния автомата S найдётся псевдонеотличимое от него состояние автомата T, а наоборот, для любого состояния автомата T найдётся псевдонеотличимое от него состояние автомата S.
Для полностью определённых автоматов псевдонеотличимость совпадает с обычной неотличимостью.
Отношение псевдонеотличимости является отношением эквивалентности.
Пример псевдоэквивалентных автоматов приведён на рис.34.

Рис.34. Пример псевдоэквивалентных автоматов. Здесь соответствия состояний
S0 – A S2 – B, D S3 – B, D S4 - C | A – S0 B – S3,S2 C – S1 D – S2,S3 |
Недостаток введённого определения псевдоэквивалентности – необходимость совпадения областей определения. Можно дать эквивалентное определение, не требующее анализа совпадения областей: вводим новое, дополнительное состояние, переход в которое осуществляется при отсутствии перехода по данному входу, для которого переход по любому входу осуществляется в само себя, а в функции выхода прочерк будем рассматривать как дополнительную букву, таким образом автомат становится полностью определённым.
Минимизация не полностью определённых автоматов возможна двух типов: «строгая», с сохранением областей определения (что производится просто, как для доопределённого автомата), и через покрытия состояний, когда требуется совпадение переходов только в области определённости.
Если проводить строгую минимизацию, то автомат на рис. 34 а минимизируется до автомата, граф переходов которого приведен на рис. 35.

Рис. 35. Минимизированный автомат.
Два основных аспекта работы автомата:
1. Автоматы распознают входные слова, т. е. отвечают на вопрос aÎМ? (распознаватели)
2. Преобразуют входные слова в выходные( автоматные отображения):
с одной стороны, последовательность ответов распознавателя на входные слова а1, а1а2, … образуют выходное слово, которое является автоматным отображением;
с другой стороны, выходные буквы можно разбить на два класса С1 и С2, и считаем, что слово распознаётся, если g(qi, a)Î С1. Таким образом, эти два представления автоматов являются эквивалентными.
Интерпретация автоматов: Дискретное устройство, входная буква – входной сигнал, выходное слово – последовательность сигналов.
Свойство автоматов:
Теорема:
Существуют события, не представимые в конечных автоматах: никакая непериодическая последовательность не распознаваема в конечных автоматах( например, …)
Док-во:
Пусть непериодическая последовательность a=a1a2…aj… распознаётся автоматом S с n состояниями. Тогда для любого начального отрезка a1a2…aj f(a1a2…aj)= qkÎ C1. но тогда проходится последовательность состояний из C1, а оно конечно, значит, некоторое состояние встретится дважды: qs=qs+p. Значит, f(qs, as+1…as+p)=qs, поэтому периодическая последовательность так же будет распознаваться автоматом, и, следовательно, непериодическая последовательность не может распознаваться конечным автоматом вопреки предположению.
13.Сети автоматов. Их анализ и синтез.
Автомат (Мили) называется комбинационным, если для любого входного символа a и любых состояний qi и qj g(qi, a)=g(qj, a), иначе говоря, если выходной симовл не зависит от текущего состояния и определяется входным символом (все состояния автомата в данном случае эквивалентны, т. е. минимизированный автомат будет иметь всего одно состояние).
Автомат называется логическим, если его входной алфавит состоит из 2m двоичных наборов длины m, а выходной алфавит – 2n двоичных наборов длины n. Тогда функция выхода – набор из n логических функций от m переменных. Можно получать автоматные блок-схемы, например, схему, представленную на рис. 36.

Рис. 36. Схема автоматов.
Следует отметить, что автоматы в такой схеме должны уметь останавливаться.
Возможны различные случаи рассмотрения автоматных схем.
1. Если алфавиты автоматов не пересекаются. В этом случае действуют обычные правила минимизации для частичных автоматов, и для правильных последовательностей входных сигналов число суммарное состояний получаемого автомата – max ½Qi½.
2. Если входные алфавиты исходных автоматов совпадают или включают друг друга, тогда множество состояний является объединением множества состояний исходных состояний, затем могут производиться эквивалентные преобразования автомата, в этом случае число состояний £ S ½Qi½.
В любом случае блок-схема автоматов, работающих последовательно – конечный автомат S, значит, множество автоматов замкнуто относительно операции условного и безусловного перехода( следовательно, каждая программа является автоматом, и каждый алгоритм так же).
Синхронные сети автоматов.
Поскольку автомат – устройство с входом и выходом, то присоединение к входам одного автоматов выходов другого образует сеть, или схему, автоматов.
Под состоянием сети из m автоматов S1, S2,…,Sm понимается вектор (qi1,,,,qim), где каждое qij состояние автомата j. В общем случае число состояний автомата, полученного в результате построения сети – произведение числа состояний исходных автоматов.
Является ли полученная схема автоматом?
Один из способов введения времени – синхронный: такты, границы тактов нумеруются натуральными числами, начиная с 0.
Длина такта рассматривается как единица времени. Входное слово – временная последовательность сигналов (импульсов). Интервал между соседними импульсами – длина такта. Слово длины k будет обрабатываться за k тактов. Входная информация - a(t).
Автоматные функции f и g реализуются с задержкой; f (q(t), a(t))=q(t+1), q(0) –задаётся отдельно,
g(q(t),a(t))=b(t) обычно, ( иногда g(q(t),a(t))= b(t+1), тогда задаётся b(0))
Виды соединения автоматов:
1) Параллельное соединение
a) С разделительными входами и алфавитами А1 и А2 (рис. 37.а). S =<A, Q, V, q0, F, G>
В этом случае входной алфавит A= А1´А2, внутренний алфавит Q= Q1´Q2, выходной алфавит V= V1´V2. S называется прямым произведением автоматов S1 и S2. В этом случае a=(a1,a2) (Здесь верхний индекс означает отнесение к соответствующему алфавиту).
f((q1,q2), (a1,a2))=(f1(q1,a1),f2(q2,a2)).
Мы рассмотрели случай, когда два входа и два выхода. Может быть произвольное число входов и выходов.
b) С общим входом и алфавитом А (рис. 37 б).

В этом случае f((q1,q2), a)=(f1(q1,a),f2(q2,a)). Определение выходов в обоих случаях очевидно.
Рис. 37 Параллельное соединение автоматов.
2) Последовательное соединение автоматов (рис.38).

S =<A, Q, V, q0, F, G>, A=A1, V=V2, V1=A2, Q= Q1´Q2. Для F и G существенна задержка g1. Если задержка g1 равна 0, т. е. g1(q1(t), a(t))=v1(t), то q(t+1)=(q1(t+1),q2(t+1))= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t),a(t))), т. е. зависимость существует только от q(t), a(t), при этом состояние q(t+1)=f(q(t),a(t)), выход g((q1,q2),a)=g2(q2,g1(q1,a)).
Если же задержка g1 равна 1, т. е. g1(q1(t), a(t))=v1(t+1), то q(t+1= (f1(q1(t),a(t)), f2(q2(t), g1 (q1(t-1),a(t-1))), и такой простой зависимости, как для прошлого случая, нет.
Пример.
рассмотрим схему из двух элементов задержки, воспроизводящих вход через 1 такт. S1 и S2 имеют по одному состоянию, начальное значение выхода =0, S(a)=00a-2 (отбрасываются два последних символа последовательности).
Таблица переходов автомата, реализующего задержку:
q0 | q1 | |
0 | q0, 0 | q1, 1 |
1 | q0, 0 | q1, 1 |
Считаем, что если задержка g равна 0, g(q(t),a(t))= v(t)=g(t)
Обозначим состояние (qi, qj) через i j. Тогда таблица переходов/выходов результирующего автомата
00 | 01 | 10 | 11 | |
0 | 00,0 | 00,1 | 01,0 | 01,1 |
1 | 10,0 | 10,1 | 11,0 | 11,1 |
Т. о. цепь из двух элементов задержки описывается автоматом без задержки.
3) Соединение автоматов с обратной связью. Общая схема представлена на рис. 39

Рис.39 Схема соединения с обратной связью
Если рассматривать вариант обратной связи без задержки, то могут возникать противоречия.
Например, если s(x) функция Шеффера
, и v(t)=0, тогда x2=0, значит, v(t)=1, а при x1=1 это даёт v(t)=0. Противоречие, т. е. в реальности состояние будет не определено.
Поэтому вводится задержка и схема автомата приобретает следующий вид (рис.40).

Рис.40 Общая схема автомата с обратной связью
Всякий автомат при синхронной интерпретации может быть реализован как сеть, составленная из комбинационных автоматов и элементов задержки.
На рис. 40 приведена схема для автомата с функциями
q(t+1)=f(q(t),a(t))
v(t)=g(q(t),a(t))
На рисунке g – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом V, f – комбинационный автомат с входным алфавитом A´Q и выходным алфавитом Q, D – блок задержки (на 1 такт).
D – автомат Мура, входной и выходной алфавит которого Q= {q1,q2,…,qn}, множество состояний - R={r1,r2,…,rn}, ½R½=½Q½, функции g(ri)=qi, fD(ri, qj)=rj.
Частный случай D – двоичный элемент задержки, когда g1(t)=f(q(t), a(t))= q(t+1).
В важном частном случае, когда A, V,Q состоят из двоичных наборов, f и g – логические комбинационные автоматы, двоичные входы которых в момент t являются логическими функциями от двоичных переменных, образующих наборы a(t) и q(t), D – параллельное соединение элементов задержки. Число элементов задержки равно длине вектора Q, а число состояний D равно мощности входного алфавита ½Q½= 2n.
Так как произвольные конечные алфавиты могут быть закодированы двоичными наборами, то получается
Теорема. Любой конечный автомат при любом двоичном кодировании может быть реализован синхронной сетью из логических комбинационных автоматов и двоичных задержек, причем число задержек не может быть меньше log2½Q½.
Сеть из логических блоков и элементов задержки будем называть правильно построенной логической сетью (ППЛС), если
1. К каждому входу блока сети присоединён не более чем один выход блока сети (однако допускается присоединение выхода более чем к одному входу, т. е. допускается разветвление выходов)
2. В каждом контуре обратной связи, т. е. в каждом цикле, образованном блоками и соединениями между ними, имеется не менее одного элемента задержки.
Входами такой сети называются те входы блоков, к которым не присоединены никакие выходы, выходами сети называются те выходы блоков, которые не присоединены ни к каким входам (рис.41).

Рис. 41
Основные этапы проектирования автоматов
Mx - множество входных векторов,
Mz – множество выходных векторов,
My - - множество векторов, характеризующих входные каналы обратной связи (памяти),
My+ - множество векторов, характеризующих выходные каналы обратной связи (памяти).
Каждый из каналов в случае k-значной логики может находиться в одном из k значений из множества {0, 1,…,k-1}.
Правила вывода в грамматике, соответствующей автомату, можно определить как подстановку
XY+® Z Y-, Y+(t=0)=Y0+, Y+(t+t)=Y-(t).
Состояния каналов обратной связи будем называть внутренними состояниями автомата, а t - временем перехода из одного состояния в другое, причём t может быть постоянной для данного автомата или эже зависеть от изменения X. В первом случае автомат называется синхронным, во втором – асинхронным.
При заданном значении Y0+ последовательность входных векторов X (входная последовательность) однозначно определяет последовательность векторов Z (выходную последовательность).
Объём памяти автомата (число внутренних состояний автомата) обычно гораздо меньше объема памяти операционного автомата.
Общая структура автомата представлена на рис.42.

рис. 42. Общая схема автомата. Здесь
1 – преобразуемая информация,
2 – результат преобразования,
3 - управляющее воздействие, соответствующее реализуемому алгоритму,
4 - признаки, характеризующие результат
5 – сигнал, определяющий выполняемое преобразование и его начало,
6 – сигнал окончания операции.
!-2 – информационные каналы,
3-6- управляющие.
По Глушкову – ЭВМ – преобразователь информации, который целесообразно рассматривать как композицию пар автоматов (операционный+управляющий).
Общий порядок проектирования автоматов:
системное проектирование – логическое проектирование (логические блоки) – техническое проектирование.
Литература
1) «Лингвистические модели», М., 1983
2) В. Дж. Рейуорд-Смит «Теория формальных языков», М., Радио и связь, 1988
3) , -Вельский «Дискретная математика для инженера», Энергоатомиздат, 1988
4) «Основы дискретной математики», М., ВШ, 1986
5) «Фундаментальные основы дискретной математики», М., Наука, 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


