Несовпадение класса языков, распознаваемых ДМП автоматами и произвольными МП автоматами — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(добавлено доказательство не-КС языка)
(не показаны 4 промежуточные версии 4 участников)
Строка 1: Строка 1:
 
[[Построение_по_НКА_эквивалентного_ДКА,_алгоритм_Томпсона|В отличие от конечных автоматов]], для [[МП-автоматы,_допуск_по_пустому_стеку_и_по_допускающему_состоянию,_эквивалентность|МП-автоматов]] недетерминизм является существенным. [[Детерминированные_автоматы_с_магазинной_памятью|ДМП-автоматы]] распознают не все языки, распознаваемые МП-автоматами или [[Контекстно-свободные_грамматики,_вывод,_лево-_и_правосторонний_вывод,_дерево_разбора|КС-грамматиками]].
 
[[Построение_по_НКА_эквивалентного_ДКА,_алгоритм_Томпсона|В отличие от конечных автоматов]], для [[МП-автоматы,_допуск_по_пустому_стеку_и_по_допускающему_состоянию,_эквивалентность|МП-автоматов]] недетерминизм является существенным. [[Детерминированные_автоматы_с_магазинной_памятью|ДМП-автоматы]] распознают не все языки, распознаваемые МП-автоматами или [[Контекстно-свободные_грамматики,_вывод,_лево-_и_правосторонний_вывод,_дерево_разбора|КС-грамматиками]].
  
 +
{{Лемма
 +
|statement=Язык <tex>L' = \left\{0^{n}1^{n}2^{n}\right\} \cup \left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}</tex> не является контекстно-свободным.
 +
|proof=Для доказательства леммы воспользуемся [[Лемма о разрастании для КС-грамматик | леммой о накачке для КС-грамматик]]. Для фиксированного <tex>n</tex> рассмотрим слово <tex>\omega=0^n 1^n 2^n</tex>. Пусть <tex>\omega</tex> разбили на <tex>u, v, x, y, z</tex> произвольным образом. Так как <tex>|vxy|\leqslant n</tex>, то в слове не содержится либо ни одного символа <tex>0</tex>, либо ни одного символа <tex>2</tex>. Для любого такого разбиения выбираем <tex>k=2</tex> и получаем, что количество символов <tex>1</tex> изменилось, а количество либо <tex>0</tex>, либо <tex>2</tex> осталось тем же. Очевидно, что такое слово не принадлежит рассмотренному языку. Значит, язык <tex>L'</tex> не является контекстно-свободным по лемме о разрастании для КС-грамматик.
 +
}}
 
{{Теорема
 
{{Теорема
 
|statement=Классы языков, задаваемых МП-автоматами и ДМП-автоматами с допуском по допускающему состоянию не совпадают.
 
|statement=Классы языков, задаваемых МП-автоматами и ДМП-автоматами с допуском по допускающему состоянию не совпадают.
|proof=[[Файл:pda_1.png|320px|thumb|right|Автомат <tex>M</tex>]]
+
|proof=[[Файл:pda_1.png|320px|thumb|right|Автомат <tex>M</tex>]][[Файл:pda_2.png|320px|thumb|right|Автомат <tex>M''</tex>]]
Рассмотрим язык <tex>L=\left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}</tex>.
+
Рассмотрим язык <tex>L=\left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}</tex>. Очевидно, что язык <tex>L</tex> является контекстно-свободным.
Очевидно, что язык <tex>L</tex> является контекстно-свободным. Пусть существует ДМП-автомат с допуском по допускающему состоянию <tex>M</tex>, распознающий его.
+
В силу детерминированности автомата <tex>(s, z_0, 0^n1^{2n})\vdash^*(q_1, \gamma_1, 1^n)\vdash^*(q_2, \gamma_2, \varepsilon)</tex>, причём <tex>q_1, q_2 \in T</tex>. Рассмотрим также язык <tex>L'=\left\{0^n1^n2^n\right\}</tex>.  
+
<br>
 +
Так как множества языков, распознаваемых ДМП-автомат с допуском по допускающему состоянию и ДМП-автомат с допуском по пустому стеку совпадают (см. [[Детерминированные автоматы с магазинной памятью, допуск по пустому стеку | соответствующую теорему]]), будем рассматривать в доказательстве ДМП-автомат с допуском по допускающему состоянию.
 +
 
 +
<br>
 +
Пусть существует ДМП-автомат с допуском по допускающему состоянию <tex>M</tex>, распознающий язык <tex>L</tex>.
 +
В силу детерминированности автомата <tex>(s, z_0, 0^n1^{n})\vdash^*(q_1, \gamma_1, 1^n)\vdash^*(q_2, \gamma_2, \varepsilon)</tex>, причём <tex>q_1, q_2 \in T</tex>.  
 +
<br>
 +
Рассмотрим также язык <tex>L''=\left\{0^n1^n2^n\right\}</tex>.
 +
 
 +
<br>
 +
Построим на основе <tex>M</tex> недетерминированный МП-автомат, распознающий язык
 +
:<tex>L' = \left\{0^{n}1^{n}2^{n}\right\} \cup \left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}</tex>.
 +
# Для начала построим по автомату <tex>M</tex> автомат <tex>M'</tex>, заменив все вхождения символа <tex>1</tex> на символ <tex>2</tex>.
 +
# Далее объединим автоматы <tex>M</tex> и <tex>M'</tex> в автомат <tex>M''</tex>, соединив допускающие состояния <tex>\varepsilon</tex>-переходами (как показано на картинке).
  
Докажем, что язык <tex>L' \cup L = \left\{0^{n}1^{n}2^{n}\right\} \cup \left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}</tex> не является контекстно-свободным. Для фиксированного <tex>n</tex> рассмотрим слово <tex>\omega=0^n 1^n 2^n</tex>. Пусть <tex>\omega</tex> разбили на <tex>u, v, x, y, z</tex> произвольным образом. Так как <tex>|vxy|\leqslant n</tex>, то в слове не содержится либо ни одного символа <tex>0</tex>, либо ни одного символа <tex>2</tex>. Для любого такого разбиения выбираем <tex>k=2</tex> и получаем, что количество символов <tex>1</tex> изменилось, а количество либо <tex>0</tex>, либо <tex>2</tex> осталось тем же. Очевидно, что такое слово не принадлежит рассмотренному языку. Значит, язык <tex>L' \cup L</tex> не является контекстно-свободным по лемме о разрастании для КС-грамматик.
+
<br>
 +
Автомат <tex>M''</tex> является недетерминированным МП-автоматом, и принимает не контекстно-свободный язык <tex>L'</tex>.
  
Построим на основе <tex>M</tex> недетерминированный МП-автомат, распознающий <tex>L' \cup L</tex>. Для начала построим по автомату <tex>M</tex> автомат <tex>M'</tex>, заменив все вхождения символа <tex>1</tex> на символ <tex>2</tex>. Далее объединим автоматы <tex>M</tex> и <tex>M'</tex> в автомат <tex>M''</tex>, соединив допускающие состояния <tex>\varepsilon</tex>-переходами (как показано на картинке).
 
Автомат <tex>M''</tex> является недетерминированным МП-автоматом, и принимает не контекстно-свободный язык <tex>L' \cup L</tex>.
 
 
Полученное противоречие доказывает, что нет ДМП-автомата с допуском по допускающему состоянию, распознающего язык <tex>L</tex>. Но из того, что <tex>L</tex> — контекстно-свободный следует, что есть недетерминированный МП-автомат, распознающий его.
 
Полученное противоречие доказывает, что нет ДМП-автомата с допуском по допускающему состоянию, распознающего язык <tex>L</tex>. Но из того, что <tex>L</tex> — контекстно-свободный следует, что есть недетерминированный МП-автомат, распознающий его.
 
}}
 
}}
[[Файл:pda_2.png|320px|thumb|right|Автомат <tex>M''</tex>]]
+
 
 +
== См. также ==
 +
* [[Автоматы с магазинной памятью]]
 +
* [[МП-автоматы, допуск по пустому стеку и по допускающему состоянию, эквивалентность | Допуск по пустому стеку и по допускающему состоянию]]
 +
* [[Детерминированные автоматы с магазинной памятью]]
 +
 
 +
== Источники информации ==
 +
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — М.:Издательский дом «Вильямс», 2002. — С. 61.— ISBN 5-8459-0261-4
 +
*[https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82_%D1%81_%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C%D1%8E Википедия {{---}} Автомат с магазинной памятью]
 +
 
 +
[[Категория: Теория формальных языков]]
 +
[[Категория: Контекстно-свободные грамматики]]
 +
[[Категория: МП-автоматы]]

Версия 20:50, 14 января 2016

В отличие от конечных автоматов, для МП-автоматов недетерминизм является существенным. ДМП-автоматы распознают не все языки, распознаваемые МП-автоматами или КС-грамматиками.

Лемма:
Язык [math]L' = \left\{0^{n}1^{n}2^{n}\right\} \cup \left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}[/math] не является контекстно-свободным.
Доказательство:
[math]\triangleright[/math]
Для доказательства леммы воспользуемся леммой о накачке для КС-грамматик. Для фиксированного [math]n[/math] рассмотрим слово [math]\omega=0^n 1^n 2^n[/math]. Пусть [math]\omega[/math] разбили на [math]u, v, x, y, z[/math] произвольным образом. Так как [math]|vxy|\leqslant n[/math], то в слове не содержится либо ни одного символа [math]0[/math], либо ни одного символа [math]2[/math]. Для любого такого разбиения выбираем [math]k=2[/math] и получаем, что количество символов [math]1[/math] изменилось, а количество либо [math]0[/math], либо [math]2[/math] осталось тем же. Очевидно, что такое слово не принадлежит рассмотренному языку. Значит, язык [math]L'[/math] не является контекстно-свободным по лемме о разрастании для КС-грамматик.
[math]\triangleleft[/math]
Теорема:
Классы языков, задаваемых МП-автоматами и ДМП-автоматами с допуском по допускающему состоянию не совпадают.
Доказательство:
[math]\triangleright[/math]
Автомат [math]M[/math]
Автомат [math]M''[/math]

Рассмотрим язык [math]L=\left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}[/math]. Очевидно, что язык [math]L[/math] является контекстно-свободным.


Так как множества языков, распознаваемых ДМП-автомат с допуском по допускающему состоянию и ДМП-автомат с допуском по пустому стеку совпадают (см. соответствующую теорему), будем рассматривать в доказательстве ДМП-автомат с допуском по допускающему состоянию.


Пусть существует ДМП-автомат с допуском по допускающему состоянию [math]M[/math], распознающий язык [math]L[/math]. В силу детерминированности автомата [math](s, z_0, 0^n1^{n})\vdash^*(q_1, \gamma_1, 1^n)\vdash^*(q_2, \gamma_2, \varepsilon)[/math], причём [math]q_1, q_2 \in T[/math].
Рассмотрим также язык [math]L''=\left\{0^n1^n2^n\right\}[/math].


Построим на основе [math]M[/math] недетерминированный МП-автомат, распознающий язык

[math]L' = \left\{0^{n}1^{n}2^{n}\right\} \cup \left\{0^n1^n\right\} \cup \left\{0^n1^{2n}\right\}[/math].
  1. Для начала построим по автомату [math]M[/math] автомат [math]M'[/math], заменив все вхождения символа [math]1[/math] на символ [math]2[/math].
  2. Далее объединим автоматы [math]M[/math] и [math]M'[/math] в автомат [math]M''[/math], соединив допускающие состояния [math]\varepsilon[/math]-переходами (как показано на картинке).


Автомат [math]M''[/math] является недетерминированным МП-автоматом, и принимает не контекстно-свободный язык [math]L'[/math].

Полученное противоречие доказывает, что нет ДМП-автомата с допуском по допускающему состоянию, распознающего язык [math]L[/math]. Но из того, что [math]L[/math] — контекстно-свободный следует, что есть недетерминированный МП-автомат, распознающий его.
[math]\triangleleft[/math]

См. также

Источники информации