Potwierdzenie zamknięcia w zamian języków akceptowanych przez automaty min-heap


16

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ń.HAL

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?


Jakie są zastosowania takich maszyn? Czy jest to ćwiczenie akademickie?
Dave Clarke

@DaveClark Cóż, są to w większości ćwiczenia akademickie (o ile wiem, właśnie wymyśliłem je w powiązanym pytaniu). Mogą jednak wykonywać obliczenia w taki sam sposób, jak inne maszyny (DFA, TM itp.), Więc może być dla nich przydatne.
Patrick87

To pytanie ilustruje, dlaczego chcesz, aby gramaty towarzyszyły twoim automatom. Arr, mój mózg!
Raphael

4
Próbowałem to udowodnić, używając języka w formacie , ale zajęło mi to zbyt wiele czasu i poddałem się. Może ten pomysł pomoże każdemu. {xyy is a lexicographically sorted copy of x}
Ran G.

@RanG .: Myślę, że to powinno działać. Z przyjemnością przyznam nagrodę za odpowiedź, która dowodzi, że język jest w i daje uzasadnione uzasadnienie, że odwrócenie nie jest. HAL
Raphael

Odpowiedzi:


4

Rozważmy język (gdzie # 0 ( x ) oznacza liczbę zer w x ).

L×2={xyzx,y,z{0,1},#0(x)=#0(y) and |x|+|y|=z}
#0(x)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×2xyx,yz0x0y1x,y1z10 służy jako separator i można go praktycznie zignorować.

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=L×2R

L={zyxx,y,z{0,1},#0(x)=#0(y) and |x|+|y|=z}
L

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 xzx,yz|x|+|y|yyxbyć. 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.xx

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 ).ε1cc

Dowód.
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ą ( nHL4n|x|=|y|=n|z|=2nz,y#0(y)=n/2różnexjest taki, żezYxL.(nn/2)xzyxL

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 ( nzy3ncΓ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)xsx1,x2

  1. Przedrostek długość o X 1 ma inną liczbę zer niż prefiksu x 2 w tej samej długości.n/2x1x2
  2. Do czasu odczytania przez maszynę prefiksu o długości części x , sterty wyglądają tak samo dla obu x 1 i x 2 , a także maszyna jest w tym samym stanie (musi się to zdarzyć dla niektórych x 1 , x 2 , dla wystarczająco dużego n , ponieważ istnieje więcej niż 2 0,8 n różnych opcji 2 dla x 1 , x 2 i co najwyżej ( 3,5 c n ) | Γ | | Qn/2xx1x2x1,x2n20.8n2x1,x2różne opcje zawartości i stanu sterty 3 ).(3.5cn)|Γ||Q|3

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 ( rzyx1px2sx1pxn/2x2sx2x1px2sx1x2 ), ze względu na sposób, w jaki wybraliśmy x 1 i x 2 , doszliśmy do sprzeczności.#0(y)x1x2

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 x1n/2n/4gdzieH()jestfunkcją binarną entropii. PonieważH(1/4)0,81mamy ( Nlog(nk)nH(k/n)H()H(1/4)0.81dla wystarczająco dużegon. (nn/4)>20.8nn3Zakł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 Γ|Γ|nnn, dla stałej| Γ| .(n+1|Γ|1)n|Γ||Γ|


Ładny! Będę musiał przeczytać część formalną ponownie później. 1) Reklama ¹: patrz także tutaj . 2) Argument załamuje się, jeśli pozwalamy na niedeterministyczny wybór zwróconego symbolu sterty (spośród wszystkich symboli o tym samym priorytecie).
Raphael
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.