Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 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)
)#(∆ + #)∗.
полиномиальное время.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]