Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
62
Добавлен:
16.04.2015
Размер:
919.34 Кб
Скачать

Пример 3.4

В результате получим грамматику

G2 = ({[S], [B]}, {0, 1}, P2, [S]), где

P2 = {(1) [S] 0[B],

(2) [B] 0[B],

(3) [B] 0,

(4) [B] 1[S]}.

Очевидно, что полученная грамматика G2 отличается от исходной грамматики G лишь обозначениями нетерминалов.

Другими словами, L(G2) = L(G).

81

§ 3.5. Свойства языков типа 3

Поскольку класс языков, порождаемых грамматиками типа 3, равен классу множеств, распознаваемых конечными автоматами, мы будем использовать обе формулировки при описании свойств класса языков типа 3.

Прежде всего покажем, что языки типа 3

образуют булеву алгебру.

82

Свойства языков типа 3

Определение 3.9. Булева алгебра множеств есть совокупность множеств, замкнутая относительно операций

объединения, дополнения и пересечения.

Определение 3.10. Пусть L *

1

 

некоторый язык и 1 2.

 

Под дополнением

вается множество

L

 

языка L подразуме-

 

*

\ L.

 

 

 

2

 

Пояснение. Вложение 1 2 предполагает, что дополнению принадлежат не только цепочки из “законных” символов из 1, но и цепочки, содержащие “незаконные” символы, т. е. символы не из 1.

83

Свойства языков типа 3

Лемма 3.1. Класс языков типа 3 замкнут относительно объединения.

Доказательство. Возможны два подхода: один использует недетерминированные конечные автоматы, другой основывается на грамматиках. Мы будем пользоваться вторым подходом.

Ret 92 Ret 112

84

Замкнутость rs относительно объединения

Пусть L1 = L(G1) и L2 = L(G2),

 

 

(1)

(1)

 

 

 

(

)

G = (

V

N , V

 

, P , S ) и G = (

2

 

 

N

 

1

T

 

1 1

2

V

 

 

 

 

 

 

 

— граматики типа 3. Можно предположить, что

где

,V ( T

2

)

, P2, S2).

V

(1)

V

( 2)

,

 

 

 

 

N

 

N

 

ибо в противном случае этого всегда можно достичь путём переименования нетерминалов данных грамматик.

Предположим также, что S VN(1) VN(2).

85

Замкнутость rs относительно объединения

Построим новую грамматику

G3 = ({S} VN

VN

 

)

, V

(

)

 

V

(

 

, P3, S), где

(1)

(

 

 

 

 

 

 

)

 

 

 

 

 

2

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

T

 

 

 

 

 

 

P3 = (P1 P2)\{S1 , S2 }

 

 

 

{S S1 P1 или S2 P2}.

Очевидно, что S

 

тогда и только тогда,

 

 

G

 

 

 

 

 

 

 

 

 

 

 

 

 

когда S1

или

 

 

3

 

 

 

 

 

 

 

 

S2

 

 

 

 

 

 

 

G

 

 

 

 

G2

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

могут выводиться

В первом случае из

 

только цепочки в алфавите

V

(

)

 

V

 

( )

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1 ,

 

 

 

 

 

 

 

 

 

 

 

N

 

 

T

во втором — в алфавите V

(2) V (2).

 

 

 

 

 

 

 

 

 

 

N

 

 

 

T

 

 

 

86

Замкнутость rs относительно объединения

Формально, если S1 , то

 

 

*

 

x

G

1

 

*

G

3

 

 

 

тогда и только тогда, когда

 

 

 

 

x.

 

 

 

 

G

1

 

 

 

 

 

 

 

*

 

 

 

 

 

Аналогично, если S2 то x

G

 

 

 

G

3

 

2

 

*

 

 

 

тогда и только тогда, когда

 

 

 

 

 

x.

 

 

 

 

G

 

 

 

 

 

 

 

2

 

 

 

87

Замкнутость rs относительно объединения

Сопоставив всё сказанное, заключаем, что

S x

 

 

 

 

 

 

 

 

 

 

*

 

тогда и только тогда, когда

G

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

*

 

 

S

 

*

 

 

либо

1

x,

либо

2

x

.

 

G

1

 

G

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А это и значит, что L(G3) = L(G1) L(G2). Что и требовалось доказать.

88

Замкнутость rs относительно дополнения

Лемма 3.2. Класс множеств, распознаемых конечными автоматами (порождаемых грамматиками типа 3), замкнут относительно дополнения.

Доказательство. Пусть

M = (Q, 1, , q0, F) — dfa и T(M) = L.

Пусть 2 — конечный алфавит, содержа-

щий 1, т. е. 1 2.

Мы построим fa M′ , который распознаёт

L *2 \ L.

Ret 92 Ret 97

89

Замкнутость rs относительно дополнения

Положим

M′ = (Q′, 2, ′,

q

, F′ ),

 

0

где Q′ = Q {d}, F′ = (Q \ F ) {d}, где d Q — новое состояние “ловушка”.

(1)′(q, a) = (q, a) для каждого q Q и a 1, если (q, a) определено;

(2)′(q, a) = d для тех q Q и a 2, для которых (q, a) не определено;

(3)′(d, a) = d для каждого a 2.

Ret 97

90

 

Соседние файлы в папке lectures