Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматов и формальных языков. Учебник.pdf

§ 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,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
