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

§ 4.4. Проверка эквивалентности ДКА 201
1)
либо состоянияδ(
qi, a
) иδ(
q
, a
) принадлежат одному мно-
i+1
жеству;
2) либо пара (δ(qi, a), δ(q
Последовательность (
q1, q2, . . . , qr) с о е д и н я е т состоянияqиp,
, a)) находится в списке S.
i+1
если q1= q, qr= p.
Условие 1) означает, что алгоритм уже установил эквивалентность
состоянийδ(
ность состоянийδ(
qi, a
) иδ(
qi, a
q
i+1
) иδ(
, a
). Условие 2) означает, что эквивалент-
q
, a
) будет установлена через несколько
i+1
шагов, когда алгоритм извлечёт пару из списка. Поэтому свойство «
иpсоединены» означает, что алгоритм уже неявно установил эквивалентность состоянийqиp, так как все следующие за ними состояния
эквивалентны.
Непосредственно из определения получаем следующую лемму.
Ле мма 102.
Отношение соединения является отношением эквива-
лентности.
Доказательство. Любое состояние соединено само с собой, так
как можно взять последовательность (q) длины 1, поэтому отношение рефлексивно. Если последовательность (
ющая, то последовательность (
qn, . . . , q1) тоже соединяющая, зна-
q1, . . . , qn) соединя-
чит, отношение симметрично. Наконец, если последовательности
(
q1, q2, . . . , qn) и (
ность (
q1, q2, . . . , q
qn, q
m+n
n+1
, . . . , q
) соединяющие, то последователь-
n+m
) тоже соединяющая, следовательно, отношение
соединения транзитивно.
Нетрудно видеть, что в процессе работы алгоритма отношение
соединения состояний может только увеличиваться.
q
Ле мма 103.
Если состоянияqиpбыли соединены послеkитераций
цикла в строках 6–16, то они будут соединены и после (k+ 1)-й
итерации.
Доказательство. Пусть послеkитераций соединяющая после-
довательность дляqиpимела вид (
q1, q2, . . . , qn), где
q1=q,
qn=p.

202 Глава 4. Алгоритмические проблемы для регулярных языков
Пусть на очередной итерации из списка извлекается пара (r, s).
Предположим, что послеk-й итерации для некоторогоiвыполня-
лось условие 1) определения 82, то есть состоянияδ(
qi, a
) иδ(
q
i+1
, a
принадлежали одному множеству. Тогда они будут принадлежать
одному множеству и после очередной итерации, так как никакое
множество не разбивается на части.
Предположим теперь, что послеk-й итерации для некоторого
выполнялось условие 2), то есть пара (δ(
в спискеS. Если эта пара отлична от (
и после (k+ 1)-й итерации, так как удаляется только (
δ(qi, a
) =r,δ(
q
, a
) =s. Еслиrиsуже были в одном множестве,
i+1
qi, a), δ(q
r, s
), то она останется в списке
, a
)) находилась
i+1
r, s
). Пусть
то они там и останутся. Если же они были в разных множествах,
то условие в строке 10 выполнено и эти множества объединяются
в строке 11. Поэтому в этом случае после (k+ 1)-й итерации будет
выполнено условие 1) определения 82.
Итак, мы доказали, что последовательность (
q1, q2, . . . , qn) оста-
нется соединяющей и после (k+ 1)-й итерации. Следовательно,qи
по-прежнему будут соединены.
Теперь мы докажем основное свойство системы множествA, которую вычисляет алгоритм.
)
i
p
Ле мма 104.
следующим образом: (
Пусть отношениеRна множестве
q, p)∈ R
тогда и только тогда, когда в момент
Q1∪ Q2определено
остановки алгоритма состоянияqиpнаходятся в одном множестве.
ТогдаRявляется правоинвариантным отношением эквивалентности,
причём для любого правоинвариантного отношения эквивалентности
R0, содержащего пару (q0, p0), выполняется включение R ⊆ R0.
Доказательство. Сначала докажем индукцией поkследующее
утверждение: послеkитераций цикла в строках 6–16 все состояния в
одном множестве соединены.
Б а з и с и н д у к ц и и . Еслиk= 0, то цикл ещё ни разу не срабо-
тал, поэтому каждое множество содержит единственное состояние,

§ 4.4. Проверка эквивалентности ДКА 203
которое соединено само с собой.
Ш а г и н д у к ц и и . Пусть утверждение выполняется после
итераций цикла. Пусть на (k+ 1)-й итерации из спискаSизвлекается
пара (
q, p
). Если состоянияqиpпринадлежат одному классу, то
система множествAне меняется. По индукционному предположению все состояния в одном множестве соединены. Следовательно,
по лемме 103 они будут соединены и после (k + 1)-й итерации. Если
состоянияqиpпринадлежат разным множествам
B1и
B2, то эти
множества объединяются. Так как при этом в строках 12–14 в
помещаются все пары (
последовательностью (
δ1(
q, a), δ2(
q, p
). Если
p, a
)), то состоянияqиpсоединены
r ∈ B1,
s ∈ B2, то по индукционно-
му предположению соединеныqиr, а такжеpиs. Следовательно,
в силу транзитивности соединены любые два состояния множества
B1∪ B2.
Рассмотрим систему множествAпосле остановки алгоритма. Любые два состоянияqиpиз одного множества соединены. Это значит,
что существует последовательность (
qn=pи для каждого символаaсостоянияδ(
q1, q2, . . . , qn) такая, что
qi, a
) иδ(
q
i+1
q1=q,
, a
) принадлежат одному множеству, так как после остановки списокSпуст.
Отсюда следует, что и состоянияδ(
множеству для любого символаa. Но это и значит, что отношение
правоинвариантно. Непосредственно из определения следует, что
q, a
) иδ(
p, a
) принадлежат одному
R
R
является и отношением эквивалентности.
Пусть теперь
эквивалентности, содержащее пару (
R0— произвольное правоинвариантное отношение
q0, p0). Докажем индукцией по
следующее утверждение: если послеkитераций цикла состоянияqи
p
принадлежат одному множеству или образуют пару (
q, p
) изS, то
(q, p) ∈ R0.
Б а з и с и н д у к ц и и . СначалаSсодержит только (
условию (
поэтому пары имеют вид (
q0, p0)
∈ R0. Все множества состоят из одного элемента,
q, q
) и содержатся в
R0в силу рефлексив-
q0, p0), а по
ности.
k
S
k

204 Глава 4. Алгоритмические проблемы для регулярных языков
Ш а г и н д у к ц и и . Пусть на очередной итерации изSизвлекается пара (
множества не сливаются и новые пары в список не попадают, так
что утверждение остаётся верным по индукционному предположению. Еслиqиpпринадлежат разным классам
попадают новые пары вида (
некоторого символаa. По индукционному предположению (
тогда (
произвольные состояния, то (
(r, s) ∈ R0, так как R0транзитивно.
утверждение применимо к R, поэтому R ⊆ R0для любого R0.
q0, p0)
Так как (
Теперь мы можем доказать корректность алгоритма.
q, p
). Еслиqиpпринадлежат одному множеству, то
B1и
B2, то в список
q0, p0), где
∈ R0, так как
q0, p0) попадает вRна первой итерации, то доказанное
R0правоинвариантно. Если
r, q)∈ R0, (
q0=δ(
q, p)∈ R0, (
q, a),p0=δ(
p, a
) для
q, p)∈ R0,
r ∈ B1,
p, s)∈ R0, а значит,
s ∈ B2—
Теорема 105.
тогда и только тогда, когда автоматы
работы алгоритма составляетO(
общее число состояний двух автоматов,m=|Σ|— число символов. В
частности, если алфавит фиксирован, то время работы составляет
O(nα(n)).
Доказательство. Нужно проверить, что
тогда и только тогда, когда после остановки основного цикла никакое
множество системы A не содержит одновременно заключительное и
незаключительное состояние. Пусть отношениеRопределено так же,
как в предыдущей лемме.
Предположим, что автоматы эквивалентны. Рассмотрим отноше-
ние эквивалентности состояний≡, определённое на множестве
q ≡ p
тогда и только тогда, когда для любого словаwсостоянияδ(
иδ(
p, w
) либо оба заключительные, либо оба незаключительные. Лег-
ко проверяется, что отношение≡правоинвариантно. Кроме того,
q0≡ p0, поскольку автоматы эквивалентны. Значит, по лемме 104
выполняется включение
Алгоритм ЭквивалентностьДКА возвращает «да»
M1и
M2эквивалентны. Время
mnα(mn
R ⊆≡
. Следовательно, если два состояния
)), гдеn=
M1и
M2эквивалентны
|Q1|+|Q2|
Q1∪Q2:
q, w
—
)

§ 4.4. Проверка эквивалентности ДКА 205
qиp
после остановки алгоритма оказались в одном множестве, то
q ≡ p
. Но никакое заключительное состояние не может быть эквивалентно незаключительному. Поэтому никакое множество не может
содержать заключительное и незаключительное состояние.
Пусть теперь автоматы не эквивалентны. Это значит, что существует слово, которое принимается одним из автоматов и отвергается
другим. Пусть для определённости
p /∈ F2. Так как отношениеRправоинвариантно и (
δ1(
q0, w
) =
q ∈ F1,
q0, p0)
δ2(
p0, w
∈ R
) =
, то
(q, p) ∈ R. Следовательно, q и p принадлежат одному классу.
Теперь оценим время работы алгоритма. Выполнение операции
ОБЪЕДИНИТЬ
в строке 13 уменьшает число множеств на единицу.
Так как общее число состояний равноn, то общее число операций
ОБЪЕДИНИТЬ
n −
1. После каждой операции объединения в список добавляются
m
новых пар. Следовательно, общее число пар, которые могут попасть вS, не превосходит 1 +m(
операций
НАЙТИ
за всё время выполнения алгоритма не превосходит
n −1)6 mn
. Поэтому общее число
не превосходит 2mn. Итак, общее число операций
объединения и поиска не превосходит 3mn, поэтому время работы
алгоритма составляет O(mnα(3mn)), то есть O(mnα(mn)).
Пр име р 71. Проверим эквивалентность следующих двух автоматов:
a b
нач q0q2q
q1q3q
q2q2q
закл q3q1q
Мы будем предполагать, что списокSреализован в виде очереди. Голову
очереди будем изображать слева, а хвост — справа.
Сначала списокSсодержит только пару (
состоит и одного состояния:
S = (q0, p0),
B1B2B3B4B5B6B7B
q0q1q2q3p0p1p2p
1
0
3
3
нач p0p3p
закл p2p0p
a b
1
p1p1p
p3p3p
q0, p0), а каждое множество
2
2
1
8
3

206 Глава 4. Алгоритмические проблемы для регулярных языков
На первой итерации алгоритм извлекает из списка пару (
и
p0принадлежат разным классам, то эти классы объединяются в один,
а в списокSдобавляются две новые пары (
δ1(
q0, a), δ2(
q0, p0). Так как
p0, a
)) = (
q2, p3) и
(δ1(q0, b), δ2(p0, b)) = (q1, p1):
S = (q2, p3), (q1, p1),
B
B2B3B4B5B6B7B
1
q0, p0q1q2q3− p1p2p
На второй итерации алгоритм извлекает из списка пару (
яния
q2и
p3также принадлежат разным классам, поэтому классы объ-
единяются, а в списокSдобавляются пары (
(
δ1(
q2, b), δ2(
p3, b
)) = (
q3, p1). Заметим, что первая из них уже побывала в
δ1(
q2, a), δ2(
8
3
q2, p3). Состо-
p3, a
)) = (
q2, p3) и
списке, но это не проверяется, так что пара попадает в список повторно.
Получается
S = (q1, p1), (q2, p3), (q3, p1),
B
1
B2B
B4B5B6B7B
3
8
q0, p0q1q2, p3q3− p1p2−
Далее обрабатывается пара (
q1, p1). Новая пара (
q3, p1) уже присутствует в
списке, но это также не проверяется, так что одна пара попадает в список
в двух экземплярах. Получается
q
0
S = (q2, p3), (q3, p1), (q3, p1), (q0, p2),
B
B
1
B
2
B4B5B6B7B
3
8
q0, p0q1, p1q2, p3q3− − p2−
Затем из списка извлекается пара (
q2, p3). Так как эти состояния уже
принадлежат одному классу, то алгоритм не меняет систему классов, а
просто переходит к следующей паре (q3, p1). Получается
S = (q3, p1), (q0, p2), (q1, p1), (q3, p2),
B1B
B
2
3
B
B5B6B7B
4
8
q0, p0− q2, p3q3, q1, p1− − p2−
Мы видим, что класс
ключительное состояние
B4содержит заключительное состояние
q1(или
p1). Так как классы не разбиваются, то
q3и неза-

§ 4.4. Проверка эквивалентности ДКА 207
мы сразу можем заключить, что автоматы не эквивалентны. Алгоритм выполняет такую проверку только один раз, когда список становится пустым.
Задачи
169. Завершите вычисление системы множеств Biиз примера 71.
170. Проверьте, какие из следующих пар автоматов эквивалентны:
(а)
нач q0q1q
закл q4q0q
(б)
нач q0q1q
закл q3q2q
закл q4q4q
(в)
нач q0q4q
закл q2q4q
закл q4q2q
закл q5q0q
171.
Модифицируйте алгоритм проверки эквивалентности ДКА так, чтобы в
a b
q1q0q
q2q3q
q3q1q
a b
q1q2q
q2q1q
a b
q1q1q
q3q3q
2
4
4
4
1
2
4
3
4
3
1
3
2
2
5
3
нач p0p3p
закл p2p0p
закл p4p0p
нач p0p4p
закл p2p2p
нач p0p2p
закл p2p3p
случае отрицательного ответа он возвращал какое-нибудь слово, для которого
автоматы работают по-разному.
172.
Докажите, что если отношениеRправоинвариантно, то для любого слова
w из (q, p) ∈ R следует (δ(q, w), δ(p, w)) ∈ R.
173.
Докажите, что отношение эквивалентности состояний≡правоинвариантно.
174.
Какие классы вычислит алгоритм проверки эквивалентности, если
M2?
175.
Какие классы вычислит алгоритм проверки эквивалентности, если автоматы
M1и M2эквивалентны, причём один из них является минимальным?
a b
p1p3p
p3p1p
a b
p1p4p
p3p1p
p4p3p
a b
p1p1p
p3p0p
1
2
1
4
3
4
2
2
2
2
1
3
2
2
M1=

208 Глава 4. Алгоритмические проблемы для регулярных языков
176.
Проверить эквивалентность двух ДКА можно так: построить минимальные
ДКА и проверить, изоморфны ли они. Оцените время работы такого алгоритма.
§ 4.5. Проблема эквивалентности для
регулярных выражений
В предыдущем параграфе мы описали алгоритм «почти линейной»
сложности для проблемы эквивалентности ДКА. Теперь мы докажем,
что если языки заданы с помощью регулярных выражений, то эта
проблема становится
выражений задаёт все слова. В следующей лемме показано, как с
помощью регулярных выражений можно кодировать вычисления
машин Тьюринга в полиномиальной памяти.
PSPACE
-полной даже в случае, когда одно из
Ле мма 106.
шина Тьюринга с ёмкостной сложностьюp(n), и пусть
ПустьM= (Q,Σ
, P, q0, qf) — детерминированная ма-
x ∈
Σ∗— неко-
торое входное слово дляM. Можно построить регулярное выражение
rxнад некоторым алфавитом такое, что
L(r) 6=∅
тогда и только
тогда, когдаMраспознаётx. Это построение можно выполнить за
время O(p2(n)).
Доказательство. Введём следующие сокращения.
1) Если Ω = {a1, . . . , ak}, то вместо a1+ ··· + akбудем писать Ω.
2)
Если Ω1и Ω2— два алфавита такие, что Ω1⊆
{a1, . . . , ak}
{b1, . . . , bl}
3) Вместо rr . . . r
, то Ω2−
Ω1обозначает
a1+
, будем также использовать запись Ω2−b1−· ·· −bl.
| {z }
будем писать rk.
k раз
Ω2и Ω2\
Ω1=
···+ak. Если Ω1=
Подчеркнём, что это только сокращённая форма записи, а не новые
типы регулярных выражений. Например, если Ω =
Ω
−b
служит сокращением для выраженияa+c+d+e, поэтому его
{a, b, c, d, e }
, то
длина равна 13 (с учётом скобок).

§ 4.5. Проблема эквивалентности для регулярных выражений 209
Пусть ∆ = Σ
∪ Q
, и пусть #/∈Σ
∪ Q
— новый символ. Известно,
что по любой машине Тьюринга можно построить эквивалентную
одностороннюю машину Тьюринга, имеющую такую же ёмкостную
сложность. Будем считать, что
M
— односторонняя машина Тьюринга. МодифицируемMтак, чтобы в случае отрицательного ответа
она зацикливалась, не перемещая головку. Обозначим черезnдлину
входаx. Если в конфигурацииKна ленте записано слово
и машина обозревает символ
рацию будем записывать в виде
aiв состоянииq, то такую конфигу-
a1. . . a
i−1qai
. . . a
p(n)
a1a2. . . a
p(n)
. Такая запись
конфигурации похожа на обычное слово Поста. Поскольку мы знаем
количество используемых ячеек, то граничные символы не нужны.
Все крайние пустые символы записываются в явном виде. Например, если входное слово равно
начальная конфигурация записывается в виде
ние
K1`MK2`M··· `MKmбудем записывать с помощью слова
#
K1#
K2#
. . .#Km#. Это слово будем называть кодом вычисления.
Мы построим регулярное выражение
abbиM
использует пять ячеек, то
q0abb
ΛΛ. Вычисле-
rx, задающее те и только те
слова, которые не являются кодом допускающего вычисления M на
входе x.
Для удобства мы запишем
rxв виде
rx=A+B+C+D, где
каждое из выраженийA,B,C,Dзадаёт слова с определённым типом
«ошибки». Слово не является кодом допускающего вычисления в
одном из четырёх случаев:
1)
слово содержит «синтаксические» ошибки: пропущены состояния, конфигурация содержит более p(n) ячеек и т.п.;
2) начальная конфигурация не соответствует входу x;
3) заключительная конфигурация не является допускающей;
4)
некоторая конфигурация не может быть получена из предыдущей выполнением какой-нибудь команды.
Регулярное выражениеAпредставляется в видеA=
A1+
A2+

210 Глава 4. Алгоритмические проблемы для регулярных языков
A3+
A4+
A5+
A6+
A7. Слагаемые
Aiсоответствуют семи типам
ошибок.
1) Слово содержит менее двух символов #:
A1= ∆∗+ ∆∗#∆∗.
2) Слово не начинается или не заканчивается на #:
A2= ∆(∆ + #)∗+ (∆ + #)∗∆.
3) Некоторая конфигурация содержит более одного состояния:
A3= (∆ + #)∗QΣ∗Q(∆ + #)∗.
4) Некоторая конфигурация не содержит состояния:
A4= (∆ + #)∗#Σ∗#(∆ + #)∗.
5)
В некоторой конфигурации головка вышла за правую границу
блока длиныp(n) ячеек, то есть состояние находится перед
символом #:
A5= (∆ + #)∗Q#(∆ + #)∗.
6) Некоторая конфигурация содержит более p(n) + 1 символов:
A6= (∆ + #)∗#∆
p(n)+2∆∗
#(∆ + #)∗.
7) Некоторая конфигурация содержит менее p(n) + 1 символов:
A7= (∆ + #)∗#(∆0+ ∆1+ ∆2+ ··· + ∆
Выражения
A1,
A2,
A3,
A4и
A5не зависят отx, поэтому их длина
ограничена константой. Выражение
жение
A7имеет длинуO(
p2(n)), поэтому выражениеAстроится за
A6имеет длинуO(p(n)), а выра-
p(n)
)#(∆ + #)∗.
полиномиальное время.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
