Упражнение 2.1.25 |
Детерминированные контекстно-свободные языки
К сожалению, теорема о детерминизации не переносится с конечных автоматов на автоматы с магазинной памятью. Возникает важный для практических приложений класс языков, распознаваемых детерминированными автоматами с магазинной памятью (то есть такими автоматами с магазинной памятью, которые ни в какой конфигурации не могут выбирать между несколькими очередными тактами). Точные определения этого класса автоматов и соответствующего класса языков даны в разделе 12.1. Чтобы получить полезный и естественный с точки зрения практики класс, нужно добавить в конец каждого слова специальный символ, называемый маркером конца слова. Языки из выделенного таким образом класса называются детерминированными контекстно-свободными языками. Во втором разделе лекции формулируется ряд свойств этого класса языков. Важность детерминированных контекстно-свободных языков для теоретической информатики обусловлена тем, что для каждого такого языка можно указать быстрый алгоритм, распознающий принадлежность слова этому языку.
12.1. Детерминированные автоматы с магазинной памятью
Определение 12.1.1.
Будем говорить, что
два перехода МП-автомата
и
являются совместными,
если
- p1 = p2 ;
-
или
;
-
или
.
Определение 12.1.2. МП-автомат называется детерминированным (deterministic), если он имеет ровно одно начальное состояние и все переходы этого автомата попарно несовместны.
Пример 12.1.3.
МП-автомат M из примера 10.2.8
не является детерминированным, так как переходы
и
совместны.
Определение 12.1.4.
Язык L
над алфавитом
называется детерминированным контекстно-свободным языком,
если существует детерминированный МП-автомат, распознающий язык
над алфавитом
,
где
-
дополнительный символ, не принадлежащий множеству
.
Символ
называется маркером конца строки.
Пример 12.1.5.
Рассмотрим алфавит .
Язык
-
детерминированный контекстно-свободный язык,
так как язык
порождается детерминированным МП-автоматом
(хотя язык L
не порождается никаким детерминированным МП-автоматом).
Пример 12.1.6.
Язык L,
распознаваемый МП-автоматом M
из примера 10.2.8,
является детерминированным контекстно-свободным языком,
так как язык
порождается
детерминированным МП-автоматом


![\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix @=11mm{
%
& *=[o][F-]{3}
\rloop{0,1} ^{ab,\varepsilon:E}
\ar "2,2" <1.0mm> ^{b,\varepsilon:\varepsilon}
&
\\
*=[o][F-]{1}
\ar @`{+/l16mm/} [] ^{}
\rloop{0,1} ^{ab,\varepsilon:E}
\rloop{0,-1} ^{aa,E:\varepsilon}
\ar "2,2" ^{b,\varepsilon:\varepsilon}
& *=[o][F-]{2}
\rloop{0,-1} ^{b,E:\varepsilon}
\ar "1,2" <1.0mm> ^{a,\varepsilon:\varepsilon}
\ar "2,3" ^{\boldsymbol{\$},\varepsilon:\varepsilon}
& *=[o][F=]{4}
}](/sites/default/files/tex_cache/efbdc2460486c1bcaacf44a476fe5297.png)
Упражнение 12.1.7. Является ли детерминированным
контекстно-свободный язык ?