formal_language_theory / lectures / unit_3
.pdfПример 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 |
|