Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Формальные языки и грамматики. Учебное пособие для студентов факультета компьютерных наук и информационных технологий.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
457 Кб
Скачать

Пример 33. Снова рассмотрим автомат M0, представленный на рис. 3.2. В этом автомате нет недостижимых состояний. Всевозможные пары неразличимых состояний M0 найдены в примере 32, а следовательно, можно определить совокупность классов эквивалентности отношения неразличимости на множестве состояний автомата

[Q1]= {A,E },{B,H },{C},{D,F } .

Построим новый автомат, состояниями которого будут классы эквивалентности из [Q1]. В новом автомате объявим начальным состояние, помеченное множеством {A,E }, так как A – начальное состояние исходного автомата. Заключительным состоянием будет {C}. Из состояния {A,E } по сигналу 0 будет переход в {B,H }, так как в исходном автомате по сигналу 0 был переход из A в B. Из состояния {A,E } по сигналу 1 автомат перейдет в {D,F }, так как в исходном автомате по сигналу 1 был переход из A в F , и т. д. Окончательный вариант минимального автомата приведен на рис. 3.3.

 

1

 

 

 

0

G

1

D

 

 

 

 

 

 

1

 

 

 

Начало A,E

0

 

0

 

 

0

 

 

 

 

B,H

1

C

1

 

 

 

0

 

 

 

Рис. 3.3. Автомат, полученный в результате минимизации M0

3.2. Автоматы с магазинной памятью

Определение 53 (Автомат с магазинной памятью). Система текстовых замен M = (Ω,P) называется автоматом с магазинной памятью (МП-авто- матом), если:

1)в алфавите Ω можно выделить три алфавита Q, Σ и , называемых соответственно множеством символов состояний (множеством состояний), множеством входных сигналов (входным алфавитом) и множеством символов магазинной памяти, причем Q Σ = Ω;

2)в множестве Q выделяются элемент q0, называемый начальным (стартовым) состоянием, и подмножество F – множество заключительных состояний;

49

3)в множестве выделяется элемент 0, называемый начальным (стартовым) символом магазинной памяти;

4)любая продукция в P имеет одну из следующих форм:

Zq → γr,

q,r Q, γ , Z ,

 

(3.15)

Zqa → γr,

q,r Q, γ , Z ,

a Σ.

(3.16)

Таким образом, для определения МП-автомата необходимо определить семь компонент

(Q,Σ, ,P,q0, 0,F ).

Отношение выводимости для МП-автоматов имеет общий вид отношения выводимости в системах текстовых замен.

Определение 54 (Язык, допускаемый МП-автоматом). Язык, определенный (допускаемый, распознаваемый) МП-автоматом M = (Q,Σ, ,P,q0, 0,F ), есть множество слов

L(M) = {w Σ | 0q0w γq, q F,γ }.

Пример 34. Рассмотрим МП-автомат для языка L = {wwR| w (a + b) }:

M = ({q0,q1,g2}, {a,b}, {a,b, 0}, P, q0, 0, {q0}),

 

где множество продукций P определяется следующим образом:

 

0q0a → 0aq1,

(3.17)

aq1a → q2,

(3.23)

0q0b → 0bq1,

(3.18)

bq1b → q2,

(3.24)

aq1a → aaq1,

(3.19)

aq2a → q2,

(3.25)

bq1a → baq1,

(3.20)

bq2b → q2,

(3.26)

aq1b → abq1,

(3.21)

0q2 → q0.

(3.27)

bq1b → bbq1,

(3.22)

 

 

Данный автомат переносит в магазин очередной символ (продукции (3.17)–(3.22)) до тех пор, пока не решит, что поместил туда всю первую половину слова. После этого на каждом шаге верхний символ магазина автомат сравнивает с очередным входным символом, и если сравнение прошло успешно, удаляет его (продукции (3.23)–(3.26)). Перебрав все такие пары, автомат должен опустошить магазин вплоть до символа, отмечающего его дно, после чего переходит в заключительное состояние (продукция (3.27)).

Например, этот автомат может допустить цепочку abbaabba с помощью следующего вывода:

0q0abbaabba 0aq1bbaabba 0abq1baabba 0abbq1aabba

0abbaq1abba 0abbq2bba 0abq2ba 0aq2a 0q2 q0.

50

Утверждение 3.1. Язык допускается автоматом с магазинной памятью тогда и только тогда, когда он контекстно-свободный.

Определение 55 (Детерминированный МП-автомат). Автомат с магазинной памятью M = (Q,Σ, ,P,q0, 0,F ) называется детерминированным если:

1)для каждых q Q и Z в множестве P содержится точно одна продукция вида (3.15) и нет продукций вида (3.16) или нет продукций вида (3.15) и точно есть одна продукция вида (3.16) для каждого a Σ;

2)если в (3.15) или (3.16) Z = 0, то 0 является первым символом в γ.

Впоследнем определении пункт 1 является необходимым для детерминированного поведения автомата, тогда как пункт 2 следит за тем, чтобы магазин автомата никогда не оказался пустым.

Определение 56 (Детерминированный язык типа 2). Язык типа 2 называют детерминированным, если он допускается детерминированным МП-авто- матом.

3.3. Линейно ограниченные автоматы

Определение 57 (Линейно ограниченный автомат). Система текстовых замен M = (Ω,P) называется линейно ограниченным автоматом (ЛО-авто- матом), если:

1)в алфавите Ω можно выделить два алфавита Q и Σ, называемых соответственно множеством символов состояний (множеством состояний) и множеством символов ленты (входным алфавитом), причем Q Σ = Ω,

Q ∩ Σ = ;

2)в множестве Q выделяются элемент q0, называемый начальным (стартовым) состоянием, и подмножество F – множество заключительных состояний;

3)любая продукция в P имеет одну из следующих форм:

qa → rb,

q,r Q, a,b Σ,

(3.28)

qa → ar,

q,r Q, a Σ,

(3.29)

cqa → rca,

q,r Q, a,c Σ.

(3.30)

Более того, для каждых q, a и r множество P не содержит ни одного правила вида (3.30) или содержит (3.30) для всех c Σ.

Таким образом, ЛО-автомат можно представить как набор

M = (Q,Σ,P,q0,F ).

Определение 58 (Язык, допускаемый ЛО-автоматом). Язык, определенный

(допускаемый, распознаваемый) ЛО-автоматом M = (Q,Σ,P,q0,F ), есть множество слов

L(M) = {w Σ | q0w αq, q F,α Σ }.

51

Утверждение 3.2. Язык допускается ЛО-автоматом тогда и только тогда, когда он контекстно-зависимый.

Определение 59 (Детерминированный ЛО-автомат). ЛО-автомат называется детерминированным если для каждых q и a выполнено только одно из следующих условий:

1)в P есть точно одна продукция вида (3.28);

2)в P есть точно одна продукция вида (3.29);

3)в P есть точно один набор продукций вида (3.30), в котором c пробегает все значения из Σ.

3.4.Машины Тьюринга

Определение 60 (Машина Тьюринга). Система текстовых замен M = (Ω,P) называется машиной Тьюринга, если:

1)в алфавите Ω можно выделить два алфавита Q и , называемых соответственно множеством символов состояний (множеством состояний) и множеством символов ленты, а также дополнительный символ # – маркер границы строки, не принадлежащий этим двум алфавитам, причем

Q {#} = Ω;

2)в множестве Q выделяются элемент q0, называемый начальным (стартовым) состоянием, и подмножество F – множество заключительных состояний;

3)в множестве выделяется подмножество Σ, называемое множеством входных сигналов, а также вспомогательный символ o;

4)любая продукция в P имеет одну из следующих форм:

qa → rb

(перезапись),

(3.31)

qac → arc

(сдвиг вправо),

(3.32)

qa# → aro#

(сдвиг вправо с расширением),

(3.33)

cqa → rca

(сдвиг влево),

(3.34)

#qa → #roa

(сдвиг влево с расширением),

(3.35)

где q,r Q, a,b,c . Более того, для каждых q, a и r множество P не содержит ни одного правила вида (3.32) и (3.33) (соответственно (3.34) и (3.35)) или содержит и (3.32), и (3.33) (соответственно (3.34) и (3.35)) для всех c . Ни для каких q и a цепочка qa не является подцепочкой левой части двух разных продукций из семейства продукций вида (3.31), (3.33) и (3.35).

52

Таким образом, машину Тьюринга можно представить как набор

M = (Q,Σ, ,P,#,o,q0,F ).

Определение 61 (Финализирующая цепочка). Для заданной машины Тьюринга M = (Q,Σ, ,P,#,o,q0,F ) цепочка qaα, q Q, a {#}, α {#}

называется финализирующей, если qa не является подцепочкой левой части ни одной продукции в P.

Определение 62 (Язык, допускаемый машиной Тьюринга). Язык, определенный (допускаемый, распознаваемый) машиной Тьюринга,

M = (Q,Σ, ,P,#,o,q0,F ),

есть множество слов

L(M) = {w Σ | #q0w# #αqβ#,

q F, α,β ,qβ# – финализирующая}.

Теорема 18 (О классе языков, допускаемых машиной Тьюринга). Если язык допускается машиной Тьюринга, то это язык типа 0.

Доказательство. Пусть L – язык, допускаемый машиной Тьюринга:

M = (Q,Σ, ,P,#,o,q0,F ).

Определим G = (N,Σ,P P,X0) – аналитическую грамматику типа 0, распознающую язык L. В качестве множества нетерминалов возьмем множество

N = Q ( − Σ) {#} {X0,X1,X2}.

Множество продукций Pсоставим из правил

ε → #q0,

ε → #,

qa → X1,

X1b → X1,

X1# → X2,

q# → X2,

bX2 → X2,

#X2 → X0,

где b пробегает все символы из , q и a – такие значения, что q F и цепочка qa является финализирующей.

Покажем, что L(G) = L(M).

53

Действительно, если w L(M), то по правилам построенной грамматики возможен вывод

w #q0w #q0w# #αqaβ# #αX1β# #αX2 X0

или, в случае w = ε,

w #q0 #q0# #X2 X0.

Следовательно, w L(G).

В обратную сторону. Пусть w L(G). Если w = ε, то существует вывод по грамматике G из #q0# в X0. Это подразумевает, что q0 F , а значит, ε L(M). Если же w =6 ε, то по грамматике G существует вывод

w #αqaβ# X0,

где q F , a , α,β , qa – финализирующая цепочка. Это означает, что w L(M).

Утверждение 3.3. Любой язык типа 0 допускается машиной Тьюринга.

Контрольные вопросы и задания

1.Дайте определение конечного автомата.

2.В чем отличие работы детерминированного и недетерминированного автомата?

3.Какими средствами можно определить конечный автомат?

4.Что представляет собой диаграмма автомата?

5.Как определяется таблица переходов для конечного автомата?

6.Каким образом автомат может использоваться для определения языков?

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

8.Какой класс языков определяется конечными автоматами?

9.Как определить, является ли язык типа 3 пустым?

10.Как формируется множество продукций грамматики типа 3 для языка, заданного конечным автоматом?

11.Как определяется множество заключительных состояний при построении конечного автомата по грамматике типа 3?

12.Как построить конечный автомат при заданном языке типа 3 для дополнения этого языка?

13.Как определить, что язык типа 3 является бесконечным?

14.В чем различие конечного автомата и автомата с магазинной памятью?

15.В чем заключается порядок работы автомата с магазинной памятью?

16.Как автомат с магазинной памятью допускает язык?

17.Какой класс языков допускается автоматами с магазинной памятью?

54

18.Дайте определение языка, допускаемого автоматом в терминах системы текстовых замен.

19.Как определить, является ли детерминированным автомат с магазинной памятью?

20.Дайте определение линейного ограниченного автомата.

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

22.Какой класс языков определяется линейными ограниченными автоматами?

23.Какую роль играет понятие финализирующей цепочки в терминах машин Тьюринга?

24.Как построить грамматику для языка, допускаемого машиной Тьюринга?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]