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

§ 1.3. Полусистемы Туэ 31
но построить1полусистему ТуэT= (Σ
любых двух слов Постаαиβвыполняется следующее:
и только тогда, когда α ⇒
n
β.
T
Доказательство. Для каждой команды изPмы включим в
∪Q ∪ {#}, U
) такую, что для
n
α `
β
тогда
M
U
некоторое множество правил. До конца этого доказательства символы
c и d обозначают произвольные элементы алфавита Σ.
Пусть M содержит правило q, a → p, b, +1.
1) Если b 6= Λ, то добавим в U следующие правила:
qac → bpc, qa# → bpΛ#.
2) Если b = Λ, то добавим в U следующие правила:
cqad → cΛpd, #qad → #pd,
cqa# → cΛpΛ#, #qa# → #pΛ#.
Пусть M содержит правило q, a → p, b, −1.
1) Если b 6= Λ, то добавим в U следующие правила:
cqa → pcb, hqa → #pΛb.
2) Если b = Λ, то добавим в U следующие правила:
cqad → pcΛd, cqa# → pc#,
#qac → #pΛΛc, #qa# → #pΛ#.
Пусть
M
содержит правило
q, a → p, b,
0. Тогда добавим в
правило
qa → pb.
Правильность утверждения приn= 1 проверяется непосредствен-
но. Для произвольного n теорема доказывается по индукции.
1
Здесь и всюду далее выражение «По объектуAможно построить объектB»
означает, что существует алгоритм, который выполняет указанное построение.
U

32 Глава 1. Формальные грамматики и языки
Сл едствие 13.
Проблема выводимости неразрешима для полусистем Туэ, то есть не существует алгоритма, который по произвольной
полусистеме ТуэTи словамx,yопределял бы, выполняется ли
∗
x ⇒
y.
T
Доказательство. Из разрешимости проблемы выводимости следовала бы разрешимость проблемы остановки для машин Тьюринга.
Задачи
27. Постройте полусистемы Туэ, в которых
(а) из anпри n > 0 выводимо bicjтогда и только тогда, когда i = j = n;
(б)изabiabja
тогда и только тогда, когда i 6 j;
(в) из a выводимо bnтогда и только тогда, когда n — составное число;
(г)изabna
w — двоичная запись числа n.
28.
Пусть полусистема ТуэTв алфавите
bba, bb → ε }
префикса слова w, состоящего только из b, а j = |w|a.
29.
Для полусистемы Туэ из предыдущей задачи постройте все размеченные
выводы для выводов bbbbb ⇒
30.
Докажите, что проблема выводимости неразрешима для полусистем Туэ в
двухбуквенном алфавите.
31.
Докажите, что проблема выводимости разрешима для полусистем Туэ в
однобуквенном алфавите.
32. Завершите доказательство теоремы 12.
выводимоcтогда и только тогда, когда
при
n >
0 выводимо слово
. Докажите, что
w ⇒
∗
b и babbab ⇒
T
w ∈ {0,1}∗тогда и только тогда, когда
i mod 2aj
b
{ a, b }
, гдеi— длина самого длинного
∗
baa.
T
∗
T
i > j
, и выводимо
содержит правилаU=
{ ab →
d
§ 1.4. Порождающие грамматики
Как мы уже сказали, теория формальных языков изучает различные способы описания множеств слов, в том числе и бесконечных. В
этом параграфе мы рассмотрим один из таких способов — порождающие грамматики.

§ 1.4. Порождающие грамматики 33
Оп ределен ие 29.
П о р о ж д а ю щ а я г р а м м а т и к а — это чет-
вёрка G = (N, Σ, P, S), где
1) N
— алфавит н е т е р м и н а л о в (в с п о м о г а т е л ь н ы й ал-
фавит);
2)
Σ — алфавит т е р м и н а л о в (о с н о в н о й алфавит), при
этом Σ ∩N = ∅;
3) P ⊆
(Σ
∪ N
)∗N(Σ∪ N
)∗×(Σ∪ N
)∗— множество п р а в и л
в ы в о д а;
4) S ∈ N
— н а ч а л ь н ы й нетерминал ( г л а в н ы й нетерминал,
а к с и о м а ).
Любую порождающую грамматику можно рассматривать как полусистему Туэ (Σ
грамматик определяются отношения⇒,
Σ
∪ N
и понятие вывода в грамматике. Главное отличие грамматики
∪ N, P
). Поэтому, как и для полусистем Туэ, для
⇒n,
⇒∗и
⇒+на множестве
от произвольной полусистемы Туэ состоит в разделении алфавита на
две части. Содержательно, терминальный алфавит — это множество
символов, из которых состоят интересующие нас слова. Нетерминалы
не могут принадлежать словам языка и служат только для управления выводом. Левая часть каждого правила должна содержать хотя
бы один нетерминал.
Оп ределен ие 30.
(N,Σ
, P, S
), — это множество всех терминальных слов, выводимых
Язык, п о р о ж д а е м ы й грамматикойG=
из начального нетерминала:
L(G) = {w ∈ Σ∗: S ⇒
∗
w }.
G
При изучении грамматик интерес представляет не только принципиальная возможность задания некоторого языка, но и сложность
такого описания, то есть размер грамматики.

34 Глава 1. Формальные грамматики и языки
Оп ределен ие 31.
Д л и н о й правила
α → β
называется число
|α| + |β| + 1.
Р а з м е р о м грамматикиG= (N,Σ
, P, S
) называется сумма
длин всех правил из P :
X
|G| =
α→β∈P
(|α| + |β| + 1).
Разные грамматики могут порождать один и тот же язык.
Оп ределен ие 32.
Грамматики
G1и
G2называются э к в и в а -
л е н т н ы м и , если они порождают один и тот же язык, то есть
L(G1) = L(G2).
Пр име р 13.
дующим множеством правил:
Выведем в этой грамматике слово abb:
Рассмотрим грамматикуG= (
S → AaB Ab → a
S → Bbb A → bb
aB → bA Bb → a
S ⇒ AaB ⇒ AbA ⇒ aA ⇒ abb.
{S, A, B }, { a, b }, P, S
) со сле-
Так как S ⇒∗abb, то abb ∈ L(G).
Рассмотрим теперь пустое слово. Так как в правой части каждого
правила есть терминал, то пустое слово не выводимо вG, то есть
ε /∈ L(G
Далее при записи грамматик мы будем придерживаться следующих соглашений:
1)
нетерминалы обозначаются заглавными латинскими буквами,
причём начальный нетерминал обозначается S;
2)
терминалы обозначаются строчными латинскими буквами или
арабскими цифрами.
Если эти условия не выполняются, то мы будем явно указывать
алфавиты терминалов и нетерминалов.
).

§ 1.4. Порождающие грамматики 35
Докажем, что порождающие грамматики по своей выразительной
силе эквивалентны машинам Тьюринга.
Теорема 14.
Класс языков, задаваемых порождающими граммати-
ками, совпадает с классом рекурсивно перечислимых языков.
Доказательство. Пусть языкLпорождается некоторой грам-
матикойG= (N,Σ
M
, которая останавливается на словеwтогда и только тогда, когда
w ∈ L
. Машина Тьюринга работает по следующему алгоритму (для
, P, S
). Мы должны построить машину Тьюринга
простоты мы описываем недетерминированный алгоритм):
1: while слово на ленте не равно S do
2: Выбрать правило α → β ∈ P .
3: Найти какое-нибудь вхождение β в слово на ленте.
4: Заменить это вхождение β на α.
5: end while
Если словоwвыводимо в грамматике, то алгоритм угадывает
этот вывод и применяет его к словуwв обратном порядке, получая
S
. Обратно, если словоwне выводимо в грамматике, то никакая
последовательность замен не преобразуетwвS, поэтому алгоритм
не останавливается.
Пусть теперь языкLрекурсивно перечислим. Это значит, что
существует машина ТьюрингаM, которая останавливается на словеwтогда и только тогда, когда
w ∈ L
. Можно считать, что
M
удовлетворяет трём условиям:
1)
начальные слова Поста имеют вид #
q0Λw#, то есть перед вход-
ным словом стоит дополнительный пустой символ (без этого
условия пришлось бы отдельно рассматривать случай w = ε);
2)
заключительные слова Поста машины ТьюрингаMимеют вид
#
qfΛ#, то естьMочищает ленту, если она принимает входное
слово;
3) M
никогда не возвращается в начальное состояние, то есть в

36 Глава 1. Формальные грамматики и языки
M нет команд вида q, a → q0, b, s.
Построим грамматикуG= (
Q ∪ {#, S, R },Σ, P, S
). Сначала построим по машине ТьюрингаMполусистему ТуэT(как в теореме 12).
В правила грамматикиGдобавим
гда вTесть правило
β → α
. Кроме того, добавим вPследующие
α → β
тогда и только тогда, ко-
правила:
S → #qfΛ#,
#q0Λ → R,
Ra → aR для всех a ∈ Σ ∪Q,
R# → ε.
Из теоремы 12 следует, что для любых двух слов Постаαи
выполняется α `
n
β тогда и только тогда, когда β ⇒
M
ЕслиMостанавливается на словеw, то #
q0Λw#
n
α.
G
`∗#
qfΛ#. По-
β
этому #qfΛ# ⇒∗#q0Λw#. Значит, существует вывод
S ⇒ #qfΛ# ⇒∗#q0Λw# ⇒ Rw# ⇒∗wR# ⇒ w. (1)
Наоборот, пусть
S ⇒∗w
. Вывод обязательно имеет вид
(1)
. Действительно, дляSимеется только одно правило, а единственный
способ избавиться от нетерминалов — применить правилоR#
НоRможет появиться только по правилу #
что после слова #
чит, #
qfΛ#
qfΛ# обязательно встречается слово #
⇒∗#
q0Λw# и #
q0Λw#
`∗#
q0Λ
→ R
. Это значит,
q0Λw#. Зна-
qfΛ#. Следовательно,
→ ε
M
останавливается на слове w.
Поскольку грамматики произвольного вида порождают в точности
рекурсивно перечислимые языки, то они слишком сложны для практического применения. В частности, любое нетривиальное свойство
языков, порождаемых такими грамматиками, неразрешимо (аналог
теоремы Райса-Успенского). Поэтому большой интерес представляет
выделение более узких классов грамматик. Н. Хомский определил
четыре класса порождающих грамматик, основываясь на виде правил. Эти классы грамматик и соответствующие им классы языков
называются и е р а р х и е й Х о м с к о г о .
.

§ 1.4. Порождающие грамматики 37
Первый и самый широкий класс грамматик — грамматики типа 0. Это произвольные порождающие грамматики без каких-либо
ограничений на правила. Языки, порождаемые грамматиками типа
0, называются языками типа 0.
Второй класс грамматик — грамматики типа 1. Другие названия этих грамматик — ко н т е к с т н о - з а в и с и м ы е грамматики
(КЗ-грамматики), к о н т е к с т н ы е грамматики, грамматики н е п о -
с р е д с т в е н н о с о с т а в л я ю щ и х (НС-грамматики). Мы будем
использовать название КЗ-грамматики.
Оп ределен ие 33.
называется ко н т е к с т н о - з а в и с и м о й, если все её правила имеют один из двух видов:
1) ξAη → ξαη, где ξ, η ∈ (Σ ∪N )∗, α ∈ (Σ ∪ N)+, A ∈ N ;
2) S → ε
правил.
ЯзыкLназывается контекстно-зависимым (КЗ-языком), если
он порождается некоторой КЗ-грамматикой.
Пара (
в ы м к о н т е к с т о м, а словоη— п р а в ы м ко н т е к с т о м. Правило
ξAη → ξαη
α
(обязательно непустое), еслиAнаходится в контексте (
ственный случай, когда нетерминал может быть заменён на пустое
слово, — это вывод вида
язык содержит пустое слово.
Из определения следует, что в любом правиле КЗ-грамматики
правая часть не может быть короче левой (кроме правила
Грамматики, удовлетворяющие такому условию, называются н е у к о р а ч и в а ю щ и м и.
, при этомSне встречается в правых частях других
ξ, η
) называется к о н т е к с т о м. Словоξназывается л е -
говорит, что можно заменить нетерминалAна слово
Порождающая грамматикаG= (N,Σ
ξ, η
S ⇒ ε
. Правило
S → ε
необходимо, если
, P, S
)
). Един-
S → ε
).

38 Глава 1. Формальные грамматики и языки
Оп ределен ие 34.
называется н е у к о р а ч и в а ю щ е й, если для любого правила
β
выполняется неравенство
правила
S → ε
Порождающая грамматикаG= (N,Σ
. Если
|α| 6 |β|
S → ε ∈ P
, за исключением, быть может,
, тоSне встречается в правых
, P, S
α →
частях других правил.
Пр име р 14.
следующей неукорачивающей грамматикой:
Сначала изSвыводится слово вида
переставляются с помощью правила
не окажутся передC. В результате получится слово
последние четыре правила заменят нетерминалыBиCна терминалы
иc. Контекст в этих правилах контролирует, что нетерминал занял свою
позицию, например, нельзя заменитьBнаb, если левее стоит символC.
Формальное доказательство мы опускаем.
Приведённая выше грамматика не является контекстно-зависимой, так
как она содержит правило
грамматику, заменим правило CB → BC на три новых правила
Рассмотрим языкL=
S → aSBC bB → bb
S → aBC bC → bc
CB → BC cC → cc
aB → ab
CB → BC
{anbncn:
an(BC)n. Затем символыBи
CB → BC
. Чтобы преобразовать её в КЗ-
n >0}
. Он порождается
до тех пор, пока все
anBnCn. Наконец
)
C
B
b
CB → B0B, B0B → B0C, B0C → BC,
а все остальные правила оставим без изменения. Легко видеть, что новая
грамматика эквивалентна исходной.
Как и языки типа 0, КЗ-языки допускают характеристику в терминах автоматов.
Оп ределен ие 35.
Л и н е й н о - о г р а н и ч е н н ы й а в т о м а т
(ЛО-автомат) — это недетерминированная машина ТьюрингаM=
(Q,Σ
, P, q0, qf), в которой алфавит Σ содержит два специальных
символа #1и #2— маркеры левого и правого края ленты соответственно. При этом для каждой команды
q, a → p, b, s ∈ P

§ 1.4. Порождающие грамматики 39
выполняются следующие условия:
1) если a = #1, то b = #1и s 6= −1;
2) если a = #2, то b = #2и s 6= +1;
3) если a /∈ {#1, #2}, то b /∈ {#1, #2}.
Таким образом, ЛО-автомат —это обычная машина Тьюринга, у
которой специальными символами #1и #2отмечены левый и правый «края» ленты. Поэтому при записи слов Поста можно опустить
символ #.
Оп ределен ие 36. ЛО-автомат M р а с п о з н а ё т слово w, если
#1q0w
#2`∗#1uqf#2для некоторого слова
u ∈
Σ∗. Язык, р а с -
п о з н а в а е м ы й ЛО-автоматомM, — это множество всех слов,
распознаваемых M .
Теперь мы докажем эквивалентность различных способов задания
КЗ-языков.
Теорема 15. Следующие классы языков совпадают:
1) порождаемые неукорачивающими грамматиками;
2) порождаемые КЗ-грамматиками;
3)
распознаваемые недетерминированными машинами Тьюринга в
линейной памяти, то есть NSPACE(n);
4) распознаваемые ЛО-автоматами.
Доказательство. 1)⇒2) Рассмотрим произвольное правило
X1. . . Xk→ Y1. . . Yk. . . Y
Добавим новые нетерминалы
X
0
1
, . . . , X
0
(свои для каждого правила)
k
k+m
.

40 Глава 1. Формальные грамматики и языки
и заменим это правило на следующее множество:
X1X2. . . Xk→ X
0
X2. . . X
1
k
. . .
0
X
. . . X
1
0
i−1
XiX
. . . Xk→ X
i+1
0
. . . X
1
0
i−1
X
0
X
. . . X
i+1
i
k
. . .
X
0
1
. . . X
0
X
1
X
0
k−1
0
. . . X
2
Xk→ X
0
→ Y1X
k
0
. . . X
1
0
. . . X
2
0
k−1
0
X
k
0
k
. . .
Y1. . . Y
i−1
X
0
X
i
i+1
. . . X
0
→ Y1. . . Y
k
i−1Yi
X
0
i+1
. . . X
0
k
0
. . .
Y1. . . Y
k−1
0
X
→ Y1. . . Y
k
k−1Yk
. . . Y
k+m
Первыеkправил нового множества заменяют символы из левой части
правила на новые нетерминалы по одному символу за шаг. Последние
k
правил заменяют новые нетерминалы на символы из правой части
правила. Первые
последнем шаге порождается оставшаяся часть слова Yk. . . Y
k −
1 шагов порождают символы
Y1. . . Y
k−1
, а на
k+m
.
2)⇒3) Алгоритм распознавания слова будет таким же, как и в до-
казательстве теоремы 14. Поскольку для любого правила выполняется
неравенство
|α| 6 |β|
, то на каждом шаге длина блока, содержащего
текущее слово, не увеличивается. Но это и означает, что алгоритм
работает в памяти O(|w|).
3)⇒4) Эта импликация выполняется по лемме о линейном сжатии
для машин Тьюринга.
4)⇒1) Пусть ЛО-автоматM= (Q,Σ
L
. Обозначим через Σ1алфавит Σ без маркеров края, то есть Σ1=
Σ\{#1,
#2}
. Можно считать, что никакая команда не содержит
, P, q0, qf) распознаёт язык
q0в
правой части. Каждому слову ПостаαЛО-автомата мы сопоставим
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
