Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 4.5. Проблема эквивалентности для регулярных выражений 211
Регулярное выражениеBзадаёт все слова, в которых началь-
ная конфигурация не соответствует входному словуx. Пустьx=
a1a2. . . an. ТогдаB=
B0+
B1+
···+B
, выражения
p(n)
Biсоответ-
ствуют трём типам ошибок.
1) Первый символ в начальной конфигурации отличен от q0:
B0= #(∆ −q0)(∆ + #)∗.
2) i-й символ не равен aiдля некоторого 1 6 i 6 n:
Bi= #q0Σ
i−1
(Σ −ai)(∆ + #)∗при 1 6 i 6 n.
3) i-й символ не равен Λ для некоторого n + 1 6 i 6 p(n):
Bi= #q0Σ
Каждое выражение
имеет длинуO(
p2(n)). Заметим, что мы не стремимся описать ошибку
каждого типа ровно одним выражением. Например, выражение
i−1
(Σ −Λ)(∆ + #)∗при n + 1 6 i 6 p(n).
Biимеет длинуO(p(n)), поэтому выражение
B
B0за-
даёт некоторые слова, в которых начальная конфигурация содержит два или более состояний, что уже учтено в выражении ло бы написать вместо
B0выражение
B
0
0
= #(∆
A3. Можно бы-
−q0)Σ
p(n)
#(∆ + #)∗.
Однако такое дублирование не приведёт к ошибкам, поэтому мы будем строить более простые выражения.
Регулярное выражениеCзадаёт все слова, в которых нет заклю-
чительного состояния:
C = (∆ + # − qf)∗.
Его длина не зависит от x.
Регулярное выражениеDзадаёт все слова, в которых есть пара соседних конфигураций конфигурации
Kiесть четыре идущих подряд символа
Kiи
K
i+1
таких, что
Ki6`MK
. Пусть в
i+1
c1c2c3c4. Эти
212 Глава 4. Алгоритмические проблемы для регулярных языков
символы однозначно определяют символ, который окажется на месте
c2в конфигурации
ла
c2в коде вычисления. Обозначим этот символ черезf(
Предположим, что в машине Тьюринга есть команда
K
, то есть наp(n) + 2 позиций правее симво-
i+1
q, a → p, b, s
c1c2c3c4).
. В
следующей таблице приведены значения функцииf(символыU,V,
W , X означают, что на соответствующем месте стоит символ из Σ):
c1c2c3c
4
f(c1c2c3c4)
UV W X V
qaW X p, если s = +1
b иначе
U, если s = −1
UqaX p, если s = 0
b, если s = +1
UV qa p, если s = −1
V, иначе
UV W q V
Случаи, когда один из символов
ciравен #, рассматриваются анало-
гично. Регулярное выражение D определяется следующим образом:
D =
[
c1c2c3c
(∆ + #)∗c1c2c3c4(∆ + #)
4
p(n)−1
(∆ −f (c1c2c3c4))(∆ + #)∗.
Каждое слагаемое этого выражения задаёт слова, в которых символ
c2в некоторой конфигурации заменяется неправильно, а полное
выражение получается объединением для всех возможных четвёрок c1c2c3c4. Длина одного слагаемого составляетO(p(n)), а их число не зависит от x. Поэтому выражение D также имеет длину O(p(n)).
Итак, регулярное выражение
O(p2(n)) и может быть построено за времяO(
rx=A+B+C+Dимеет длину
p2(n)). ЯзыкL(
rx)
содержит те и только те слова, которые не задают допускающие вычисления
M
на входеx. ПоэтомуL(
rx) = (∆
∪ {#}
)∗тогда и
§ 4.5. Проблема эквивалентности для регулярных выражений 213
только тогда, когда допускающих вычислений не существует, то есть когда M отвергает x.
Алфавит регулярного выражения машины ТьюрингаM. Чтобы можно было говорить о проблеме экви­валентности в точном смысле, нужно записывать регулярные выра­жения как слова в некотором фиксированном конечном алфавите. В качестве такого алфавита мы выберем
Ω = {(, ), +, ·,∗, [, ], 0, 1 }.
Мы будем кодировать регулярные выражения следующим образом. Занумеруем все элементы множества Σ Пусть Σ
[
bin(i
обозначают сами себя. Тогда любое регулярное выражениеrможно записать как слово в алфавите Ω, причём длина такого кода не превосходит 3|r|log2|r| при |r| > 2.
∪ Q={a1, a2, . . . , an}
)], где
bin(i
) — двоичная запись числаi. Остальные символы
. Символ
rxиз леммы 106 зависит от
∪ Q
произвольным образом.
aiбудем записывать в виде
Теорема 107.
является PSPACE-полной.
Доказательство. Сначала установим принадлежность этой про­блемы классу тельно дополнения, то достаточно доказать принадлежность клас­су
PSPACE
PSPACE=NPSPACE
рованный алгоритм, использующий полиномиальную память. Пусть
|r|=n
ить эквивалентный НКАN, содержащий не более 2nсостояний. Для этого НКА существует эквивалентный ему ДКА более 22nсостояний. Поэтому существует ДКА язык все слова тогда и только тогда, когдаL( эквивалентно тому, что автомат
. По следствию из теоремы 43 по выражениюrможно постро-
L(r)
и содержащий не более 22nсостояний. Выражениеrзадаёт
Проблема тотальности для регулярных выражений
PSPACE
дополнения проблемы тотальности. По теореме Сэвича
. Так как класс
, поэтому достаточно построить недетермини-
N2отвергает все слова длины не
PSPACE
N2) =∅, а последнее условие
замкнут относи-
N1, содержащий не
N2, распознающий
214 Глава 4. Алгоритмические проблемы для регулярных языков
Algorithm Тотальность Input: r — регулярное выражение над алфавитом Σ. Output: «да», если L(r) 6= Σ∗,
«нет», если L(r) = Σ∗.
1:
Построить по выражениюrНКАM= (Q,Σ
2: n = |r|; 3: i = 0; 4: S = {q 5: while i 6 2 6: Угадать букву a ∈ Σ. 7: S =
8: end while 9: if S ∩ F 6= ∅ then
10: return «нет»; 11: else 12: return «да»; 13: end if
0
};
[
q∈S
2n
and S ∩ F = ∅ do
δ(q, a);
, δ, q0, F
) безε-команд.
Рис. 32. Проверка тотальности регулярного выражения.
более 22n(задача 150). Алгоритм, реализующий этот подход, при­ведён на рис. 32. Он возвращает «да» тогда и только тогда, когда выражениеrзадаёт не все слова. Его корректность доказывается таким же образом, что и корректность алгоритма моделирования НКА. На каждом шаге множествоSсодержит не более 2nсостояний, а значение переменнойiне превосходит 22n+ 1. Поэтому для записи
i
в двоичной системе требуется не более 2n+ 1 символов, а значит, и общая память алгоритма составляетO(n). Заметим, что алгоритм не строит ДКА по регулярному выражению. ДКА был нужен только для того, чтобы ограничить длину искомого слова.
PSPACE
-трудность проблемы тотальности следует из леммы 106.
§ 4.5. Проблема эквивалентности для регулярных выражений 215
Пусть проблемаAпринадлежит классу
PSPACE
. Тогда она решается некоторой машиной ТьюрингаM, работающей в полиномиальной памятиp(n). Пустьx— входное слово длиныn. По лемме 106 за время
p2(n) можно построить регулярное выражение
rxтакое, что
L(rx) = Σ∗тогда и только тогда, когдаMотвергаетx. Это значит, что
проблема тотальности является
coPSPACE
-трудной. Но
PSPACE
=
coPSPACE, поэтому проблема тотальности PSPACE-трудна.
Сл едствие 108.
Проблема эквивалентности регулярных выраже-
ний является PSPACE-полной.
Доказательство. Проблема
PSPACE
-трудна, так как она яв­ляется частным случаем проблемы тотальности. Принадлежность классу
PSPACE
устанавливается тем же способом, что и для пробле-
мы тотальности.
Сл едствие 109.
Проблемы тотальности и эквивалентности НКА
являются PSPACE-полными.
Сл едствие 110.
Если P6=
PSPACE
, то не существует полиноми-
ального алгоритма минимизации НКА.
Доказательство. НКАM= (Q,Σ
, δ, q0, F
) распознаёт все слова тогда и только тогда, когда эквивалентный минимальный автомат имеет вид
M0= (
{q0},Σ, δ0, q0, {q0}
) с программой
q0, a → q0для
всех a ∈ Σ.
За меч ани е 5.
буквенным алфавитом проблемы тотальности и эквивалентности являются coNP-полными.
Можно доказать, что для регулярных выражений над одно-
Мы рассматривали регулярные выражения с операциями +,·и∗. Можно определить регулярные выражения, содержащие более бога­тый набор операций. Наоборот, можно рассматривать регулярные выражения, использующие более ограниченный набор операций (та­кие выражения могут задавать не все регулярные языки). Наиболее естественные дополнительные операции — это операции пересечения
(∩) и дополнения (¬). Также можно ввести операцию «возведения
216 Глава 4. Алгоритмические проблемы для регулярных языков
Операции Сложность проблемы эквивалентности
∗
+, ·,
PSPACE-полна
+, · coNP-полна
2
+, ·, +, ·,2,
+, ·,∗, ∩
∗
coNEXPTIME-полна EXPSPACE-полна
Память не менее
c0c
√
n/ log n
, где
c0>
0 и
c >
1 —
некоторые постоянные
+, ·,∗, ∩, ¬
Не элементарна, то есть для любого сложность превосходит
n
2
···
2
2
, где число двоек равноk.
k ∈ ω
ёмкостная
Рис. 33. Сложность проблемы эквивалентности для некоторых типов регулярных выражений.
в квадрат»: выражение
p2обозначает языкL(p)
· L(p
). Использо­вание новых операций позволяет строить расширенные регулярные выражения гораздо меньшего размера, чем обычные выражения.
n
Например, языкL=
{a
2
}
, содержащий единственное слово
задаётся обычным регулярным выражением
aa . . . aa
| {z }
2nраз
. Если же раз-
n
2
a
решить использовать операцию2, то тот же самый язык задаётся выражением (
. . .((a2)2) . . .
|
{z }
n раз
2
). Как видим, длина выражения уменьши-
лась логарифмически. Поэтому можно ожидать, что при добавлении новых операций сложность проблемы эквивалентности значительно увеличится. На рис. 33 показаны результаты о сложности проблемы эквивалентности для некоторых наборов операций.
Задачи
177.
Докажите, что проблема эквивалентности регулярных выражений разреши-
ма в полиномиальной памяти.
178.
Докажите, что проблемы тотальности и эквивалентности являются
полными для регулярных выражений над алфавитом, содержащим два символа.
PSPACE
,
-
§ 4.5. Проблема эквивалентности для регулярных выражений 217
179.
Докажите, что проблема эквивалентности является
лярных выражений с операциями + и ·.
180.
Докажите, что проблема эквивалентности является
для регулярных выражений с операциями +, · и2.
181.
Докажите, что проблема эквивалентности является
регулярных выражений с операциями +, ·,2и∗.
Докажите, что следующая проблема является
182.
M1, . . . , Mnс одним и тем же входным алфавитом определить, существует ли
слово, распознаваемое всеми автоматами.
coNP
coNEXPTIME
EXPSPACE
PSPACE
-полной для регу-
-полной
-полной для
-полной: по ДКА
218 Глава 5. Контекстно-свободные грамматики и языки
Глава 5

Контекстно-свободные грамматики и языки

§ 5.1. Примеры контекстно-свободных языков
Напомним, что порождающая грамматикаG= (N,Σ
ется контекстно-свободной, если все её правила имеют вид
A ∈ N,α ∈(Σ∪N
Оп ределен ие 83.
в и л ь н ы м с к о б о ч н ы м словом, если:
1) |w|0= |w|1;
2) |u|0> |u|1для любого префикса u слова w.
Язык п р а в и л ь н о й р а с с т а н о в к и с к о б о к — это множество всех правильных скобочных слов. Будем обозначать его Lск.
Например, слово 00101101 является правильным скобочным, а слово 0110 не является, так как|011 символы 0 и 1 для обозначения открывающей и закрывающей скобки вместо символов ( и ), чтобы не путать их со скобками в выражениях
)∗. Рассмотрим несколько примеров КС-грамматик.
Словоwв алфавите{0,1}называется п р а -
|0< |
011
, P, S
) называ-
A → α
|1. Мы используем
, где
§ 5.1. Примеры контекстно-свободных языков 219
вида L(G) или f(S).
Ле мма 111.
Правильные скобочные слова обладают следующими
свойствами:
1)
любое непустое правильное скобочное слово начинается на 0 и заканчивается на 1;
2)
еслиuv— правильное скобочное слово и
|u|0=
|u|1, тоu— тоже
правильное скобочное слово.
Доказательство. 1) Еслиw= 1v, то префикс 1 не удовлетворяет
пункту 2) определения. Если же w = v0, то
|v0|0= |v0|1, |v|0+ 1 = |v|1и |v|0< |v|1.
Но тогда префикс v не удовлетворяет пункту 2) определения.
2) Если
u0— префиксu, то
u0также является префиксомuv,
значит, |u0|0> |u0|1.
Пр име р 72.
вильной расстановки скобок Lск:
Выведем в этой грамматике слово 00101101:
Построим КС-грамматику
S → 0S1 | SS | ε.
Gск, порождающую язык пра-
S ⇒ SS ⇒ 0S1S ⇒ 0SS1S ⇒ 00S1S1S ⇒ 001S1S ⇒
⇒ 0010S11S ⇒ 001011S ⇒ 0010110S1 ⇒ 00101101.
Докажем, что Пустьh— проекция такая, чтоh(S) =ε,h(0) = 0,h(1) = 1. Докажем индукцией по n, что если S ⇒nα, то h(α) ∈ Lск.
Б а з и с и н д у к ц и и . Если n = 0, то α = S и h(α) = ε.
Ш а г и н д у к ц и и . Пусть торого словаβ.βобязательно содержит нетерминалS:β= индукционному предположениюh(β) Рассмотрим два случая.
Gскпорождает язык правильной расстановки скобок.
n+1
S ⇒
α
, то есть
∈ Lск, а значит,h(
S ⇒nβ ⇒ α
β1)h(
для неко-
β1Sβ2. По
β2)
∈ Lск.
220 Глава 5. Контекстно-свободные грамматики и языки
Если на последнем шаге применяется правило
тоα=
β1SSβ2илиα=
β1β2соответственно. В обоих случаяхh(α) =
S → SS
или
S → ε
h(β1)h(β2) = h(β) ∈ Lск.
Пусть на последнем шаге применяется правило
h(β1)01h(
β2). По индукционному предположению|h(
S →0S
β1β2)
1. Тогдаh(α) =
|0=|h(
β1β2)
поэтому
|h(α)|0= |h(β1β2)|0+ 1 = |h(β1β2)|1+ 1 = |h(α)|1.
Пусть u — префикс слова h(β1)01h(β2). Если u является префиксом слова h(β1), тоuявляется и префиксом словаh(β), а значит, по индукционному
предположению |u|0> |u|1. Если u = h(β1)0, то
|u|0= |h(β1)|0+ 1 > |h(β1)|1= |u|1,
то есть тоu=h( словаh(β), поэтому по индукционному предположению|h(
|u|0> |u|1. Наконец, еслиh(
β1)01 является префиксом словаu,
β1)01v, гдеv— префикс словаh(
β2). Тогдаh(
β1)v— префикс
β1)
v|0> |h(β1)
v|1.
Следовательно,
|u|0= |h(β1)01v|0= |h(β1)v|0+ 1 > |h(β1)v|1+ 1 = |h(β1)01v|1= |u|1,
то есть |u|0> |u|1. Итак, в любом случае |u|0> |u|1, поэтому h(α) ∈ Lск.
Если
S ⇒∗wиw ∈ {0,1}∗, то по доказанному
w ∈ Lск, так как
h(w) = w. Значит, L(Gск) ⊆ Lск.
Теперь докажем обратное включение
Lск⊆ L(Gск). Пусть
w ∈ Lск.
Проведём доказательство индукцией по длине w.
Б а з и с и н д у к ц и и . Если |w| = 0, то w = ε и S ⇒1w.
Ш а г и н д у к ц и и . Пусть жим сначала, чтоwможно представить в видеw= непусты и
w1, w2∈ Lск. Тогда по индукционному предположению
|w| >
0. Рассмотрим два случая. Предполо-
w1w2, так что
w1и
w
S ⇒∗w1,
S ⇒∗w2. Применяя правило S → SS, получаем
,
|1,
2
S ⇒∗SS ⇒∗w1S ⇒∗w1w2,
то есть S ⇒∗w.
Теперь предположим, что разбиения из предыдущего случая не суще-
ствует. По лемме 111 cловоwимеет видw= 0v1. Так как
|w|0=
то
|v|0= |w|0− 1 = |w|1− 1 = |v|1.
|w|1,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]