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ć?
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ć?
Odpowiedzi:
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,…,βm G=(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} σi to 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ą).w S→S1 S1 S2 w
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ą!)
źródło