Dobrze wiadomo, że uzupełnienie jest pozbawione kontekstu. Ale co z dopełnieniem ?
Dobrze wiadomo, że uzupełnienie jest pozbawione kontekstu. Ale co z dopełnieniem ?
Odpowiedzi:
Nadal CFL, jak sądzę, z adaptacją klasycznego dowodu. Oto szkic.
Zastanów się , który jest uzupełnieniem , z usuniętymi słowami o długości nie mod .
Niech . Oczywiście jest CFL, ponieważ możesz odgadnąć pozycję i uznać, że kończy po tym. Pokazujemy, że .
Zatem w jest to pozycja:
lub innymi słowy, pozycja w . To pokazuje, że .
Jeśli , niech będzie pierwszymi znakami , tak że to ; jest resztą . Następnie:
stąd podobnie, .
Oto sposób, w jaki myślę o rozwiązaniu tego problemu za pomocą PDA. Moim zdaniem jest to intuicyjnie wyraźniejsze.
Słowo
Używamy zwykłej sztuczki polegającej na stosowaniu stosu w celu utrzymania liczby całkowitej poprzez posiadanie nowego symbolu spodzie stosu , przechowującego wartość bezwzględnąjako liczba liczników na stosie i sgn ( ) według stanu PDA. W ten sposób możemy zwiększyć lub zmniejszyć wykonując odpowiednią operację.
Celem jest użycie niedeterminizmu do odgadnięcia pozycji dwóch porównywanych symboli i użycie stosu do zarejestrowania , gdzie jest odległością między tymi dwoma symbolami.
Dokonujemy tego w następujący sposób: inkrement dla każdego widocznego symbolu aż do wybrania pierwszego odgadniętego symbolu i zapisz w stanie. Dla każdego kolejnego symbolu wejściowego, dopóki nie zdecydujesz, że zobaczyłeś , zmniejsz o ( dla długości wejściowej i dla odległości). Odgadnij pozycję drugiego symbolu i zapisz, czy . Kontynuuj zwiększanie dla kolejnych symboli wejściowych. Zaakceptuj, jeśli (wykrywalne przez u góry) i .
Zaletą tego jest to, że powinno być całkowicie jasne, jak rozszerzyć to na arbitralne uprawnienia.
Po prostu inna perspektywa („zorientowana na gramatykę”), aby udowodnić, że dopełnieniem jest CF dla dowolnego ustalonego używającego właściwości zamknięcia.
Pierwsza wzmianka, że w dopełnienia zawsze istnieje takie, które . Koncentrujemy się na i zaczynamy od prostej gramatyki CF, która generuje:
Np. Dla mamy ,
Następnie zastosuj zamknięcie w warunkach odwrotnego homomorfizmu i zjednoczenie :
Pierwszy homomorfizm:
Drugi homomorfizm:
wciąż nie zawiera kontekstu
Zastosuj zamknięcie przy cyklicznych przesunięciach do aby uzyskać zestaw ciągów o długości nie w postaci :
.
Na koniec dodaj zwykły zestaw ciągów, których długości nie można podzielić przez , aby uzyskać dokładnie dopełnienie :