Rozważ dowolną bezkontekstową gramatykę nad alfabetem . Do produkcji tej gramatyki dodaj dwie stałe produkcje bezkontekstowe : i \ overline {1} 1 \ rightarrow \ epsilon . Nazwij wynikową gramatykę G ^ P oznaczającą „ G uzupełniony o produkcje P ”.
Czy można podać algorytm, który przyjmuje gramatykę i ciąg ponad i decyduje, czy ?
context-free
decidability
Amit. S.
źródło
źródło
Odpowiedzi:
Ta klasa gramatyk jest nierozstrzygalna. Oto przybliżony pomysł na temat tego, jak używać go do emulacji maszyn Turinga.
W każdym punkcie wyglądałoby obecne częściowo częściowo rozwinięte słowo
Tutaj:
Załóżmy, że głowa znajduje się w stanie , a znak pod głową to . Wtedy głowa jest reprezentowana przez nieterminalny . Jeśli trzeba przejść do stanu , zastąpić obecny znak , i przejść w lewo, istnieją dwa przejścia i . Jeśli zamiast tego trzeba przejść w prawo, istnieją dwa przejścia iS. i ∈ { 0 , 1 } S.ja T. jot S.ja→ 0T.0jot S.ja→ 1T.1jot S.ja→jot¯T.00¯¯¯ S.ja→jot¯T.11¯¯¯ . W pewnym sensie głowa musi „odgadnąć” postać w kierunku, w którym się porusza, tworząc pasującą postać. Jeśli zgadywanie jest błędne, niezmiennik na lub zostałby naruszony i nigdy się nie odzyskał.[ taśma po lewej ] [ taśma po prawej ]
Gdy maszyna zatrzymuje się, głowa powinna „zużyć” taśmę po obu stronach, „zgadując” i wytwarzając pasujące znaki. Następnie powinno wygenerować puste słowo. W rezultacie puste słowo byłoby członkiem takiej gramatyki wtedy i tylko wtedy, gdy odpowiednia maszyna Turinga zatrzyma się.
źródło