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 ) ) ?
Funkcje i t 2 są najgorszym przypadku prowadzenia razy maszyn Turinga M 1 i M 2 , odpowiednio.
Co ze złożonością przestrzeni?
Odpowiedzi:
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.N n
M n
M n 2n
Istnieją dwa przypadki:
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.M N Θ(2n) n Θ(2n) N
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.M N n O(1) N
W skrócie:
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;).
źródło
Jak wspomnieli inni, odpowiedź brzmi „nie”.
Ale jest interesujący artykuł napisany przez Bluma „ Niezależ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ść!
źródło
Ha! Gdyby odpowiedź brzmiała tak, żylibyśmy w innym świecie.
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).
źródło