Лекции по дискретке (1021001), страница 12
Текст из файла (страница 12)
Рис. 4.2. Совмещенная таблица автомата А1.
Определение.
Так как в автомате Мура выходной сигнал зависит только от внутреннего состояния и не зависит от входного сигнала, то он задается одной отмеченной таблицей переходов, в которой каждому ее столбцу приписан, кроме состояния qm еще и выходной сигнал yg = λ (qm), соответствующий этому состоянию.
Пример табличного описания автомата Мура А2 (рис. 4.3). Для частичных автоматов, у которых функции δ или λ определены не для всех пар (qm, xf)∈Q x X, на месте неопределенных состояний и выходных сигналов ставится прочерк или знак Ø.
Рис. 4.3. Таблица переходов автомата Мура.
32.Способы задания автоматов. Граф автомата.
Часто автомат задают с помощью графа автомата.
Определение.
Граф автомата – ориентированный граф, вершины которого соответствуют состояниям, а дуги – переходам между ними. Две вершины графа автомата qm и qs (исходное состояние и состояние перехода) соединяются дугой, направленной от qm к qs, если в автомате имеется переход из qm в qs, то есть если qs = δ (qm, xf) при некотором xf ∈Х. Данной дуге (qm , qs) приписывается входной сигнал xf и выходной сигнал yg = λ (qm , xf). При этом выходной сигнал yg записывается внутри вершины qm или рядом с ней.
На рис. 4.4 и 4.5 приведены графы автоматов А1 и А2, описанных ранее табличным способом.
Рис. 4.4. Граф автомата А1
Рис. 4.5. Граф автомата А2
Любой автомат может быть задан с помощью графа, но не всякий граф в алфавитах Q, X, Y задает автомат. В графе автомата не должно существовать двух дуг с одинаковыми входными сигналами, выходящих из одной и той же вершины (условие однозначности).
33.Способы задания автоматов. Матрица переходов и выходов.
Определение.
Матрица переходов и выходов представляет собой таблицу с двумя входами. Строки и столбцы таблицы отмечены состояниями. Если существует переход из состояния qm под действием входного сигнала xf в состояние qs, с выдачей выходного сигнала yi, то на пересечении строки qm и столбца qs записывается пара xf / yi.
Для автомата Мура используется матрица, столбцы которой отмечены выходными сигналами yi, а на пересечении ее строк и столбцов указываются только входные сигналы xf.
Ниже приведены матрицы переходов и выходов для рассмотренных ранее автоматов A1 и A2 (рис. 4.6).
Рис. 4.6. Матрицы переходов и выходов автоматов А1 (а) и А2 (б).
34.Машины Тьюринга и конечные автоматы.
Определение.
Машины Тьюринга представляют собой абстрактные устройства самого общего типа и являются обобщением автоматов Мили и Мура.
Машины Тьюринга наиболее близки к реальным ЭВМ, так как они представляют собой хорошую математическую модель вычислительной машины. Как показали многочисленные теоретические исследования, классам языков, соответствующим четырем типам грамматики по классификации Хомского, можно поставить во взаимно-однозначное соответствие четыре типа распознающих устройств. Простейшим из них является класс так называемых конечных автоматов, которые допускают (распознают) все языки, порождаемые автоматными (регулярными) грамматиками, и только их.
Определение.
Детерминированным конечным автоматом называют следующую пятерку:
А = (X, Q, δ, q0, F),
где X = {x1, ..., xm} – входной алфавит (конечное множество входных сигналов);
Q = {q0, q1, ..., qn-1} – алфавит состояний автомата (конечное множество символов);
δ – функция переходов;
q0 ∈ Q – начальное состояние автомата;
F ⊆ Q – множество состояний, называемых заключительными.
На содержательном уровне функционирование конечного автомата можно представить следующим образом. Имеется бесконечная лента с ячейками, в каждой из которых может находиться один символ из Х. На ленте находится цепочка символов α∈ Х*. Ячейки слева и справа от цепочки не заполнены. Имеется некоторое конечное управляющее устройство с читающей головкой, которое может последовательно считывать символы с ленты, передвигаясь слева направо. При этом устройство может находиться в каком-либо одном состоянии из Q. Каждый раз, переходя к новой ячейке, устройство переходит к новому состоянию в соответствии с функцией δ.
На рис. 4.7 изображен конечный автомат в начальном состоянии q0, считывающий первый символ хi1 , входной цепочки αi . Стрелкой показано направление движения читающей головки. Отображение δ можно представить в виде совокупности так называемых команд, которые обозначаются следующим образом:
(q, x) → q′,
где q, q′∈ Q; x = X.
Рис. 4.7. Интерпретация конечного автомата.
Определение.
Число команд автомата конечно, левая часть команды (q, x) называется ситуацией автомата, а правая q′ – есть состояние, в котором автомат будет находиться на следующем шаге своей работы.
Графически команду удобно представлять в виде дуги графа, идущей из вершины q в вершину q′ и помеченную символом х входного алфавита (рис. 4.8).
Рис. 4.8. Графическое представление команды автомата.
Определение.
Полностью отображение δ изображают с помощью диаграммы состояний, то есть ориентированного графа, вершинам которого поставлены в соответствие символы Q, а дугам – команды отображения δ.
Если автомат оказывается в ситуации (qj, xi), не являющейся левой частью какой-либо его команды, то он останавливается.
Определение.
Если управляющее устройство считает все символы цепочки α, записанной на ленту, и при этом перейдет в состояние qf ∈ F (заключительное состояние), то говорят, что цепочка α допускается автоматом А (автомат допускает цепочку α).
Определение.
Множество цепочек, допускаемых данным автоматом, называют языком этого автомата.
Отображение δ можно представить и в виде функции:
δ (q, x) = q′,
где q, q′∈ Q; x ∈ X.
Эта функция интерпретируется так же, как и команда (q, x) → q′. Её можно распространить с одного входного символа на цепочку следующим образом: δ(q, ε) = q, где ε – пустая цепочка;
δ(q, αx) = δ(δ(q, α), x), где х ∈ Х, α ∈ Х*.
Таким образом, можно сказать, что α допускается автоматом А, если δ(q0, α) = qf , где qf ∈ F, а язык, допускаемый автоматом А, это
L(A) = {α | δ(q0, α)∈ F}.
Пример.
Рассмотрим пример детерминированного конечного автомата
А = (X, Q, δ, q0, F),
где Х = {a, b}; Q = {S, Y, Z, T}; q0 = S; F = {T}, а δ задается диаграммой состояний, представленной на рис. 4.9.
Рис. 4.9. Диаграмма состояний детерминированного конечного автомата
Очевидно, что язык, допускаемый этим автоматом,
L(A) = {Mn | n ≥ 1},
где M = {aa, bb}.
Цепочка α1 = aabbaa, допускается данным автоматом, так как после ее просмотра автомат окажется в состоянии Т∈ F.
Цепочка aabba не допускается, так как после ее просмотра автомат окажется в состоянии Y, не являющемся заключительным.
Цепочка abb не допускается потому, что после считывания символа а автомат окажется в ситуации (Y, b), для которой нет команды.
Определение.
Недетерминированный конечный автомат – есть пятерка того же вида. Единственное отличие заключается в том, что значениями функции переходов являются не состояния, а множество состояний (или, в терминах команд, возможны различные команды с одинаковыми левыми частями). Это соответствует тому факту, что в диаграмме состояний из одной вершины может исходить несколько дуг с одинаковой меткой.
35.Машины Тьюринга с двумя выходами.
С точки зрения лингвистики машины Тьюринга можно рассматривать как распознающие устройства, допускающие языки самого широкого из рассмотренных классов: языки типа 0 или рекурсивно-перечислимые множества.
Определение.
Машина Тьюринга состоит из конечного управляющего устройства, входной ленты и головки, которая в отличие от головки конечного автомата может не только считывать символы с ленты, но и записывать на нее новые символы.
Лента считается бесконечной. Перед началом работы n ячеек ленты содержат символы входной цепочки αi = xi1 , xi2 ,..., xin, все остальные ячейки считаются заполненными специальным символом В («пустое место»), который не является входным (рис. 4.10).
Рис. 4.10. Интерпретация машины Тьюринга
Определение.
Формально машина Тьюринга определяется как следующая шестёрка:
Т = (V1, V2, Q, δ, q0, F),
где V1 = {a1, ..., an} – входной алфавит (конечное множество символов);
V2 = {А1, ..., Аk, B} – конечное множество ленточных символов, которое в качестве своего подмножества содержит входной алфавит;
Q = {q0 , q1, ..., qn-1} – конечное множество состояний;
q0 ∈ Q – начальное состояние;
F ⊆ Q – множество заключительных состояний;
δ – функция, отображающая Q . V2 в Q . V2 – {B} . {Л, П}.
(Л и П – специальные символы, указывающие на направление движения головки, лево и право).
Отображение (функцию) δ удобно задавать совокупностью команд вида: (q, A) → (q′, A′, Л) либо (q, A) → (q′, A′, П).
Определение.
Ситуация машины Тьюринга Т – это тройка вида (q, β, i),
где q ∈ Q;
β = A1, ..., An – часть ленты, не содержащая символов В (непустая часть ленты);
i = (0 ≤ i ≤ n+1) – расстояние ленточной (пишущей - читающей) головки от левого конца β; при i = 0 головка находится левее самого левого символа β, при i = n+1 – правее самого правого.
Рассмотрим произвольную ситуацию машины Т:
(q, A1 ... Ai .... An, i), 1 ≤ i ≤ n.
Пусть среди команд отображения δ имеется следующая:
(q, Ai) → (q′, X, Л).
При этом возможно следующее движение (или элементарное действие) машины Тьюринга: головка стирает символ Аi, записывает вместо него символ Х и перемещается на одну ячейку влево.
Между старой и вновь возникшей ситуациями в этом случае существует отношение, которое записывается следующим образом:
(q, A1 ... Ai .... An, i) ├ (q′, A1 ... Ai-1 Х Ai+1.... An, i -1).
Символ ├ означает – «утверждается».
Аналогично для команды (q, Ai) → (q′, X, П) движение машины Тьюринга записывается как
(q, A1 ... Ai .... An, i) ├ (q′, A1 ... Ai-1 Х Ai+1.... An, i+1).
Кроме рассмотренной ситуации возможны и такие:
(q, A1 ... An, 0);
(q, A1 ... An, n+1).
К ним применимы команды вида:
(q, В) → (q′, X, Л) либо
(q, В) → (q′, X, П).
Первая из этих команд меняет указанные ситуации соответственно следующим образом:
(q, A1 ... An, 0) ├ (q′, X A1 ... An, 0);
(q, A1 ... An, n+1) ├ (q′, A1 ... An X, n).
Вторая из этих команд меняет их так:
(q, A1 ... An, 0) ├ (q′, X A1 ... An, 2);
(q, A1 ... An, n+1) ├ (q′, A1 ... An X, n+2).
Определение.
Если ситуации (q1, β1, i1) и (q2, β2, i2) связаны между собой некоторым числом элементарных действий, то между ними имеет место отношение:
(q1, β1, i1) ├* (q2, β2, i2).
Определение.
Язык, допускаемый машиной Тьюринга Т, это:
L(Т) = {α | α∈ V1* ∧ (q0, α, 1) ├* (qf, β, i)},
где qf = F, β ∈ V2*, i ≥ 0.
Другими словами, если, преобразуя входную цепочку α, машина Т окажется в одном из своих заключительных состояний, эта цепочка допускается данной машиной.
Определение.
Так же как для автоматов введем понятие недетерминированной машины Тьюринга. Её отличие от детерминированной заключается в том, что функция δ отображает множество Q x V2 в множество подмножеств
Q x (V2 – {B}) x {Л, П}.
Определение.
Если язык L порождается грамматикой типа 0, то L допускается некоторой машиной Тьюринга. Верно и обратное, если язык L допускается некоторой машиной Тьюринга, то L порождается грамматикой типа 0.
36.Машины Тьюринга и линейно-ограниченные автоматы.
Рассмотренные типы автоматов и машин Тьюринга часто используются для построения автоматно-лингвистических моделей, предназначенных для распознавания языков. Необходимо знать, разрешима ли для них так называемая проблема распознавания или нет.
Определение.
Проблема разрешимости заключается в следующем. Пусть есть некоторая цепочка α на входе машины Тьюринга, которая допускает язык L. Всегда ли можно установить принадлежность цепочки α к языку L за конечное число элементарных действий этой машины?
Однако не для всех языков типа 0 эта проблема разрешима.
Другими словами, можно подобрать такой язык типа 0, что соответствующая ему машина Тьюринга для некоторой цепочки α за конечное число элементарных действий не сможет установить принадлежность ее к данному языку. Поэтому машина Тьюринга в общем виде не нашла применения в реальных кибернетических моделях; языки типа 0 также не используются.
Наибольший интерес представляют различные специальные классы машин Тьюринга, к которым можно отнести автоматы, рассмотренные выше, а также так называемые линейно-ограниченные автоматы, допускающие языки типа 1 (НС-языки).
Определение.
Линейно-ограниченным автоматом называется шестерка:
М = (V1, V2, Q, δ, q0, F),
где V1 = {a1, ..., am, Zl, Zp} – конечный входной алфавит;
V2 = {А1, ..., Аk} – конечное множество ленточных символов, причем V1 ≤ V2;