Глава 9 ОПЕРАЦИИ НАД ЯЗЫКАМИ § 9.1. Замкнутость

advertisement
Глава 9
ОПЕРАЦИИ НАД ЯЗЫКАМИ
§ 9.1. Замкнутость
относительно элементарных операций
В этой главе мы применяем операции объединения, конкатенации, обращения, замыкания и т.д. к языкам разных типов. Интересно выяснить, какие
операции какие классы языков сохраняют, т.е. отображают языки некоторого
класса в тот же самый класс. Есть ряд причин интересоваться этим вопросом.
Во-первых, знание, сохраняет операция или нет данный класс языков, помогает
характеризовать этот класс. Во-вторых, часто бывает легче узнать, что сложный
язык относится к некоторому классу, при помощи того факта, что эта принадлежность является результатом различных операций над другими языками в
данном классе, чем путем непосредственного конструирования грамматики для
этого языка. В-третьих, знание, полученное из изучения операций над языками,
может быть использовано при доказательстве теорем, как это было сделано в гл.
7, где мы показали, что класс рекурсивно перечислимых множеств строго содержит рекурсивные множества, используя при доказательстве тот факт, что рекурсивные множества замкнуты относительно дополнения.
Начнем с рассмотрения операций объединения, конкатенации, замыкания
Клини и обращения. Используем следующую лемму о “нормальной форме” для
контекстно-зависимых языков и языков типа 0:
Лемма 9.1. Каждый контекстно-зависимый язык порождается контекстно-зависимой грамматикой, в которой все правила имеют форму либо α → β, где
α и β — цепочки, состоящие из одних только нетерминалов, либо A → b, где A —
нетерминал, а b — терминал. Каждый язык типа 0 порождается грамматикой типа 0, правила которой имеют указанную форму.
Доказательство. Пусть G = (VN, VT, P, S) — контекстно-зависимая грамматика. Каждому a ∈ VT сопоставим новый символ Xa. Рассмотрим грамматику
G1 = ( VN' , VT, P1, S), где VN' = VN ∪ {Xa | a ∈ VT}. Множество P1 включает все правила вида Xa → a. Если α → β ∈ P, то α 1 → β1 ∈ P1, где цепочки α 1 и β1 получаются из цепочек α и β путем замещения в них каждого терминала a символом
Xa. Доказательство тривиально и мы оставляется его читателю в качестве упражнения. Подобное же доказательство применимо к грамматикам типа 0.
Теорема 9.1 Классы регулярных, контекстно-свободных, контекстно-зависимых и рекурсивно перечислимых множеств замкнуты относительно объединения, конкатенации, замыкания и обращения.
Доказательство. Для класса регулярных множеств доказательство было дано в гл. 3.
117
(1)
(2)
Рассмотрим две грамматики: G1 = ( VN , V T(1) , P1, S 1) и G2 = ( VN , V T(2) , P2 , S 2),
причем обе либо контекстно-свободные, либо контекстно-зависимые, либо типа
0. Без потери общности можно предполагать, что VN(1) ∩ VN(2) = ∅.
Кроме того, согласно лемме 9.1 и теореме 4.5 можно считать, что правила
грамматик G 1 и G 2 имеют форму α → β и A → a, где α и β — цепочки, состоящие из одних только нетерминалов, A — одиночный нетерминал, а a — одиночный терминальный символ. Кроме того, если G1 и G2 — контекстно-свободные
грамматики, то β = ε подразумевает, что α есть S 1 или S 2 и что α никогда не появляется в правой части никакого правила.
Объединение. Пусть G3 = ( VN(1) ∪ VN(2) ∪ {S 3}, V T(1) ∪ V T(2) , P3 , S3), где S 3 ∉
(1)
(2)
VN ∪ VN , а множество P3 содержит правила S 3 → S 1, S 3 → S 2 и все правила из
множеств P1 и P2 за исключением S 1 → ε и S 2 → ε, если G1 и G2 — контекстнозависимы. В случае, когда G1 и G2 — контекстно-зависимы и S 1 → ε ∈ P1 или
S2 → ε ∈ P2, добавим правило S 3 → ε к множеству правил P3. Теперь грамматика
G 3 — того же типа, что и грамматики G1, G2, и L(G3) = L(G1) ∪ L(G2).
Конкатенация. Пусть G4 = ( VN(1) ∪ VN(2) ∪ {S 4}, V T(1) ∪ V T(2) , P4 , S4), где S 4 ∉
(1)
(2)
VN ∪ VN , а множество P4 содержит правило S 4 → S 1 S 2 и все правила из множеств P1 и P2, за исключением правил S 1 → ε и S 2 → ε, если G1 и G2 — контекстно-зависимы. В случае, когда G1 и G2 — контекстно-зависимы и S 1 → ε ∈ P1, добавим правило S4 → S 2 к множеству правил P4 ; если S 2 → ε ∈ P2, то добавим правило S 4 → S 1 к множеству P4. Если S 1 → ε ∈ P1 и S 2 → ε ∈ P2, то добавим правило
S 4 → ε к множеству P4. Теперь грамматика G4 — того же типа, что и грамматики
G1, G2 и L(G4 ) = L(G1)L(G2).
S
Рис. 9.1.
α
Заметим, что поскольку VN(1) ∩ VN(2) = ∅ и все правила из множеств P1, P2
имеют нетерминалы исключительно слева, невозможно, чтобы строка, образованная правым концом сентенциальной формы грамматики G1, за которой следует левый конец сентенциальной формы грамматики G2, могла быть левой стороной правила в множестве P4. Это означает, что левая часть любого правила целиком состоит из нетерминалов только одной из двух грамматик (см. рис. 9.1).
Соответственно и все правило относится к одной исходной грамматике. Доказательство того, что L(G4 ) = L(G1)L(G2) просто.
118
Замыкание. Пусть G5 = (VN, V T(1) , P5 , S5), где VN = VN(1) ∪ {S 5, S 5' }, а P5 =
P1 ∪ {S5 → S1S5, S5 → ε}, если G5 — контекстно-свободная грамматика, иначе
P5 = P1 ∪ {S5 → ε, S5 → S1, S5 → S1 S 5' } ∪ {a S 5' → aS1, a S 5' → aS1 S 5' | a ∈ V T(1) }.
Однако в случае, когда G1 — контекстно-зависимая грамматика, правило S1 → ε,
если оно имеется, отбрасывается. Грамматика G5 является грамматикой того же
типа, что и G1, и L(G5) = (L(G1))*.
Теперь рассмотрим операции пересечения и дополнения.
Теорема 9.2. Класс контекстно-свободных языков не замкнут относительно
пересечения.
n n i
j n n
Доказательство. Языки L1 = {a b c | n ≥ 1, i ≥ 0} и L2 = {a b c | n ≥ 1,
i ≥ 0} являются контекстно-свободными, поскольку они порождаются грамматиками G1 = ({S, T }, {a, b, c}, {S → Sc, S → T , T → aTb, T → ab}, S ) и G2 = ({S, T },
{a , b, c}, {S → aS, S → T , T → bTc, T → bc}, S ) соответственно. Теперь язык L
n n n
= L1 ∩ L2 = {a b c | n ≥ 1}, который не контекстно-свободен по тривиальному
следствию из теоремы 4.7. Действительно, все цепочки L не соответствуют требуемому условию: в L должна быть цепочка uvwxy, такая, что все цепочки вида
uv n wx n y при любом n тоже принадлежали бы языку L. Мы могли бы считать
u = y = ε, но ядро w должно быть в первой степени, а в цепочках из языка L оно
тоже в степени n .
Теорема 9.3. Класс контекстно-свободных языков не замкнут относительно
дополнения.
Доказательство. Поскольку класс контекстно-свободных языков замкнут
относительно объединения, но не пересечения, то он не может быть замкнут относительно дополнения, поскольку L1 ∩ L2 = L1 ∪ L 2 .
Теорема 9.4. Класс контекстно-свободных языков замкнут относительно
пересечения с регулярным множеством.
Доказательство. Пусть L — контекстно-свободный язык, а R — регулярное
множество. Предположим, что P1 = (QP , Σ, Γ, δP , p 0, Z 0, FP) — недетерминированный магазинный автомат (npda), принимающий язык L, а A = (QA, Σ, δA, q 0, FA )
— детерминированный конечный автомат (dfa), принимающий множество R.
Построим недетерминированный магазинный автомат (npda) P2 = (QP × QA , Σ, Γ,
δ, [p 0, q 0], Z 0, FP × FA ), который принимает L ∩ R. Функция δ определяется следующим образом. Для всех p ∈ QP, q ∈ QA , a ∈ Σ ∪ {ε} и Z ∈ Γ функция δ([ p, q],
a, Z ) содержит ([ p’, δA (q, a)], γ) всякий раз, как δP (p, a, Z ) содержит ( p’, γ). (Напомним, что δA (q, ε) = q для всех q ∈ QA.) Неформально npda P2 хранит след состояний npda P1 и dfa A в своем конечном управлении.
I. Предположим, что x ∈ L ∩ R. Пусть x = a 1 a 2 … a n, где a i ∈ Σ ∪ {ε}, 1 ≤ i ≤ n,
так что существуют состояния q 0, q1,…, qn ∈ QA , p 0, p1,…, pn ∈ QP и цепочки
γ0,γ1,…,γn ∈ Γ*, для которых имеют место δA (q i, a i + 1) = q i + 1 и (p i , a i + 1…a n, γi)
119
(p i + 1, a i + 2…a n, γi + 1) при условии, что 0 ≤ i < n, γ0 = Z0, qn ∈ FA, pn ∈ FP. Тогда
([ p i, q i], a i + 1…a n, γi ) ([ p i + 1, q i + 1], a i + 2 … a n, γi + 1) и ([ p 0, q0], x, Z 0) ([ pn, qn], ε, γn),
при том, что [ pn, qn] ∈ FP × FA , так что x ∈ T (P2).
II. Теперь предположим, что x ∈ T (P2). Тогда существуют движения вида
([ p i, q i], a i + 1 … a n, γi ) ([ p i + 1, q i + 1], a i + 2 … a n, γi + 1) для 0 ≤ i < n, причем γ0 = Z0,
[ pn, qn] ∈ FP × FA. Тогда δA (q i, a i + 1) = q i + 1 для 0 ≤ i < n, причем qn ∈ FA. Следовательно, x ∈ R. Аналогично ( p i , a i + 1 … a n, γi ) ( p i + 1, a i + 2 … a n, γi + 1) для 0 ≤ i < n и,
как следствие, (p 0 , x, Z 0)
(pn, ε, γn). Поскольку p n ∈ FP, то x ∈ L .
Из рассуждений I и II следует T (P2) = L ∩ R.
Мы уже видели в гл. 3, что класс регулярных множеств относительно пересечения и дополнения. В гл. 7 было показано, что класс рекурсивно перечислимых множеств не замкнут относительно дополнения. Таким образом мы имеем:
Теорема 9.5. Класс языков типа 0 не замкнут относительно дополнения.
В настоящее время неизвестно, замкнут ли класс контекстно-зависимых
языков относительно дополнения. Однако как класс языков типа 0, так и класс
контекстно зависимых языков замкнуты относительно пересечения. Доказательства для обоих классов аналогичны, и хотя концептуально просты, утомительны
в деталях. Поэтому эти доказательства будут только намечены.
Теорема 9.6. Класс языков типа 0 и класс контекстно-зависимых языков
замкнуты относительно пересечения.
Доказательство. Пусть L1 и L2 — языки типа 0 (контекстно-зависимые
языки). Рассмотрим две одноленточные машины Тьюринга (два недетерминированных линейно ограниченных автомата) M1 и M2, принимающие языки L1 и L2
соответственно. Легко построить машину Тьюринга (lba) M, имеющую одну
оперативную ленту с тремя дорожками. Первая дорожка содержит ввод. Машина M моделирует машину M1, используя дорожку 2. Если машина M1 достигает
когда-либо принимающую конфигурацию, то машина M перемещает головку
своей ленты на левый конец и моделирует машину M2 на дорожке 3. Если машина M2 доходит до принимающей конфигурации, то машина M принимает.
§ 9.2. Замкнутость
относительно отображений
Теперь рассмотрим результаты отображений разных типов над языками.
Первый тип, который мы рассмотрим, — подстановка.
Определение 9.1. Подстановка f есть отображение конечного множества Σ
на подмножества ∆* некоторого конечного множества ∆. Другими словами, подстановка f с каждым символом из множества Σ ассоциирует некоторый язык.
Отображение f может быть распространено на строки из Σ* следующим образом:
f (ε) = ε, f (xa) = f (x) f (a), где x ∈ Σ*, a ∈ Σ.
120
Очевидно, что f (x) нужно понимать в обобщенном смысле, тогда как f (a) — в
первоначальном.
Мы можем распространить подстановку f далее на языки, определяя
f (L) = ∪ f ( x) .
x ∈L
Пример 9.1. Пусть f (0) = {a}, f (1) = {ww R | w ∈ {b, c}*}. Подстановка f
n n
отображает множество {0 1 | n ≥ 1} в множество {a nw1w1Rw2w2R…wnwnR | wi ∈ {b, c}*
для 1 ≤ i ≤ n}.
Говорят, что класс языков замкнут относительно подстановки, если для
любого языка L ⊆ Σ* в данном классе и для любой подстановки f, такой, что f (a)
в данном классе для всех a ∈ Σ, язык f (L) содержится в этом же классе.
Покажем, что классы регулярных множеств, контекстно-свободных языков и
языков типа 0 замкнуты относительно подстановки. Так, в примере 9.1, поскольn n
ку f (0) и f (1) — оба контекстно-свободные языки и так как L = {0 1 | n ≥ 1} —
контекстно-свободный язык, то множество f (L) = {a nw1w1Rw2w2R…wnwnR | wi ∈ {b,
c}* для 1 ≤ i ≤ n} также контекстно-свободный язык.
Теорема 9.7. Классы регулярных множеств, контекстно-свободных языков
и языков типа 0 замкнуты относительно подстановки.
Доказательство. Рассмотрим грамматику G = (VN, {a 1, a 2,…, a n}, P, S).
Пусть Gi = (VNi , VTi , Pi , Si) — грамматика, порождающая множество f (a i) для каждого i, 1 ≤ i ≤ n. Без потери общности предполагаем, что все нетерминальные
словари попарно не пересекаются.
Докажем теорему для случая, когда грамматики G и Gi, 1 ≤ i ≤ n , являются
контекстно-свободными. Читатель может доказать другие случаи аналогично,
хотя в каждом необходимы дополнительные детали.
Построим новую грамматику:
G’= (VN’, VT’, P’, S ), где VN’= VN ∪
n
∪ VNi , VT’=
i =1
n
∪V
Ti
.
i =1
Пусть h — подстановка h (a i ) = {S i} для 1 ≤ i ≤ n и h (A) = {A} для любого
A ∈ VN; P’=
n
∪P
i
∪ {A → h (α) | A → α ∈ P}. Ясно, что грамматика G’является
i =1
контекстно-свободной, возможно, с правилами вида A → ε. Очевидно, что
f (L(G )) = L(G’).
n n
Пример 9.2. Пусть L = {0 1 | n ≥ 1}. Язык L порождается грамматикой
G = ({S}, {0, 1}, {S → 0S1, S → 01}, S ).
Как и в примере 9.1, пусть
f (0) = {a} и f (1) = {wwR | w ∈ {b, c}*};
f (0) порождается грамматикой
G1 = ({S1}, {a}, {S → a}, S 1),
121
а f (1) — грамматикой
G 2 = ({S2}, {b, c}, {S 2 → bS 2 b, S2 → cS 2c, S 2 → ε}, S 2).
Язык f(L) порождается грамматикой G3 = ({S, S1, S 2}, {a, b, c}, {S → S1SS 2, S → S1S 2,
S1 → a, S 2 → bS 2 b, S2 → cS 2c, S2 → ε}, S). Первые два правила грамматики G3
получились из правил S → 0 S 1 и S → 01 грамматики G1 в результате
подстановки символа S1 вместо 0 и символа S 2 — вместо 1.
Контекстно-зависимые языки не замкнуты относительно подстановки. Однако мы можем несколько смягчить этот факт.
Определение 9.2. Подстановка f называется ε-свободной (ε-free), если
ε ∉ f (a) для каждого a ∈ Σ.
Теорема 9.8. Класс контекстно-зависимых языков замкнут относительно
ε-свободной подстановки.
Доказательство. Рассмотрим контекстно-зависимую грамматику G = (VN,
{a 1, a 2 ,…, a n}, P, S ) и ε-свободную подстановку f. Пусть для каждого i,
1 ≤ i ≤ n, Gi = (VNi, VTi, Pi, Si) — контекстно-зависимая грамматика, порождающая
множество f (a i). Без потери общности предполагаем, что все нетерминальные
словари попарно не пересекаются. Кроме того, предполагаем, что все правила,
за возможным исключением S → ε, имеют вид α → β или A → a, где α, β — непустые строки нетерминалов, A — отдельный нетерминал, а a — отдельный
терминальный символ. Мы построим грамматику G’= (VN’, VT’, P’, SL ), где
1. VN’= VN ∪
n
∪V
Ni
∪ {AL | A ∈ VN }.
i =1
n
2. VT’= ∪ VTi .
i =1
3. P’содержит
а) S L → ε, если S → ε ∈ P;
б) ALα → BLβ и Aα → Bβ, если Aα → Bβ ∈ P (заметим, что индекс L в обозначении AL помечает самое левое вхождение соответствующего нетерминального символа в выводе в грамматике G до тех пор, пока этот символ не превратится в терминальный символ);
в) AL → S i , если A → a i ∈ P,
aA → aS i для всех a ∈ VT’, если A → a i ∈ P;
г) все правила из множества {Pi | i = 1, 2,…, n}.
Грамматика G’— контекстно-зависимая и L(G’) = f (L(G )).
Теорема 9.9. Класс контекстно-зависимых языков не замкнут относительно подстановки.
Доказательство. Пусть G1 = (VN, VT, P1, S) — грамматика типа 0, такая, что
L(G1) не является контекстно-зависимым языком. Снова мы предполагаем без
+
потери общности, что все ее правила имеют вид α → β или A → a, где α ∈ VN ,
β ∈ VN*, A ∈ VN, a ∈ VT.
122
Пусть c — новый символ. Рассмотрим грамматику G2 = (VN, VT ∪ {c}, P2, S ), в
которой P2 содержит
1) α → β, если α → β ∈ P1 и |α| ≤ |β| ;
2) α → βcc … c, где |α| = |βcc … c |, если α → β ∈ P1 и |α| > |β|;
3) cA → Ac для всех A ∈ VN.
Грамматика G2 является контекстно-зависимой, поскольку мы принудили
правую часть каждого правила иметь, по крайней мере, такую же длину, как левая. Правила cA → Ac были добавлены для того, чтобы передвигать символы c к
правому концу слов так, чтобы выводы в G2 могли происходить, как в грамматике G1.
Теперь рассмотрим подстановку f (a) = {a} для a ∈ VT и f (c) = {ε}. Тогда
f (L(G2)) = L(G1) и, следовательно, подстановка не сохраняет класс csl.
Очень часто интерес представляют подстановки специальных типов.
Определение 9.3. Подстановка f называется конечной, если f (a) есть конечное множество для всех a из области определения f. Если f (a) — единственная
строка, то f — гомоморфизм.
Конечная подстановка и гомоморфизм являются специальными классами
подстановок. Из этого мы имеем следующие следствия:
Следствие 9.1. Классы регулярных, контекстно-свободных и языков типа 0
замкнуты относительно конечной подстановки и гомоморфизма.
Доказательство очевидно из теоремы 9.7.
Следствие 9.2. Класс контекстно-зависимых языков замкнут относительно
ε-свободной конечной подстановки и ε-свободного гомоморфизма.
Доказательство очевидно из теоремы 9.8.
Следствие 9.3. Класс контекстно-зависимых языков не замкнут относительно конечной подстановки и гомоморфизма.
Доказательство. Подстановка, использованная при доказательстве теоремы 9.9, является гомоморфизмом.
Мы докажем еще один результат, касающийся подстановок, поскольку он
необходим для последующей теоремы.
Определение 9.4. Класс языков замкнут относительно k-ограниченного стирания, если для любого языка L этого класса и любого гомоморфизма h, обладающего тем свойством, что h никогда не отображает более, чем k последовательных символов любого предложения из языка L в ε, h (L) находится в этом же
классе.
Покажем, что класс контекстно-зависимых языков замкнут относительно kограниченного стирания. Фактически справедливо более общее утверждение.
Пусть L ⊆ Σ* — контекстно-зависимый язык и пусть f (a) для любого a ∈ Σ тоже
контекстно-зависим. Тогда язык f (L) контекстно-зависим при условии, что существует k > 0, такое, что для x ∈ L и y ∈ f (x) выполняется неравенство | y | ≥ k | x |.
123
Лемма 9.2. Класс контекстно-зависимых языков замкнут относительно kограниченного стирания.
Доказательство. Пусть G1 = ( VN(1) , V (1)
T , P1, S 1) — контекстно-зависимая
грамматика. Без потери общности предположим, что правила, за возможным
+
(1)
исключением S 1 → ε, имеют вид α → β или A → a, где α, β ∈ VN(1) , A ∈ VN , а
a ∈ V (1)
T . Пусть h — гомоморфизм со свойством, что h никогда не отображает
более, чем k последовательных символов любого предложения x ∈ L(G1) в ε.
Пусть целое l больше, чем k + 1, и больше длины самой длинной левой части
любого правила. Рассмотрим грамматику
G2 = ( VN , V (2)
T , P2, S 2),
(2)
где
*
VN = {[α] | α ∈ ( VN(1) ∪ V (1)
T ) , |α| < 2l },
(2)
(2)
V T содержит такие символы, находящиеся в строках w, что h (a) = w для
некоторого a ∈ V (1)
T , S 2 = [S1], а множество правил P2 содержит
1) [S1] → ε, если S 1 → ε ∈ P1 или если x ∈ L(G1) и h (x) = ε (заметим, что | x | ≤ k,
так что мы можем проверить, существует ли какая-нибудь такая цепочка x);
(2)
2) [α] → [β] для всех [α] и [β] из VN , таких, что α β и |β| < 2l ;
(2)
3) [α] → [β1][β2]…[βm] для всех [α], [β1], [β2],…, [βm] из VN , таких, что
α β1β2 …βm, | βi | = l, 1 ≤ i < m, l ≤ | βm| < 2l ;
4) [α1][α2] → [β1][β2]…[βm] для всех [α1], [α2], [β1], [β2],…, [βm] из VN(2) , таких,
что α1α2
β1β2…βm, l ≤ |α1| < 2l, l ≤ |α2 | < 2l, |βi | = l, 1 ≤ i < m, l ≤ |βm | < 2l ;
*
5) [x] → h (x) для всех [x] ∈ VN(2) , x ∈ V (1)
T , h (x) ≠ ε.
Грамматика G2 является контекстно-зависимой и L(G2) = h (L(G1)). Отметим,
что G2 получается путем кодирования блоков по меньшей мере из k + 1 символа
грамматики G1 в один символ. Поскольку не более k последовательных терминальных символов грамматики G1 отображаются в ε, то в грамматике G2 никогда
не требуется иметь правило, в котором нетерминал, не равный начальному, порождал бы ε.
Определение 9.5. Обобщенная последовательная машина (gsm10) есть конечный автомат, который может выводить конечное число символов для каждого
входного символа. Формально обобщенная последовательная машина есть система S = (Q, Σ, ∆, δ, q 0, F ), где Q — состояния ; Σ — входной алфавит ; ∆ — вы*
ходной алфавит ; δ — отображение типа Q × Σ → 2Q × ∆ ; q 0 ∈ Q — начальное
10
Gsm — generalized sequential machine. В качестве синонима в настоящее время используется более современный термин конечный преобразователь (finite transducer — ft).
124
состояние ; F ⊆ Q — множество конечных состояний. Запись (p, w) ∈ δ(q, a)
означает, что S в состоянии q, имея на входе символ a, может в качестве одного
из возможных вариантов движения перейти в состояние p и вывести строку w.
Мы расширим область определения δ до Q × Σ* следующим образом:
δ(q, ε) = {(q, ε)},
δ(q, xa) = {( p, w) | w = w1w2, ( p’, w1) ∈ δ(q, x) и ( p, w 2) ∈ δ( p’, a)}, если x ∈ Σ*
и a ∈ Σ.
Определение 9.6. Пусть S — обобщенная последовательная машина и
S (x) = { y | ( p, y) ∈ δ(q 0 , x) для некоторого p ∈ F}. Если L есть язык над Σ, то
S (L) = { y | y ∈ S (x) для некоторого x ∈ L} называется gsm-отображением, а
S –1(L) = { y | x ∈ S (y) для некоторого x ∈ L} — обратным gsm-отображением.
Не обязательно истинно, что S –1(S (L)) = S (S –1(L)) = L, и потому отображение
–1
S не является подлинно обратным
Пример 9.3. Пусть S = ({q 0, q1}, {0, 1}, {a, b}, δ, q 0, {q1}) — обобщенная последовательная машина, где отображение δ определено следующим образом:
1) δ(q 0, 0) = {(q0, aa), (q1, b)},
2) δ(q 0, 1) = {(q0, a)},
3) δ(q 1, 0) = ∅,
4) δ(q 1, 1) = {(q1, ε)}.
1(a)
q0
0(aa)
Рис. 9.2.
0(b)
q1
Интуитивно, пока в gsm S вводятся нули (рис. 9.2), gsm S имеет выбор: выводить два символа a либо один символ b. Если gsm S выводит b, она переходит в
состояние q 1. Если gsm S находится в состоянии q 0 и в нее вводится символ 1, то
она может выводить только символ a. В состоянии q 1 gsm S ничего не может поделать с 0 на входе, но может оставаться в состоянии q 1 без какого-либо вывода,
если на входе 1.
n n
Пусть L = {0 1 | n ≥ 1}. Тогда S (L) = {a 2nb | n ≥ 0}.
i
Если обозначить S (L) при помощи L1, то S –1(L1) = {w 01 | i ≥ 0 и w имеет 11
четное число 1}. Заметим, что S –1(S (L)) ≠ L.
Характерная особенность gsm-отображения и обратного gsm-отображения
состоит в том, что они сохраняют разные классы языков.
11
При этом w может содержать любое число нулей.
125
Лемма 9.3. Каждый класс языков, замкнутый относительно конечной подстановки и пересечения с регулярным множеством, замкнут относительно
gsm-отображений.
Доказательство. Пусть C — класс языков, замкнутый относительно конечной подстановки (следовательно, также и гомоморфизма) и пересечения с регулярным множеством. Пусть S = (Q, Σ, ∆, δ, q0, F) — обобщенная последовательная машина. Определим конечную подстановку
f (a) = {[q, a, x, p] | q, p ∈ Q, a ∈ Σ, x ∈ ∆*, и ( p, x) ∈ δ(q, a)}.
Пусть R — регулярное множество, содержащее все строки вида
[q 0, a 1, x1, q 1] [q 1, a 2, x 2, q 2]…[q n – 1, a n , x n , q n ],
такие, что для 1 ≤ i ≤ n, a i ∈ Σ, x i ∈ ∆*, q i ∈ Q, (q i , x i ) ∈ δ(qi – 1, a i ). Также q 0 — начальное состояние и q n ∈ F. Пусть h ([q, a, x, p]) = x для всех [q, a, x, p].
Теперь для L ∈ C имеем S (L) = h ( f (L) ∩ R). Поскольку класс языков C замкнут относительно конечной подстановки и пересечения с регулярным множеством, то язык S (L) тоже находится в C. Заметим, что требуется замкнутость относительно конечной подстановки, а не ε-свободной конечной подстановки, поскольку в [q, a, x, p] цепочка x может быть равна ε, и в этом случае
h ([q, a,
x, p]) = ε.
Теорема 9.10. Классы регулярных, контекстно-свободных и языков типа 0
замкнуты относительно gsm-отображений.
Доказательство. Теорема является прямым следствием леммы 9.3 и теорем 9.4, 9.6 и 9.7.
Отметим, что gsm-отображения не сохраняют контекстно-зависимых языков,
поскольку каждый гомоморфизм является gsm-отображением.
Определение 9.7. Говорят, что gsm-отображение ε-свободно, если (p,ε)∉ δ(q, a)
для любых q, p ∈ Q и a ∈ Σ.
Хотя контекстно-зависимые языки не замкнуты относительно произвольных
gsm-отображений, они замкнуты относительно ε-свободных gsm-отображений.
Теорема 9.11. Класс контекстно-зависимых языков замкнут относительно
ε-свободных gsm-отображений.
Доказательство. В лемме 9.3 конечная подстановка может быть заменена
на ε-свободную конечную подстановку при условии, что gsm-отображение
εсвободно. Таким образом, поскольку класс контекстно-зависимых языков замкнут относительно ε-свободной конечной подстановки и пересечения с регулярным множеством, то этот класс замкнут относительно ε-свободных
gsmотображений.
Рассмотрим теперь обратные gsm-отображения. Как увидим, регулярные,
контекстно-свободные, контекстно-зависимые и языки типа 0 все замкнуты относительно обратных gsm-отображений.
126
Лемма 9.4. Пусть C — класс языков, замкнутый относительно ε-свободной подстановки, k-ограниченного стирания и объединения и пересечения с регулярными множествами. Тогда класс C замкнут относительно обратных gsmотображений.
Доказательство. Пусть L ⊆ ∆* есть язык в классе C, а S = (Q, Σ, ∆, δ, q 0, F)
— обобщенная последовательная машина. Мы предполагаем без потери общности, что Σ ∩ ∆ = ∅. Определим подстановку f следующим образом: f (b) = Σ *b
для каждого b ∈ ∆. (Отметим, что замкнутость относительно объединения и пересечения с регулярными множествами гарантирует принадлежность всех регулярных множеств классу C и, следовательно, Σ *b ∈ C .)
Пусть L1 = f (L) ∪ Σ *, если ε ∈ L, и L1 = f (L) в противном случае. Тогда L есть
множество всех строк вида y 1 b 1 y 2 b 2 … yr b r , r ≥ 1, где bi ∈ ∆, yi ∈ Σ *, 1 ≤ i ≤ r,
b1b 2…br ∈ L, объединенное с Σ *, если ε ∈ L. Применим теперь лемму 9.3 к классам регулярных, контекстно-свободных и языков типа 0.
Пусть R — регулярное множество, состоящее из всех слов вида a 1 x 1 a 2 x 2 …
a m x m, m ≥ 0, таких, что
1) ai ∈ Σ;
2) xi ∈ ∆*, 1 ≤ i ≤ m.
Существуют состояния q 0, q 1,…, q m, такие, что q m ∈ F и (q i, x i) ∈ δ(q i – 1, a i) для
1 ≤ i ≤ m.
Заметим, что цепочка x i может быть равна ε. Нетрудно показать путем построения конечного автомата, принимающего R, что R — регулярное множество.
Теперь L1 ∩ R есть множество всех слов вида a1 x1 a2 x2 … am xm, m ≥ 0, где
a i ∈ Σ, x i ∈ ∆*, 1 ≤ i ≤ m, x1 x 2 … x m ∈ L, S (a 1 a 2 … a m) содержит цепочку x1 x 2 … x m, и
ни одна цепочка x i не длиннее, чем k, причем k — длина самой длинной цепочки
x, такой, что ( p, x) ∈ δ(q, a) для некоторых состояний p, q ∈ Q и a ∈ Σ.
Наконец, пусть h — гомоморфизм, который отображает символ a в a для каждого a ∈ Σ и символ b — в ε для каждого b ∈ ∆. Тогда S –1(L) = h (L1 ∩ R) находится в классе C, поскольку h никогда не отображает больше k последовательных символов в ε.
Теорема 9.12. Классы регулярных, контекстно-свободных, контекстнозависимых и языков типа 0 замкнуты относительно обратных gsm-отображений.
Доказательство следует непосредственно из леммы 9.4 и того факта, что
названные классы замкнуты относительно ε-свободной подстановки, k–
ограниченного стирания, а также пересечения и объединения с регулярным
множеством.
Теперь рассмотрим операцию деления.
Определение 9.8. Пусть L1 и L2 — любые два языка. Определим частное от
деления L1 на L2 как множество {x | для некоторой цепочки y ∈ L2, такой, чтобы
xy ∈ L1}.
127
Пример 9.4. Пусть L1 = {a nb n | n ≥ 1} и L 2 = b*. Тогда
L1 / L2 = {a i b j | i ≥ j, i ≥ 1 }, а L2 / L1 = ∅.
Лемма 9.5. Каждый класс языков, замкнутый относительно конечной подстановки и пересечения с регулярным множеством, замкнут относительно деления на регулярное множество.
Доказательство. Пусть C — класс языков, замкнутый относительно названных операций. Пусть L ∈ Σ 1* — язык из класса C и R ⊆ Σ 1*— регулярное
множество. Пусть Σ 2 = {a’| a ∈ Σ 1} и f — конечная подстановка: f (a) = {a, a’}.
Рассмотрим L2 = Σ 2* R ∩ f (L). Пусть h — гомоморфизм, определяемый следующим образом: h ( a) = ε и h ( a’) = a для всех a ∈ Σ 1. Теперь L / R = h (L2). Поскольку класс C замкнут относительно конечной подстановки и пересечения с регулярным множеством, то L / R находится в классе C.
Теорема 9.13. Классы регулярных, контекстно-свободных и языков типа 0
замкнуты относительно деления на регулярное множество.
Доказательство следует непосредственно из леммы 9.5.
На вопрос: замкнут ли класс контекстно-зависимых языков относительно
деления на регулярное множество, ответим — нет.
Теорема 9.14. Если L1 есть любой язык типа 0, то существует контекстно-зависимый язык L2 и регулярное множество R, такие, что L1 = L2 / R.
Доказательство почти идентично доказательству теоремы 9.9. Пусть G 1 =
(VN, VT, P1, S 1) — грамматика типа 0, такая, что L(G1) = L1 и пусть G2 =
(VN ∪ {S 1, D}, VT ∪ {c, d }, P2, S 2), где P2 определяется следующим образом:
1) если α → β ∈ P1 и | α | ≤ | β |, то α → β ∈ P2 ;
i
2) если α → β ∈ P1 и | α | – | β | = i, i > 0, то α → βD ∈ P2 ;
3) для всех A ∈ VN и a ∈ VT существуют правила DA → AD и Da → aD ∈ P2 ;
4) существуют правила Dc → cc и Dc → dc ∈ P2 ;
5) существует правило S 2 → S 1Dc ∈ P2.
Обратим внимание читателя на сходство L(G2) с языком, определенным в
теореме 9.9. Но здесь мы можем превращать все нетерминалы D в терминальные символы, если только они сначала мигрируют к правому концу сентенциальной формы. Причем как только нетерминал D превращается в терминал d, ни
один символ D больше не может быть превращен ни в d, ни в c. Теорема следует
из наблюдения, что L(G1) = L (G2) / dc*.
В заключение главы приведем сводку описанных в ней свойств замкнутости
для регулярных, контекстно-свободных, контекстно-зависимых и языков типа 0,
— см. табл. 9.1.
128
Т а бл . 9.1
Замкнутость относительно операций
Объединение
Конкатенация
Замыкание
Обращение
Пересечение
Дополнение
Пересечение с регулярным множеством
Подстановка
ε-Свободная подстановка
gsm-Отображение
ε-Свободное gsm-отображение
Обратные gsm-отображения
k-Ограниченное стирание
Деление на регулярное множество
рег.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Класс языка
конт.конт.свобод. завис.
+
+
+
+
+
+
+
+
–
+
–
?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
типа
0
+
+
+
+
+
–
+
+
+
+
+
+
+
+
В табл. 9.1 символом + отмечен тот факт, что соответствующий класс языков
обладает свойством замкнутости относительно соответствующей операции;
символ – (минус) обозначает отсутствие соответствующего свойства замкнутости для соответствующего класса языков; символ ? (вопросительный знак) означает, что пока не выяснено, замкнут ли класс контекстно-зависимых языков относительно дополнения или не замкнут.
129
Download