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ć?
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 .
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. (gdzie σ ito nowe znaki dodane do alfabetu, np. ).
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ą).
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 ˜ σ ).
Dlatego zredukowaliśmy się do PCP, a ponieważ jest to nierozstrzygalne, skończymy.
(Daj mi znać, jeśli zrobiłem coś z głową!)