Неразрешимость задачи об эквивалентности КС-грамматик — различия между версиями
Warrior (обсуждение | вклад) |
Warrior (обсуждение | вклад) м |
||
Строка 8: | Строка 8: | ||
*<tex> \Sigma = \{a_1, a_2, ..., a_n\} \cup \{1, 2, ..., n\} </tex>; | *<tex> \Sigma = \{a_1, a_2, ..., a_n\} \cup \{1, 2, ..., n\} </tex>; | ||
*<tex> \Gamma = \Sigma \cup z_0 </tex>; | *<tex> \Gamma = \Sigma \cup z_0 </tex>; | ||
− | *<tex> Q = \{ S_0, S_1, S_2\} </tex>, где <tex> S_0 </tex> {{---}} стартовое состояние, а <tex> | + | *<tex> Q = \{ S_0, S_1, S_2\} </tex>, где <tex> S_0 </tex> {{---}} стартовое состояние, а <tex> S_2 </tex> {{---}} допускающее. |
Переходы определим следующим образом: | Переходы определим следующим образом: | ||
*<tex> \delta(S_0, a_i, \alpha) = \langle S_0, a_i \alpha \rangle, i \in \{1, 2, ..., n \}</tex>; | *<tex> \delta(S_0, a_i, \alpha) = \langle S_0, a_i \alpha \rangle, i \in \{1, 2, ..., n \}</tex>; | ||
− | *<tex>\delta(S_0, i, a_i) = \langle | + | *<tex>\delta(S_0, i, a_i) = \langle S_1, \varepsilon \rangle, i \in \{1, 2, ..., n \}</tex>; |
− | *<tex> \delta(S_0, c, \alpha) = \langle | + | *<tex> \delta(S_0, c, \alpha) = \langle S_2, \alpha \rangle </tex>, для всех других <tex> c </tex> и <tex> \alpha </tex>, не подходящих под первые два правила; |
− | *<tex> \delta(S_1 | + | *<tex> \delta(S_1, i, a_i) = \langle S_1, \varepsilon \rangle, i \in \{1, 2, ..., n\}</tex>; |
− | + | *<tex> \delta(S_1, c, \alpha) = \langle S_2, \alpha \rangle </tex>, для всех <tex> c </tex> и <tex> \alpha </tex>, кроме случая, когда <tex> c = i </tex> и <tex> \alpha = a_i </tex>; | |
− | *<tex> \delta( | + | *<tex> \delta(S_2, c, \alpha) = \langle S_2, \alpha \rangle </tex>, для любых <tex> c </tex> и <tex> \alpha </tex>. |
− | Несложно увидеть, что любое слово, принадлежащее <tex> {List(a_1, a_2, ..., a_n)} </tex>, оставит данный автомат в состоянии <tex> | + | Несложно увидеть, что любое слово, принадлежащее <tex> {List(a_1, a_2, ..., a_n)} </tex>, оставит данный автомат в состоянии <tex> S_1 </tex>, в противном случае переведет его в допускающее состояние <tex> S_2 </tex>. |
}} | }} | ||
Версия 16:25, 3 января 2014
Лемма: |
Пусть контекстно-свободный. для набора слов — язык над алфавитом (для простоты будем считать, что ), каждое слово которого имеет вид , где . Тогда — |
Доказательство: |
Для доказательства построим МП-автомат с допуском по допускающему состоянию:
Переходы определим следующим образом:
|
Теорема: |
Задача об эквивалентности двух КС-грамматик неразрешима |
Доказательство: |
Будем доказывать от противного. Предположим, что данная задача разрешима. Тогда покажем, как с помощью нее разрешить язык ПСП. Пусть и входные последовательности для ПСП. Пусть . Тогда решение ПСП для последовательностей и существует только в том случае, когда . Перейдя к дополнению и применив закон де Моргана, мы получим, что решения для заданных последовательностей существует, только когда , где — алфавит для языков и . Но по лемме и — контекстно-свободные. Так как КС-языки замкнуты относительно объединения, то язык тоже контекстно-свободный. Построив КС-грамматики для языков и и воспользовавшись предположением, что задача об эквивалентности КС-грамматик разрешима, мы разрешим и язык ПСП. Но язык ПСП неразрешим. Следовательно, мы пришли к противоречию, и наше предположение неверно. |