NTIME (f) podzbiór DSPACE (f)

9

Jak stwierdza pytanie, w jaki sposób udowodnimy, że ?NTIME(f(n))DSPACE(f(n))

Czy ktoś może wskazać mi dowód lub nakreślić go tutaj? Dzięki!

gdiazc
źródło
4
Myślę, że jest ich wiele. stałe chowające się tam. Możesz udowodnić, że . Wystarczy wymienić wszystkie możliwe niedeterministyczne domysły algorytmu i uruchomić algorytm z tymi domysłami. Zaakceptuj, jeśli jedna z domysłów prowadzi do stanu akceptacji. NTIME(f(n))DSPACE(2f(n))
Igor Shinkar,
1
Dlaczego nie uczynić tego odpowiedzią?
Yuval Filmus,
@IgorShinkar Istnieją różne wyniki, takie jak twierdzenie o liniowym przyspieszeniu i twierdzenie o kompresji taśmy, które mówią, że można pozbyć się tych stałych w „większości” okoliczności. liniowe mówi, że dla dowolnego ; kompresja taśmy mówi, że , znowu dla każdego . DTIME(f(n))DTIME(ϵf(n)+n+2)ϵ>0DSPACE(f(n))DSPACE(ϵf(n)+O(1))ϵ>0
David Richerby

Odpowiedzi:

4

Oto rozszerzona wersja komentarza Igora Shinkara. Najprostszym sposobem na symulację niedeterministycznej maszyny działającej w czasie i przestrzeni użycie przestrzeni . Wymieniamy wszystkie możliwe rzuty monetami, symulując oryginalną maszynę na każdym z nich; wymaga to miejsca do przechowywania rzutów monet oraz miejsca do symulacji rzeczywistej maszyny. Istnieje tutaj niewielka trudność: kiedy rzuty monetą są „odczytywane” przez (oryginalną) maszynę, musimy jakoś zaznaczyć, gdzie jesteśmy w sekwencji rzutów monet; możemy użyć dodatkowego bitu na rzut monetą. Prawdopodobnie można to jeszcze bardziej zoptymalizować.f(n)s(n)f(n)s(n)+2f(n)+O(1)f(n)s(n)

Jeśli będziemy ostrożni, możemy być w stanie uzyskać coś jeszcze lepszego, ponieważ w każdym uruchomieniu programu łączna liczba rzutów monetą i całkowita użyta przestrzeń sumują się co najwyżej . Podejrzewam, że można uruchomić symulację w przestrzeni . Być może będziemy musieli do tego założyć coś takiego jak .f(n)(1+o(1))f(n)f(n)=Ω(logn)

Jak wspomina Igor, zwykle klasy ograniczone do zasobów są definiowane tylko „do dużego O”, tak że wynik, który używa spacji , wciąż znajduje się w .O(f(n))DSPACE(f(n))

Yuval Filmus
źródło