Jak udowodnienie, że język bezkontekstowy jest dwuznaczny, nierozstrzygalny?


19

Czytałem gdzieś, że maszyna Turinga nie może tego obliczyć i dlatego jest nierozstrzygalna, ale dlaczego? Dlaczego komputer nie jest w stanie wygenerować parsowania drzewa i podjąć decyzji? Może się mylę i da się to zrobić?


1
Tak, masz rację, maszyna Turinga nie może zdecydować, czy język bezkontekstowy jest dwuznaczny, czy nie, i można to zmniejszyć dzięki problemowi z korespondencją , który jest nierozstrzygalny. Zauważ, że parsowanie może być nieskończenie duże i nie możemy zdecydować, kiedy zatrzymamy obliczenia.
— Hsien-Chih Chang 張顯 之

Hsien-Chih, czy odnosisz się do „drzew parsujących” dla słów nie w języku (tj. Nieudanych parsów), czy też próbujesz powiedzieć, że drzewa parsowania mogą stać się dowolnie duże?
— Raphael

Odpowiedzi:


22

Zmniejszamy problem korespondencji z postem . Załóżmy, że może w istocie zdecydować język .{⟨G⟩|G a CFG and L(G) ambiguous}

Biorąc pod uwagę : Skonstruuj następujące CFG G = ( V , Σ , R , S ) : V = { S , S 1 , S 2 } , R = { S → S 1 | S 2 , S 1 → α 1 S.α1,…,αm,β1,…,βmG=(V,Σ,R,S)V={S,S1,S2} (gdzie σ iR={S→S1|S2,S1→α1S1σ1|⋯|αmS1σm|α1σ1|⋯|αmσm,S2→β1S2σ1|⋯|βmS2σm|β1σ1|⋯|βmσm}σito nowe znaki dodane do alfabetu, np. ).σi=i_

Jeśli język jest niejednoznaczny, wówczas istnieje pochodna jakiegoś łańcucha na dwa różne sposoby. Załóżmy, wlog, że oba wyprowadzenia zaczynają się od reguły S → S 1 , czytanie nowych znaków wstecz aż do ich końca upewnia się, że może być tylko jedno wyprowadzenie, więc nie jest to możliwe. Dlatego widzimy, że jedyna dwuznaczność może wynikać z jednego „początku” S 1 i jednego S 2 . Ale potem, biorąc pod ciąg w do początku nowych znaków, mamy rozwiązanie dla PCP (ponieważ ciągi indeksów używane po tych punktach pasują).wS→S1S1S2w

Podobnie, jeśli nie ma dwuznaczności, wówczas PCP nie można rozwiązać, ponieważ rozwiązanie oznaczałoby dwuznaczność, która następuje po i S ⇒ S 2 ⇒ ∗ β ˜ σ , gdzie α = β są ciągi pasujące do α i β (od momentu dopasowania ˜ σ ).S⇒S1⇒∗ασ~S⇒S2⇒∗βσ~α=βαβσ~

Dlatego zredukowaliśmy się do PCP, a ponieważ jest to nierozstrzygalne, skończymy.

(Daj mi znać, jeśli zrobiłem coś z głową!)


1
Try \textrm, like this: {⟨sol⟩∣sol CFG i L.(sol) dwuznaczny}
— Hsien-Chih Chang 張顯 之
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.