Czy można zdecydować, czy dany algorytm jest asymptotycznie optymalny?

11

Czy istnieje algorytm dla następującego problemu:

Biorąc pod uwagę maszynę Turinga która decyduje o języku L , czy istnieje maszyna Turinga M 2 decydująca L, tak że t 2 ( n ) = o ( t 1 ( n ) ) ?M1L
M2Lt2(n)=o(t1(n))

Funkcje i t 2 są najgorszym przypadku prowadzenia razy maszyn Turinga M 1 i M 2 , odpowiednio.t1t2M1M2

Co ze złożonością przestrzeni?

StaticBug
źródło
1
Odpowiedź zdecydowanie nie jest. Określenie najgorszego czasu działania TM jest znane z nierozstrzygalności.
chazisop

Odpowiedzi:

9

Oto prosty argument pokazujący, że są nierozstrzygalne, tzn. Nie ma algorytmów sprawdzających, czy dany algorytm jest optymalny pod względem czasu działania lub zużycia pamięci.

Zmniejszamy problem zatrzymania na czystej taśmie do twojego problemu dotyczącego optymalności czasu działania.

Niech będzie daną maszyną Turinga. Niech N będzie następującą maszyną Turinga:M

: na wejściu n 1. Uruchom M na czystej taśmie dla (co najwyżej) n kroków. 2. Jeśli M nie zatrzymuje się n krokami, uruchom pętlę o rozmiarze 2 n , a następnie zwróć NO. 3. W przeciwnym razie zwróć TAK.Nn
Mn
Mn2n

Istnieją dwa przypadki:

  1. Jeśli nie zatrzyma się na czystej taśmie, maszyna N będzie działać przez Θ ( 2 n ) kroków na wejściu n . Zatem jego czas działania wynosi Θ ( 2 n ) . W tym przypadku N nie jest oczywiście optymalne.MNΘ(2n)nΘ(2n)N

  2. Jeśli zatrzymuje się na pustej taśmie, wówczas maszyna N będzie działać przez stałą liczbę kroków dla wszystkich wystarczająco dużych n , więc czas działania wynosi O ( 1 ) . W tym przypadku N jest oczywiście optymalne.MNnO(1)N

W skrócie:

M halts on blank tape N is optimial 

MNNM

Podobny argument można zastosować do przestrzeni, tzn. Nierozstrzygalne jest sprawdzenie, czy dana maszyna Turinga jest optymalna pod względem zajmowanej przestrzeni.

Nawet silniejsze stwierdzenie jest prawdziwe: nie możemy zdecydować, czy dana funkcja obliczeniowa jest górną granicą złożoności czasowej obliczania danej funkcji obliczeniowej. Podobnie w przypadku przestrzeni kosmicznej. Tj. Nawet podstawowa teoria złożoności nie może być zautomatyzowana przez algorytmy (co można uznać za dobrą wiadomość dla teoretyków złożoności;).

Kaveh
źródło
M1
nnYESNn0nn0M
Ach, pytanie się zmieniło, odkąd go ostatnio przeczytałem. Nieważne.
Raphael
@ PålGD, myślę, że OP wykorzystało to jako przykład (na podstawie pierwotnego pytania opublikowanego w cstheory). Możesz sprawdzić komentarze pod tym pytaniem.
Kaveh
2

Jak wspomnieli inni, odpowiedź brzmi „nie”.

Ale jest interesujący artykuł napisany przez BlumaNiezależna od maszyny teoria złożoności funkcji rekurencyjnych ”. Pokazał, że istnieją pewne funkcje z tą właściwością, bez względu na to, jak szybki może być program do obliczania tych funkcji, istnieje inny program do ich obliczania znacznie szybciej .

bardzo ładna nieruchomość!

Reza
źródło
-3

Ha! Gdyby odpowiedź brzmiała tak, żylibyśmy w innym świecie.

A0ALA0A

Niestety nie jest to możliwe i rzeczywiście osobiście uważam, że udowodnienie (nietrywialne) optymalności jest najciekawszym (i trudnym) problemem w informatyce. O ile mi wiadomo - chętnie bym poprawił - nie ma żadnego wyniku optymalizacyjnego dla jakiegokolwiek problemu wielomianowego (z wyjątkiem trywialnych wyników optymalizacyjnych przebiegu algorytmów zajmujących czas proporcjonalny do wielkości wejściowej).

t do t
źródło
1
Ω(N)
1
Ω(nlogn)
@vonbrand - to miałem na myśli przez algorytmy proporcjonalne do wielkości wejściowej.
t do
1
@ttothet Ok, obawiam się, że to będzie bezowocne, ale spróbuję ponownie. 1) Nie, wcale nie. Jeśli zapisujesz tylko jeden krok na każdym wejściu, masz lepszy algorytm niż wcześniej, nawet jeśli ma ten sam asymptotyczny czas działania. 2) Nie, nie ma. Może to również oznaczać „nie wiem, ale jeśli tak, to X”. Nie jest to rzadkie (por. P? = NP). 3) Użytkownik twierdził istniały żadne nietrywialne dolne granice (na asymptotyka, zakładam) w ogóle . To jest złe. Proszę odrobić pracę domową.
Raphael
1
@ MartinJonáš Mam na myśli 2-taśmową maszynę Turinga. Kaveh ma rację, dowód na to, że twierdzenie o hierarchii czasowej daje rozwiązania problemów z czasem polime o arbitralnie wysokiej złożoności, ale przykłady nie są do końca naturalne i nie wydają się bardzo wyraźne. Ponadto nie znana jest hierarchia czasu probabilistycznego, więc naprawdę nie mamy nic.
Sasho Nikolov