Czy istnieją niekonstruktywne dowody na istnienie „małych” maszyn Turinga / NFA?


11

Po przeczytaniu powiązanego pytania dotyczącego niekonstruktywnych dowodów istnienia algorytmów, zastanawiałem się, czy istnieją metody pokazania istnienia „małych” (powiedzmy, stanowych) maszyn obliczeniowych bez ich budowania.

Formalnie:

załóżmy, że otrzymaliśmy język i naprawiliśmy jakiś model obliczeniowy (NFA / maszyna Turinga itp.).LΣ

Czy istnieją jakieś niekonstruktywne wyniki istnienia pokazujące, że stanowa maszyna dla istnieje, ale bez możliwości jej znalezienia (w czasie )?L p o l y ( n , | Σ | )nLpoly(n,|Σ|)

Na przykład, czy jest jakiś zwykły język dla którego możemy pokazać ale nie wiemy, jak zbudować automat stanowy?n s c ( L ) n nLnsc(L)nn

( jest niedeterministyczną złożonością stanu , tj. liczbą stanów w minimalnym NFA, które akceptuje ).L Lnsc(L)LL


EDYCJA: po dyskusji z Marzio (dzięki!) Myślę, że lepiej sformułować pytanie w następujący sposób:

Czy istnieje język i model obliczeniowy, dla którego obowiązuje:L

  1. Wiemy, jak zbudować maszynę obliczającą która ma stanów.mLm

  2. Mamy dowód, że stanowa maszyna dla istnieje (gdzie ), ale albo w ogóle jej nie możemy znaleźć, albo jej obliczenie zajęłoby wykładniczo czas.l n < < mnLn<<m


co to jest nsc (L)? pytanie wydaje się dotyczyć kompresji / złożoności Kołmogorowa, która wymaga znalezienia małych (est) maszyn do reprezentowania ciągów ...
wer 16'14

nsc (L) to niedeterministyczna złożoność stanu L (liczba stanów w najmniejszym NFA, który akceptuje L).
RB

inny pomysł / kąt, może istnieją jakieś „małe” klasy obwodów (inny model obliczeniowy), dla których udowodniono, że potrafią obliczyć pewne funkcje, ale faktyczna konstrukcja jest trudna? SJ niedawno wspomniał Barrington, że programy rozgałęziające o szerokości 5 mogą obliczyć większość ...?
dniu

@vzn Dowód twierdzenia Barringtona daje łatwą procedurę konwersji formuł na programy rozgałęziające.
Sasho Nikolov

1
@RB: ok, można znaleźć bardziej interesujące przykłady złożoności Kołmogorowa związanej z zasobami (w szczególności złożoności związanej z czasem). Na przykład, biorąc pod uwagę ciąg , jaka jest najmniejsza maszyna działająca w czasie która wypisuje ? W tym przypadku możemy łatwo zbudować bazę TM, która drukuje , ale znalezienie najmniejszej wymaga skanowania wszystkich baz(czas sprawia, że ​​jest obliczalny). Kiedy będę miał więcej czasu, rozwinę moją odpowiedź. O ( 2 n ) x x | M | < | x |xO(2n)xx|M|<|x|
Marzio De Biasi

Odpowiedzi:


8

Tylko rozszerzony komentarz z trywialnym przykładem; możesz wybrać język jednoelementowy:

Lk={Mσ(M)=Σ(k)}

tzn. zawiera pierwszą (w porządku leksykograficznym) zajętą maszynę bobra Turinga o rozmiarze (maszyna Turinga o wielkości która po zatrzymaniu osiąga największą liczbę 1 na swojej taśmie). k kLkkk

Dla każdego język jest regularny ... ale nie mamy pojęcia, jak zbudować mały DFA, który go rozpoznaje (chociaż ma tylko ) :-)L k2 k ( log k + 2 )kLk2k(logk+2)


Chociaż zgadzam się, że to działa, szukałem istnienia pokazującego techniki dla wyraźnie określonego języka L.
RB

3
Co to jest „jawnie podany język”?
Jeffε

3

Język (dla pewnej liczby pierwszej ) może zostać rozpoznany przez automatyczny kwantowy automat skończony o stanie QFA), ale dowód nie jest konstruktywny.p O ( log p )MODp={aipi0}pO(logp)

Najbardziej znaną konstrukcyjnie uzyskaną liczbą stanów jest dla QFA z błędem ograniczonym rozpoznającym .M O D pO(log2+o(1)p)MODp

ODNIESIENIE : sekcja 4.2 (Ambainis i Yakaryilmaz, 2015) .


2

Innym rozwiązaniem jest użycie lematu Higmana :

Język zamknięty pod słowami jest regularny.

Z pod słowem jeśli możemy uzyskać poprzez usunięcie jakiejś litery w .v u vuvuv

Weźmy więc dowolny język L, jego zamknięcie pod słowem jest regularne, ale w ogóle nie jest możliwe do zbudowania, ponieważ L jest arbitralne.

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.