Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 2.6. Двусторонние конечные автоматы 121
либо он зациклится внутри w.
Пр име р 47.
Сначала рассмотрим словоx= построим вычисление, в котором сначала обозревается последний символ. Заметим, что конфигурации ( встретиться в реальном вычислении, но для слова найти связанное отображение.
(q0, aba, 3) ` (q0, aba, 4)
(q1, aba, 3) ` (q1, aba, 2) ` (q2, aba, 1) ` (q2, aba, 2) ` (q3, aba, 3) ` (q3, aba, 4)
(q2, aba, 3) ` (q2, aba, 4)
(q3, aba, 3) ` (q3, aba, 4)
Найдём несколько отображений для автомата из примера 46.
aba
. Для каждого из четырёх состояний
q0, aba,
3), (
q1, aba,
3) и (
aba
q2, aba,
3) не могли
всё равно можно
Следовательно, τx= {(q0, q0), (q1, q3), (q2, q2), (q3, q3) }.
Теперь рассмотрим слово y = ab:
(q0, ab, 2) ` (q1, ab, 2) ` (q2, ab, 1) ` (q2, ab, 2) ` (q3, ab, 3)
(q1, ab, 2) ` (q2, ab, 1) ` (q2, ab, 2) ` (q3, ab, 3)
(q2, ab, 2) ` (q3, ab, 3)
(q3, ab, 2) ` (q3, ab, 2) ` . . .
Следовательно, τy= {(q0, q3), (q1, q3), (q2, q3), (q3, r) }.
Непосредственно из определения следует, что состояния
q ∈ Q
τx(
q0) =
q0,
τx(
q1) =
q3,
τx(
q2) =
q2,
τx(
q3) =
q3, то есть
τε(q) =rдля любого
: так как символов нет, то автомат сошёл с ленты
уже на момент запуска.
Оп ределен ие 66.
Пустьτ— отображение, связанное с некото­рым словом, и пустьa— произвольный символ. П р о и з в е д е н и е отображенияτна символa— это отображение
τ0: Q → Q ∪ { r }
определяемое следующим образом.
τ0(q) =p, если существует конечная последовательность состо-
яний (
pn, a → p,
p0, p1, . . . , pn) такая, что
+1 и для каждого 0
p0=q, в автомате есть команда
6 i 6 n −
1 выполняется одно из двух
условий:
,
122 Глава 2. Конечные автоматы и регулярные выражения
1) либо в автомате есть команда pi, a → p
2)
либо в автомате есть команда состояния p
0
такого, что τ(p
i
0
) = p
i
pi, a → p
i+1
, 0;
i+1
0
, −
1 для некоторого
i
.
Если такой последовательности не существует, то τ0(p) = r. Результат умножения τ на a будем обозначать τ · a.
Пр име р 48.
{(q0, q0),(
Сначала вычислим стояний из определения. Последовательность начинается с команда
(q0, q0), следовательно, τ0(q0) = q0.
Теперь найдём первом шаге головка сдвигается влево на одну позицию. Так какτ( то автомат уже никогда не вернётся в ячейку с новым символомa. Поэтому последовательность из определения не существует и τ0(q1) = r.
Для шагом сдвигает головку вправо, поэтому что получилось τ · a = τ.
Теперь найдём применяет команду шаге применяется команда предыдущую ячейку, а автомат оказывается в состоянии
τ
мы знаем, что автомат вернётся в ячейку с новым символомbв состоянии
q2, так какτ(
и впервые уйдёт вправо. Итак, последовательность состояний имеет вид
(q0, q1, q2) и τ00(q0) = q3.
Для не применяется команда же, как в предыдущем случае. Поэтому τ00(q1) = q3.
Выполняя команду в ячейку справа, поэтому применяет команду
Для автомата из примера 46 рассмотрим отображениеτ=
q1, r),(q2, q2),(
q0, a → q0,
q3, q3)}. Найдём отображения
τ0(
q0). Для этого построим последовательность со-
τ0=
τ · aиτ00=
q0, для
q0есть
+1. Поэтому искомая последовательность имеет вид
τ0(
q1). В автомате есть команда
q1, a → q1, −
1, поэтому на
τ · b
q1) =r.
q2и
q3ситуация аналогично случаю с
τ0(
τ00. Сначала вычисляем
q0, b → q1,
0 и остаётся в текущей ячейке. На следующем
q1, b → q2, −
τ00(
1. В результате головка сдвигается с
q1. Автомат первым же
q2) =
q2,
τ0(
q3) =
q3. Заметим,
q0). На первом шаге автомат
q2. Из отображения
q2) =
q2. После этого он выполнит команду
q2, b → q3,
+1
q1последовательность будет на одно состояние короче, потому что
q0, b → q1, −
q2, b → q3,
τ00(
q3, b → q3,
q2) =
1. В остальном автомат работает так
+1, автомат первым же шагом перейдёт
q3. Наконец,
τ00(
q3) =r, так как автомат
0 и зацикливается, а значит, он никогда не
.
§ 2.6. Двусторонние конечные автоматы 123
переместит головку в ячейку справа. Итак,
τ · a = {(q0, q0), (q1, r), (q2, q2), (q3, q3) },
τ · b = {(q0, q3), (q1, q3), (q2, q3), (q3, r) }.
Сформулируем главное свойство определённой операции умноже­ния.
Ле мма 52.
Для любого словаwи любого символаaвыполняется
τw· a = τwa.
Доказательство. Пусть через
(
q, wa, k
τ0. Пусть
+ 1). Так как
τ0(q) =pи
p 6=r
|w|=k
p 6=r
. Рассмотрим конфигурацию автомата
, то последовательность (
. Обозначим отображение
p0, p1, . . . , pn) из
τ · a
определения 66 существует. Тогда её можно записать в виде
(p0, p1, . . . , p
, p
i1+1
, . . . , p
i
1
, p
i2+1
, . . . , p
i
2
, p
i
m
im+1
, . . . , pn)
так, что для состояний на участках
(p0, . . . , p
имеются только команды со сдвигом 0, а для состояний имеются команды вида значит, что если автомат начинает работу в
i
1
), (p
p
i
, . . . , p
i1+1
, a → qj, −
j
), . . . , (p
i
2
im+1
1 такие, что
qj, обозревая последний
, . . . , pn)
τw(
qj) =
p
ij+1
p
i
1
, . . . , p
. Но это
i
символw, то он сдвинет головку на символa, стоящий справа отw, причём при первом посещении ячейки с этим символом он окажется в состоянии p
(p0, wa, k + 1) `∗(p
`∗(p
. Следовательно,
ij+1
, wa, k + 1) ` (q1, wa, k) `
i
1
, wa, k + 1) `∗(p
i1+1
`∗(p
, wa, k + 1) `∗··· `∗(p
i2+1
` (qm, wa, k) `∗(p
∗
, wa, k + 1) ` (q2, wa, k) `
i
2
, wa, k + 1) `
i
m
, wa, k + 1) `∗(pn, wa, k + 1). (4)
im+1
∗
m
Заметим, что если в этой последовательности есть конфигурации с положением головкиk, то обязательно
k >
1, так как для пустого
124 Глава 2. Конечные автоматы и регулярные выражения
словаwневозможно
τw(
p
) =
qj. Это значит, что вычисление кор-
i
j
ректно. Кроме того, по определению последовательности в автомате есть команда автомат впервые сдвинет головку правее слова
pn, a → p,
+1. Применяя её в последней конфигурации,
wa
и окажется при
этом в состоянии p. Поэтому τwa(q) = p, то есть τwa(q) = τ0(q).
Теперь предположим, что
τwa(q) =pи
p 6=r
. Это значит, что
существует вычисление вида
(q, wa, k + 1) `∗(pn, wa, k + 1) ` (p, wa, k + 2),
в котором автомат посещает (k+ 2)-ю ячейку только в последней конфигурации. Вычисление (
q, wa, k
+ 1)
`∗(
pn, wa, k
+ 1) имеет
вид (4), причём в вычислениях
(p0, wa, k + 1) `∗(p
(p
, wa, k + 1) `∗(p
ij+1
(p
, wa, k + 1) `∗(pn, wa, k + 1)
im+1
, wa, k + 1),
i
1
, wa, k + 1),
i
j+1
применяются только команды со сдвигом 0, а в вычислениях
(qj, wa, k) `∗(p
, wa, k + 1)
ij+1
автомат впервые возвращается в (k+ 1)-ю ячейку на последнем шаге. Но тогда по определению
(p0, p1, . . . , p
i
1
, p
i1+1
τw(
qj) =
, . . . , p
p
. Значит, последовательность
ij+1
, p
i2+1
, . . . , p
i
2
, p
i
m
im+1
, . . . , pn)
удовлетворяет всем условиям определения 66, поэтому τ0(q) = p.
Итак, мы доказали, что если тогда, когда тогда, когда
τ0(q) =p. Отсюда следует, что
τ0(q) =r. Следовательно,
p 6=r
, то
τwa(q) =pтогда и только
τwa(q) =rтогда и только
τ0(q) =
τwa(q) для всехq, то
есть τw· a = τwa.
Теперь мы можем доказать основной результат о двусторонних конечных автоматах.
§ 2.6. Двусторонние конечные автоматы 125
Теорема 53.
По любому двустороннему ДКА можно построить
эквивалентный ему односторонний ДКА.
Доказательство. ПустьM= (Q,Σ
, δ, q0, F
сторонний ДКА. Построим односторонний ДКА Множество состояний будет следующим:
Q0= {[τ, q] : q ∈ Q, τ — отображение,
связанное с некоторым словом } ∪ {t }.
Если
|Q|=n
множество ным состоянием автомата
, то существует (n+ 1)nразных отображений, поэтому
Q0конечно, а его мощность равнаn(n+ 1)n+ 1. Началь-
M0будет пара
0
q
0
заключительных состояний определяется как
F0= {[τ, q] : q ∈ F }.
Программа определяется следующим образом:
δ0([τ, q], a) = [τ0, p], если τ0= τ · a, p = τ0(q) и p 6= r, δ0([τ, q], a) = t, если τ0(q) = r, δ0(t, a) = t.
) — произвольных дву-
M0= (Q,Σ
= [
τε, q0], а множество
, δ0, q
0
, F0).
0
Неформально, схема работы автомата чтоMуже прочитал слово
a1. . . a
k−1
M0такова. Предположим,
и обозревает символ
ak. Тогда
M0знает, в каком состоянии до этого символа впервые добрался
автоматM. Кроме того, вом
a1. . . a
, а значит, и со словом
k−1
отображение хранит все возможные исходы работы конце слова, на символ
M0может определить, в каком состоянииMсдвигался
a
.
M0допускает слово тогда и только тогда, когда после
k+1
M0знает отображение, связанное со сло-
a1. . . ak. Благодаря тому, что
M
на правом
его прочтения он выясняет, чтоMсошёл с правого края ленты в за­ключительном состоянии. Если оказывается, чтоMне мог дочитать слово до конца, то M0переходит в состояние t и отвергает слово.
Докажем корректность автомата M0.
126 Глава 2. Конечные автоматы и регулярные выражения
Индукцией по длинеwдокажем следующее утверждение: если
(q0, w, 1) `
∗
(q, w, |w| + 1), то ([τε, q0], w) `
M
Б а з и с и н д у к ц и и . Если
|w|
∗
([τw, q], ε]).
0
M
= 0, тоw=εиq=
q0. Поэтому
([τε, q0], w) = ([τw, q], ε).
Ш а г и н д у к ц и и . Пустьw=vaи (
q0, va,1)`
∗
M
(
q, va, |w|
+ 1). Найдём первую конфигурацию, в которой обозревается символa, стоящий справа от слова v:
Тогда (
(q0, va, 1) `
q0, v,1)`
∗
M
(
p, v, |v|
∗
(p, va, |v| + 1) `
M
+ 1), так какMне заглядывал за правый
конец словаv. По индукционному предположению ([
([
τv, p], ε
лению отображенийτполучаем
). Поскольку (
p, va, |v|
+ 1)
τva(p) =q. По лемме 52
Следовательно, по построению в автомате
∗
(q, va, |w| + 1).
M
∗
`
(
q, va, |w|
M
M0есть команда [
τε, q0]
+ 1), то по опреде-
[τva, q]. Получаем
Если
qf∈ F
w ∈ L(M
. Тогда ([
([τε, q0], va) `
), то (
τε, q0]
q0, w,1)`
, w)`
∗
([τv, p], a) `
0
M
∗
([
τw, qf]
0
M
∗
M
, ε
0
([τva, q], ε).
M
(
qf, w, |w|
). Так как
+ 1) для некоторого
qf∈ F
, то [
F0, следовательно, w ∈ L(M0) и L(M) ⊆ L(M0).
Теперь установим обратное включение. Индукцией по длине докажем следующее утверждение: если ([ некоторого τ, то τ = τwи (q0, w, 1) `
Б а з и с и н д у к ц и и . Если
(q0, w, 1) `
∗
(q, w, |w| + 1).
M
∗
(q, w, |w| + 1).
M
|w|
= 0, тоw=ε,q=
τε, q0]
, w)`
∗
M
([
0
q0,τ=
Ш а г и н д у к ц и и . Пусть w = va и вычисление имеет вид
, v)`
τva=
τv· a
τv, p], a →
τw, qf]
τ, q], ε
) для
∗
M
τεи
0
.
∈
w
([τε, q0], va) `
∗
([τ0, p], a) `
0
M
По индукционному предположению ( В автомате случае, еслиτ=
M0есть команда [
τv, p], a →[τ, q
τv·a=τva(используем лемму 52) иq=
0
M
q0, v,1)`
]. Это возможно только в
([τ, q], ε).
∗
(
p, v, |v|
M
+1) и
τ0=
τva(p). Тогда
τv.
§ 2.6. Двусторонние конечные автоматы 127
по определению функции
τvaимеем (
p, va, |v|
+ 1)
∗
`
M
(
q, va, |va|
+ 1).
Объединяя два вычисления, получаем
и
qf∈ F
(q0, va, 1) `
Если
w ∈ L(M0), то ([ . Тогда (
∗
(p, va, |v| + 1) `
M
τε, q0]
q0, w,1)`
∗
M
(
, w)`
qf, w, |w|
∗
(q, va, |va|+ 1).
M
∗
([
τ0, qf]
0
M
+ 1). Поэтому
, ε
) для некоторых
w ∈ L(M
τ
) и
L(M0) ⊆ L(M ).
Пр име р 49.
ра 46. Так как двусторонний автомат содержит четыре состояния, то од­носторонний автомат должен содержать 4·(4 + 1)4+ 1 = 2501 состояние. Поэтому мы вычислим только те функции, которые могут получиться из
τεс помощью умножения на символы, а в автомат включим только те
состояния, которые достижимы из начального. Индексы у отображений будут обозначать их номера в порядке вычисления. Получается следующая таблица умножения:
Теперь построим конечный автомат. Начальным состоянием будет пара
[
τ0, q0]. Согласно конструкции из теоремы в автомате должна быть команда
[
τ0, q0]
, a →[τ, q
τ0· a=τ1и
Теперь выпишем команду с левой частью [
ний находим
[
τ0, q0]
, b → t
Построим односторонний автомат для автомата из приме-
τ
= { (q0, r), (q1, r), (q2, r), (q3, r) }
0
τ0· a = { (q0, q0), (q1, r), (q2, q2), (q3, q3) } = τ τ0· b = { (q0, r), (q1, r), (q2, q3), (q3, q3) } = τ τ1· a = { (q0, q0), (q1, r), (q2, q2), (q3, q3) } = τ τ1· b = { (q0, q3), (q1, q3), (q2, q3), (q3, r) } = τ τ2· a = { (q0, q0), (q1, r), (q2, q2), (q3, q3) } = τ τ2· b = { (q0, r), (q1, r), (q2, q3), (q3, r) } = τ τ3· a = { (q0, q0), (q1, q3), (q2, q2), (q3, q3) } = τ τ3· b = { (q0, r), (q1, r), (q2, q3), (q3, r) } = τ τ4· a = { (q0, q0), (q1, q3), (q2, q2), (q3, q3) } = τ τ4· b = { (q0, q3), (q1, q3), (q2, q3), (q3, r) } = τ
], еслиτ=
τ1(
q0) =
τ0· b=τ2и
τ0·aиq=τ(q0). Из списка отображений находим
q0. Значит, мы добавляем команду [
τ0, q0]
, b
. Из списка отображе-
τ2(
q0) =r. Значит, автомат содержит команду
1
2
1
3
1
2
4
2
4
3
τ0, q0]
, a →[τ1, q0].
. Далее мы рассматриваем только те состояния, которые уже
0
τ
128 Глава 2. Конечные автоматы и регулярные выражения
a b
нач [τ0, q0] [τ1, q0] t
[τ1, q0] [τ1, q0] [τ3, q3]
закл [τ3, q3] [τ4, q3] t закл [τ4, q3] [τ4, q3] t
t t t
Рис. 19. Односторонний автомат из примера 49.
встретились в программе. В результате мы получаем автомат, изображён­ный на рис. 19. Автомат содержит всего пять состояний, но он не является минимальным, так как строки для состояний [ поэтому их можно объединить в одну.
τ3, q3] и [
τ4, q3] одинаковы,
Доказанная теорема допускает простое обобщение.
Теорема 54.
Класс языков, распознаваемых детерминированными многоленточными машинами Тьюринга в памятиO(1), совпадает с классом регулярных языков.
Доказательство. Конечный автомат распознаёт язык, не исполь­зуя рабочую ленту, поэтому любой регулярный язык распознаётся в памятиO(1). Обратно, пусть машина Тьюринга
M
распознаёт языкLв конечной памяти. Тогда число различных конфигураций рабочих лент конечно, поэтому их можно хранить в состояниях. В результате получится двусторонний ДКА, распознающий язык #LΛ. По теореме 53 для него существует эквивалентный ДКА. Заменяя в его правилах символы # и Λ наε, мы получим НКА для языка
L
, следовательно,Lявляется регулярным. Детали доказательства
оставляем в качестве упражнения.
За меч ани е 3.
класс регулярных языков совпадает с классом языков, распознаваемых многоленточными детерминированными машинами Тьюринга в памяти
o(log2log2n
язык, который можно распознать в памяти Θ(log2log2n) (задача 110).
Теорема 54 может быть усилена. Можно показать, что
). Граница
log2log2n
является точной: существует нерегулярный
§ 2.6. Двусторонние конечные автоматы 129
Аналогичный результат можно доказать и для временн´ой сложности: языкLявляется регулярным тогда и только тогда, когда он распознаётся некоторой одноленточной детерминированной машиной Тьюринга за время
o(n log2n
). Эта граница также является точной: существует нерегулярный
язык, распознаваемый за время Θ(n log2n) (задача 111).
Сл едствие 55. Следующие классы языков совпадают:
1) задаваемые детерминированными конечными автоматами;
2) задаваемые недетерминированными конечными автоматами;
3) задаваемые автоматными грамматиками;
4) задаваемые праволинейными грамматиками;
5) задаваемые регулярные выражениями;
6)
задаваемые системами уравнений с регулярными коэффициен­тами;
7) задаваемые двусторонними конечными автоматами.
Доказательство.
На рисунке 20 изображены все преобразования. Ребро
x → y
означает, что по объектуxможно построить объектy. Так как из любой вершины достижима любая, то семь классов языков совпадают.
Задачи
100. Докажите, что автомат из примера 46 распознаёт язык L(aa∗ba∗).
101. Для следующих 2ДКА постройте эквивалентные им односторонние ДКА:
(а) M1= (
q1, +1; q1, a → q1, −1; q1, b → q1, −1 };
(б) M2= (
q1, 0; q1, a → q0, −1; q1, b → q0, −1 }.
102.
Докажите, что по любому двустороннему ДКА сnсостояниями можно построить эквивалентный ему двусторонний ДКА без команд вида котором число состояний не превосходит n + 1.
{ q0, q1}, { a, b }, δ1, q0, { q1}
{ q0, q1}, { a, b }, δ2, q0, { q1}
), где
), где
δ1=
δ2=
{ q0, a → q0,
{ q0, a → q0,
+1;
q0, b →
+1;
q0, b →
q, a → p,
0, в
130 Глава 2. Конечные автоматы и регулярные выражения
ДКА
2ДКА
Регулярные выражения
Системы уравнений
Автоматные грамматики
НКА
Праволинейные грамматики
Рис. 20. Равенство семи классов языков.
103.
Пусть на ленте используются специальные символы #1, щие левый и правый край слова соответственно. Автомат не может двигаться влево, если он обозревает #1, и не может двигаться вправо, если он обозревает
#2. У автомата есть специальное заключительное состояние
команд. В начальный момент времени на ленте записано слово #1w обозревает символ #1. Автомат распознаёт словоw, если при работе на #1w некоторый момент времени он оказывается в состоянии автоматы распознают в точности регулярные языки.
104.
Докажите, что класс языков, распознаваемых недетерминированными ма­шинами Тьюринга в памяти O(1) совпадает с классом регулярных языков.
105. Для каждого n > 1 определим язык Lnв алфавите Σ = { a, b, c, d, e }:
i
Ln= { da
i
1
2
ba
b . . . ba
i
n
i
k
bcka
e : 1 6 k, j, ij6 n }.
#2/∈
Σ, обозначаю-
qf, для которого нет
#2, а автомат
#2в
qf. Докажите, что такие
Например,
L2= { dabacae, dabaccae, daabacaae, daabaccae,
dabaacae, dabaaccaae, daabaacaae, daabaaccaae }.
Докажите, что Lnраспознаётся 2ДКА, содержащим O(n) состояний.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]