Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория вычислительных процессов и структур. Учебное пособие
.pdf
Распространим функцию δ с единственного символа на цепочку. Прежде всего отметим, что применение функции δ к пустой цепочке ε не приводит к переходу в новое состояние:
δ(q, ε) = q.
Рассмотрим цепочку, состоящую из трех символов входного
алфавита:
= x1x2x3.
При чтении данной цепочки автомат пройдет через последовательность состояний q0, q1, q2 и окажется в состоянии q3:
δ(q0, x1) = q1; δ(q1, x2) = q2; δ(q2, x3) = q3.
Тогда
δ(δ(q1, x2), x3) = q3,
откуда следует
δ(δ(δ(q0, x1), x2), x3) = q3.
Полученный результат можно записать в более компактной
форме:
δ(q0, x1x2x3) = q3,
или
δ(q0, ) = q3.
Очевидно, аналогичные выкладки будут действительны для
цепочки x1,..., xn, состоящей из любого количества символов.
Тогда понятие допустимой цепочки может быть сформулировано в следующем виде: цепочка допускается автоматом A, если
δ(q0, ) = qf,
где qf F.
В соответствии с вышесказанным формальное определение
языка L(A), допускаемого автоматом A, записывается в общем случае
следующим образом:
L(A) = { | δ(q0, ) F}.
21

Недетерминированный конечный автомат определяется точно
Рис. 3.3. Пример диаг-
раммы состояний
конечного автомата
так же, как и детерминированный, рассмотренный выше, но есть одно
отличие в определении функции переходов: если в детерминированном автомате ее значением является конкретное состояние, то в недетерминированном – множество состояний. Это означает, что возможны команды с одинаковыми левыми частями, а на диаграмме состояний из одной вершины может исходить несколько дуг, помеченных
одинаковыми символами входного алфавита.
Рассмотрим пример детерминированного конечного автомата,
в котором входной алфавит X = {a, b, c}; алфавит состояний
Q = {S, Y, Z, Т}; начальное состояние q0 = S; множество конечных состояний F = {Т}; функция переходов δ задана диаграммой состояний
на рис. 3.3.
Запишем список команд, опреде-
ляющих работу данного конечного автомата:
(S, a) X; (X, a) T; (T, b) Z; (Z, c)
X;
(S, b) Y; (Y, c) Z; (Z, c) X.
Таким образом, язык, допускае-
мый данным автоматом, это цепочки двух
видов:
L(A) = {aa(B)n, bcca(B)n},
где B = bca, n 0.
Например, aa, aabca, aabcabca,
bccabса и т.д.
Такие цепочки, как, например, aab, bccab, aabc, не допускаются
данным автоматом, т.к., прочитав их символы, он не окажется в заключительном состоянии.
Например, aa, aabca, aabcabca, bccabca и т.д. Такие цепочки,
как, например, aab, bccab, aabc, не допускаются данным автоматом, т.к.,
прочитав их символы, он не окажется в заключительном состоянии.
Такие цепочки, как, например, acb, baa, также не допускаются,
т.к. данный автомат не имеет команд для ситуаций вида (X, c) и (Y, a).
22

3.2. Автоматы с магазинной памятью
Языки типа 2 – бесконтекстные, или контекстно-свободные, –
распознаются автоматами с магазинной памятью, или магазинными
автоматами. Они представляют собой своего рода расширение идеи
конечного автомата: кроме входной ленты и управляющего устройства, они имеют дополнительную рабочую ленту – магазинную память
(рис. 3.4).
Pиc. 3.4. Автомат с магазинной памятью
Управляющее устройство снабжено дополнительной головкой,
всегда указывающей на верхнюю ячейку магазинной памяти.
За один такт своей работы магазинный автомат может выполнить следующие действия:
1) стереть символ из верхней ячейки магазина, что повлечет
сдвиг всех находящихся в нем символов на одну ячейку вверх;
2) стереть символ из верхней ячейки и записать его в магазин:
непустую цепочку символов, что повлечет сдвиг содержимого магазина вниз на количество ячеек, равное длине записываемой цепочки.
Таким образом, магазинная память представляет собой стек:
когда в нее поступает новый элемент, те элементы, которые уже были
внутри, сдвигаются вниз, а первым доступен всегда тот элемент, который был добавлен последним.
Введем формальное определение магазинного автомата. Детерминированный магазинный автомат – это совокупность следующих
семи объектов:
М = (V, VM, Q, δ, q0, z, F),
где V – конечный входной алфавит; VM – конечный магазинный алфавит; Q – конечное множество состояний; δ – функция переходов;
23

q0 Q – начальное состояние; z VM – начальный символ магазина
(граничный маркер), который в начале работы автомата является
единственным содержимым магазина; F – множество заключительных
сос-тояний автомата.
Функция переходов магазинного автомата представляет собой
отображение следующего вида:
δ : Q (V {ε}) VM Q VM.
Таким образом, каждое действие магазинного автомата зависит
от текущего состояния, текущего входного символа и текущего символа в верхней ячейке магазина, а значение функции перехода содержит элементы множества состояний и магазинного алфавита.
Недетерминированный магазинный автомат представляет собой совокупность тех же объектов, что и детерминированный, имея
отличие лишь в значениях функции переходов: в недетерминированном магазинном автомате они представляют собой конечные подмножества множества {Q VM}.
Представим функцию переходов недетерминированного магазинного автомата в виде совокупности команд
(q, a, z) {(q1,γ1), ..., (qm, γm)},
где q, q1,... qm Q, a V, z VM, γ
,… γ
1
VM*.
m
Эта запись читается следующим образом: если автомат находится в состоянии q, на входе управляющего устройства находится
символ а, а в верхней ячейке магазина находится символ z, то автомат
может перейти в состояние qi, если записать в магазинную память цепочку γ
(1 ≤ i ≤ m) вместо символа z, после чего управляющее уст-
i
ройство сместится на один символ вправо.
Команда
(q, ε, z) {(q1,γ1), ..., (qm, γm)}
означает, что вне зависимости от входного символа и без изменения
положения управляющего устройства автомат перейдет в состояние qi,
записав в магазинную память вместо символа z цепочку γ
.
i
Ситуацией магазинного автомата называется пара (q, γ). Переход из одной ситуации в другую обозначается следующим образом:
(q, γ) |– (q', γ').
24

Пусть имеется последовательность ситуаций (q1,γ1),..., (q
чем 1 ≤ i ≤ n справедливо (qi, γi) |– (q
(q
, γ
n+1
) получается из ситуации (q1, γ1) за некоторое число действий
n+1
i+1
, γ
). Тогда ситуация
i+1
n+1
, γ
), при-
n+1
магазинного автомата. Для записи этого факта используется следующее обозначение:
(q1,γ1) |–* (q
n+1
, γ
n+1
).
Язык, допускаемый магазинным автоматом, можно определить
двумя способами.
1. Входная цепочка принадлежит языку L1(M), если после
считывания последнего ее символа в магазине автомата М будет находиться пустая цепочка ε:
L1(M) = { | (q0, z) |–* (q, ε)}, где V*; q0, q Q; z VM.
2. Входная цепочка принадлежит языку L2(M), если после
считывания последнего ее символа автомат М окажется в одном из
своих заключительных состояний:
L2(M) = { | (q0, z) |–* (qf, γ)}, где V*; q0, q Q; qf F; z, γ VM.
Доказано, что множество языков, допускаемых в соответствии
с первым способом, совпадает с множеством языков, допускаемых в
соответствии со вторым способом.
Отметим, что, в отличие от конечных автоматов, для магазин-
ных автоматов детерминированные и недетерминированные модели не
эквивалентны соответствующему классу допускаемых языков: детерминированные автоматы с магазинной памятью допускают лишь некоторое подмножество бесконтекстных языков.
3.3. Машина Тьюринга
Языки типа 0 представляют собой наиболее общий класс языков, в котором отсутствуют какие-либо ограничения на продукции
грамматики. Машина Тьюринга является автоматом, который
распознает (допускает) такие языки.
В состав устройства машины Тьюринга входят управляющее
устройство и входная лента (рис. 3.5). Внешне эта конструкция напо-
25

минает конечный автомат (рис. 3.1), однако это только внешнее сходство. Во-первых, головка управляющего устройства машины Тьюринга умеет не только считывать символы с входной ленты, но и записывать новые символы на нее. Во-вторых, управляющее устройство способно двигаться не только слева направо, но и справа налево.
Входная лента бесконечна. Пустые ячейки помечены специальным символом B, не принадлежащим входному алфавиту.
Рис. 3.5. Устройство машины Тьюринга
Формально машина Тьюринга – это совокупность шести объектов:
T = (V1, V2, Q, δ, q0, F),
где V2 – конечное множество допустимых символов ленты;
V1 V2 \ {B} – входной алфавит; Q – конечное множество состояний;
q0 Q – начальное состояние; F Q – множество заключительных
состояний; δ – функция переходов, представляющая собой отображение вида
δ : Q V2 Q (V2 {B}) {L, R},
где L и R – это специальные символы, указывающее направление движения головки («Left» и «Right»).
Функцию переходов можно записать в виде совокупности команд:
(q, А) (q', А', L) или (q, А) (q', А', R).
Ситуация машины Тьюринга – это тройка (q, , i), где q Q,
= А1,..., Аn – непустая часть ленты (не содержащая символов В),
i – расстояние головки от левого конца (0 ≤ i ≤ n + l). Если i = 0, то
головка находится левее самого левого символа , а если i = n + 1, то –
правее самого правого (рис. 3.6).
26

Рис. 3.6. Расположение цепочки на ленте машины Тьюринга
Рассмотрим на примере произвольной ситуации машины Тьюринга (q, А1 ... Ai ... An, i) (1 ≤ i ≤ n) действия, которые она может вы-
полнять за один такт своей работы. Пусть среди ее команд имеется
следующая:
(q, Аi) (q', X, L).
В соответствии с данной командой машина Тьюринга может
совершить следующие движения, понимаемые как элементарное действие: стереть символ Ai с ленты, записать вместо него символ X и переместиться на одну ячейку влево. Отношение между исходной ситуацией и ситуацией, возникшей вследствие выполнения указанной выше
команды, можно записать следующим образом:
(q, А1 ... Ai ... An, i) |– (q', A1 ... A
i-1
X A
... An, i – 1).
i+1
Если мы рассмотрим команду
(q, Аi) (q', X, R),
то получим следующее отношение:
(q, А1... Ai... An, i) |– (q', A1 ... A
i-1
X A
i+1
... An, i + 1).
Рассмотрим ситуации следующего вида:
(q, A1... Аn, 0) и (q, A1 ... An, n + 1).
Обе они характерны тем, что головка управляющего устройства в них находится за пределами цепочки . Соответственно, к ним
могут быть применены следующие команды:
(q, B) (q', X, L) и (q, B) (q', X, R).
Применение первой команды к указанным ситуациям даст следующие
отношения:
(q, А1... An, 0) |– (q', XА1... An, 0),
(q, А1... An, n + 1) |– (q', А1... AnX, n).
27

Стоит обратить внимание, что в первом из полученных отношений индекс i не изменился и остался равным 0. Это связано с тем,
что, записав символ X перед самым первым символом цепочки и
сместившись влево, головка вновь оказалась на одну позицию левее
непустой части ленты, а индекс данной позиции по определению 0.
Применение второй команды даст следующие отношения:
(q, А1... An, 0) |– (q, XА1... An, 2),
(q, А1... An, n + 1) |– (q, А1... AnX, n + 2).
Индекс 1 в первом соотношении стал равным 2, а не 1, т.к., записав в
начало цепочки символ X и сместившись вправо, головка управляющего устройства стала указывать на символ А1, который теперь является вторым в непустой цепочке XА1... An.
Входная цепочка V
* допускается данной машиной Тью-
1
ринга, если, преобразовав , она окажется в одном из своих заключительных состояний. Тогда понятие языка, допускаемого машиной
Тьюринга, можно записать следующим образом:
L(T) = { | V1* (q0, , 1) |–* (qf, , i)},
где qf F; V2*; i 0.
Если формальный язык L порождается грамматикой типа 0, то
L допускается некоторой машиной Тьюринга. Обратное тоже верно.
Понятие недетерминированной машины Тьюринга вводится
аналогичным образом, как и для ранее рассмотренных автоматов.
Единственное отличие от детерминированной машины Тьюринга заключается в определении функции переходов, которая будет отображать Q V2 во множество подмножеств {Q (V2 {B}) {L, R}}.
Использование машины Тьюринга, а также других рассмотренных выше автоматов для построения автоматно-лингвистических
моделей ставит перед исследователем проблему распознавания. Ее
можно сформулировать следующим образом: возможно ли установить
принадлежность некоторой цепочки к языку L за конечное число
элементарных действий?
Не для всех языков типа 0 эта проблема разрешима: можно подобрать такой язык типа 0, что соответствующая ему машина Тьюринга не сможет за конечное число элементарных операций установить
принадлежность заданной цепочки к данному языку. Поэтому чаще
28

всего в реальных кибернетических моделях используются специальные классы машины Тьюринга, представителями которых, в частности, являются рассмотренные в предыдущих разделах автоматы, а
также линейно-ограниченные автоматы.
3.4. Линейно-ограниченные автоматы
Линейно-ограниченные автоматы распознают языки типа 1.
Формально линейно-ограниченный автомат определяется как совокупность следующих объектов:
M = (V1, V2, Q, δ, q0, F),
где V2 – конечное множество допустимых символов ленты;
V1 V2 \ {B} – входной алфавит; Q – конечное множество состояний;
q0 Q – начальное состояние; F Q – множество заключительных
состояний; δ – функция переходов, представляющая собой отображение вида
δ : Q V2 Q V2 {L, R},
где L и R – это специальные символы, указывающее направление движения головки («Left» и «Right»).
Приведенное определение во многом по форме совпадает с определением машины Тьюринга, однако есть важные различия.
Множество V1 содержит специальные символы Zf, Zp, которые
называются граничными маркерами. Они нужны, чтобы не позволить
головке управляющего устройства уйти с той части ленты, на которой
записана входная цепочка.
Таким образом, линейно-ограниченный автомат в общем случае представляет собой недетерминированную машину Тьюринга, для
которой введено ограничение длины цепочки. Операции, которые такой автомат может выполнить за один такт, аналогичны соответствующим операциям машины Тьюринга. Определение ситуации автомата также совпадает с определением ситуации машины Тьюринга.
Для линейно-ограниченного автомата общее представление
допускаемого языка записывается следующим образом:
L(M) = { | (V1 \ {Zf, Zp})* (q0, Zf Zp, 1) |–* (qf, , i)},
где qf F; V2*; 1 ≤ i ≤ n; n = ||.
29

4. МОДЕЛЬ ЦИФРОВОГО АВТОМАТА
4.1. Основные понятия теории автоматов
В предыдущей главе мы рассмотрели несколько моделей автоматов, и главным аспектом нашего рассмотрения была возможность
распознавания этими автоматами формальных языков определенных
классов. В данной главе мы несколько сместим акценты и рассмотрим
понятие автомата с позиций математического моделирования вычислительных устройств. Мы будем говорить преимущественно о модели
цифрового автомата, т.е. модели устройства, предназначенного для
преобразования цифровой информации.
В самом общем случае модель автомата можно представить
себе как «черный ящик», на вход которого поступает сигнал, вследствие чего автомат переходит в некоторое состояние и выдает выходной
сигнал (рис. 4.1).
Рис. 4.1. Модель абстрактного автомата: X – входной сигнал;
Y – выходной сигнал; Q – внутреннее состояние
Принимаются следующие допущения:
1. Входные сигналы не имеют длительности (что, конечно, не
соответствует реальной ситуации). Такое допущение позволяет
отнести все события к фиксированному моменту времени t.
2. Количество выходных сигналов конечно, и они возникают
вследствие действия входных сигналов.
3. Одновременно с появлением выходного сигнала происходит
мгновенный переход автомата из текущего в новое состояние.
В общей теории автоматов в зависимости от выбранных подходов и задач можно провести следующее разделение:
1. Абстрактная теория автоматов не рассматривает структуру самого автомата, а также его входных и выходных сигналов. Таким
образом, способ построения автомата исключается из рассмотрения, а
изучаются лишь переходы, которые происходят в автомате под воздействием входных сигналов, и выходные сигналы, которые при этом
возникают.
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
