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

Теория вычислительных процессов и структур. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Распространим функцию δ с единственного символа на цепоч­ку. Прежде всего отметим, что применение функции δ к пустой цепоч­ке ε не приводит к переходу в новое состояние:
δ(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, aV, zVM, γ
,… γ
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; zVM.
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]