To jest kolejne pytanie tego .
W poprzednim pytaniu dotyczącym egzotycznych automatów stanowych Alex ten Brink i Raphael odnieśli się do możliwości obliczeniowych szczególnego rodzaju automatu stanowego: automatów typu min-heap. Udało im się wykazać, że zestaw języków akceptowanych przez takie maszyny ( ) nie jest ani podzbiorem, ani nadzbiorem zestawu języków bezkontekstowych. Biorąc pod uwagę skuteczne rozstrzygnięcie i pozorne zainteresowanie tym pytaniem, przystępuję do zadawania kolejnych pytań.
Wiadomo, że zwykłe języki są zamknięte w ramach różnych operacji (możemy ograniczyć się do podstawowych operacji, takich jak zjednoczenie, przecięcie, uzupełnienie, różnica, konkatenacja, gwiazda Kleene i odwrócenie), podczas gdy języki bezkontekstowe mają inne zamknięcie właściwości (są zamknięte w związku zjednoczenia, konkatenacji, gwiazdy Kleene i odwrócenia).
Czy HAL jest zamknięty w trakcie cofania?
źródło
Odpowiedzi:
Rozważmy język (gdzie # 0 ( x ) oznacza liczbę zer w x ).
Łatwo jest zdecydować za pomocą maszyny HAL - zauważ, że maszyna musi śledzić dwie właściwości: liczbę zer w x vs y i długość x , y (vs z ). Może wcisnąć a do stosu za każde zero, które widzi w x (a następnie wyskoczyć za dowolne zero widoczne w y ); dodatkowo wypycha dla dowolnego bitu w x , y (i później wyskakuje dla dowolnego bitu z ). Ponieważ wszystkie s są zrzucane na stos, nie przeszkadzają w liczeniu. ⊥L×2 x y x,y z x y x,y z ⊥ służy jako separator i można go praktycznie zignorować.
0
0
1
1
1
0
Teraz niech będzie językiem odwrotnym. To znaczy, L = { z ⊥ y ⊥ x ∣ x , y , z ∈ { 0 , 1 } , # 0 ( x ) = # 0 ( y ) i | x | + | y | = Oo } Pokażemy, że żadna maszyna HAL może zdecydować L .L=LR×2
Intuicja jest następująca. Jak wyżej, maszyna musi śledzić zarówno długość i liczbę zer w x , y . Jednak w tym przypadku należy je śledzić jednocześnie . Nie można tego zrobić za pomocą stosu. Bardziej szczegółowo, po odczytaniu z , sterta zawiera informacje o długości | x | + | y | . podczas odczytywania y maszyna musi także przechowywać w stercie liczbę zer w y . Jednak te informacje nie mogą zakłócać informacji, które sterty już mają na oczekiwanej długości xz x,y z |x|+|y| y y x być. Bardzo intuicyjnie albo informacja o liczbie zer będzie „poniżej” informacji o długości , a następnie nie będziemy mogli uzyskać do niej dostępu podczas czytania x , lub będzie „powyżej” tej informacji, co spowoduje , że ta ostatnia będzie niedostępna, lub dwie informacje zostaną „zmieszane” i staną się bez znaczenia.x x
Mówiąc bardziej formalnie, użyjemy pewnego rodzaju argumentu „pompowania”. Oznacza to, że weźmiemy bardzo długi sygnał wejściowy i pokażemy, że „stan” maszyny musi się powtórzyć podczas przetwarzania tego wejścia, co pozwoli nam „zastąpić” dane wejściowe, gdy maszyna powtórzy swój „stan”.
Dla formalnego dowodu wymagamy uproszczenia struktury maszyny HAL, a mianowicie, że nie zawiera ona „pętli” przejść 1 . Przy takim założeniu widzimy, że dla każdego symbolu wejściowego przetwarzanego przez maszynę zawartość stosu może wzrosnąć / zmniejszyć o najwyżej c (dla niektórych wystarczająco dużych stałych c ).ε 1 c c
Dowód.H L 4n |x|=|y|=n |z|=2n ⊥ z,y #0(y)=n/2 różnexjest taki, żez⊥Y⊥x∈L.(nn/2) x z⊥y⊥x∈L
Załóżmy, że decyduje L , i rozważ wystarczająco długi sygnał wejściowy (powiedzmy, o długości 4 n , a więc | x | = | y | = n , | z | = 2 n , ignorując poniższe znaki ). Aby być konkretnym, popraw z , y i załóż, że # 0 ( y ) = n / 2 . Zauważ, że są ( n
Rozważmy zawartość hałdy natychmiast po przetworzeniu . Zawiera on co najwyżej 3 n c symboli (gdzie każdy symbol jest od stałej alfabetu y ) przez założeniem. Są jednak ( nz⊥y 3nc Γ różnex's, które powinny zostać zaakceptowana (która jest znacznie większa niż ilość różnych możliwych zawartości na stosie, ponieważ zwiększa się wykładniczo, podczas gdy inna ilość hałd wzrasta wielomianowo patrz poniżej). Weź dwa dane wejściowex1,x2,które powinny zostać zaakceptowane, aby:(nn/2) x′s x1,x2
Oczywiste jest, że maszyna musi zaakceptować słowo , gdzie x p 1 jest prefiksem x długości n / 2, a x s 2 jest sufiksem x 2 o tej samej długości. Należy zauważyć, że liczba zer iN x p 1 x s 2 różni się od liczby jedynek w x 1 oraz x 2 (to znaczy, z # 0 ( rz⊥y⊥xp1xs2 xp1 x n/2 xs2 x2 xp1xs2 x1 x2 ), ze względu na sposób, w jaki wybraliśmy x 1 i x 2 , doszliśmy do sprzeczności.#0(y) x1 x2
Czy to założenie szkodzi ogólności? Nie sądzę, ale to rzeczywiście wymaga dowodu. Jeśli ktoś wie, jak obejść to dodatkowe założenie, chciałbym wiedzieć. 2 Naprawmy x 1, aby był prefiksem (o długości n / 2 miał dokładnie n / 4 zer). Przypomnijmy, że używającprzybliżenia Stirlingaznamy ten log ( n1
2 x1 n/2 n/4 gdzieH()jestfunkcją binarną entropii. PonieważH(1/4)≈0,81mamy ( Nlog(nk)≈nH(k/n) H() H(1/4)≈0.81 dla wystarczająco dużegon. (nn/4)>20.8n n 3Zakładając alfabetΓ, są| Γ| nróżnych łańcuchów o długościn, więc jeśli był to stos, to byliśmy przykręceni. Jednak wypychanie „01” na stercie jest równoważne z wypychaniem „10” - na stercie przechowywana jest tylko posortowana wersja zawartości. Liczba różnychposortowanychciągów o rozmiarzenwynosi (n+1
3 Γ |Γ|n n n , dla stałej| Γ| .(n+1|Γ|−1)≈n|Γ| |Γ|
źródło