Skuteczne uniwersalne narzędzie do rozwiązywania problemów?


12

Zdefiniuj „problem” jako algorytm akceptujący liczbę naturalną i zwracający 0 lub 1, która zwraca na co najmniej jednym . Każde takie nazywane jest „rozwiązaniem”A1nNnA

Zdefiniuj „uniwersalne narzędzie do rozwiązywania problemów” jako algorytm przyjmujący problem i zwracający jedno z jego rozwiązań. Na przykład może działać, zapętlając wszystkie liczby naturalne i uruchamiając na nich swoje dane wejściowe, aż do uzyskania wyników (musi zatrzymać się tylko na poprawnych danych wejściowych)UU1

Jestem zainteresowany badaniem granic wydajności w uniwersalnych rozwiązaniach problemów

Biorąc pod uwagę, że jest uniwersalnym rozwiązaniem problemu, a problemem, oznacz czas, jaki zajmuje wytworzenie wyniku po zaakceptowaniu wejściaUAt(U,A)UA

Uniwersalne narzędzie do rozwiązywania problemów jest nazywane „wydajnym”, gdy mamy do czynienia z dowolnym uniwersalnym narzędziem do rozwiązywania problemówUV

t(U,A)<t(V,A)+tV

Tutaj zależy od ale nie zależy odtVVA

Czy istnieją skuteczne uniwersalne narzędzia do rozwiązywania problemów?

EDYCJA: Zdałem sobie sprawę, że można zmienić definicje „problemu” i „uniwersalnego rozwiązania problemu” na coś nieco bardziej eleganckiego i zasadniczo równoważnego. „Problem” to algorytm bez danych wejściowych zwracający 0 lub 1 (który zatrzymuje się). „Uniwersalny program rozwiązywania problemów” to algorytm przyjmujący problem i zwracający jego wynik. To mniej więcej uniwersalna maszyna Turinga

Starą definicję można sprowadzić do nowej definicji, ponieważ biorąc pod uwagę problem w starym znaczeniu, możemy skonstruować problem w nowym znaczeniu, który po prostu stosuje trywialny uniwersalny rozwiązywanie problemów starego do (solver opisany w powyższym tekście )ABA

Nową definicję można sprowadzić do starej definicji, ponieważ biorąc pod uwagę problem w nowym znaczeniu, możemy skonstruować problem w starym znaczeniu, który po prostu oblicza i porównuje dane wejściowe z wynikiemBAB

Trywialnym przykładem uniwersalnego narzędzia rozwiązywania problemów w nowym sensie jest algorytm, który po prostu uruchamia dane wejściowe

Odpowiedzi:


5

Nie ma skutecznego uniwersalnego rozwiązania problemu. Intuicyjnie, U powinien mieć (prawie) optymalny czas działania dla każdego rozstrzygającego problemu decyzyjnego; podczas gdy twierdzenie o przyspieszeniu mówi, że istnieją rozstrzygalne problemy decyzyjne, które nie mają optymalnego algorytmu (nawet w bardzo łagodnym sensie). Aby sformalizować to:

Twierdzenie o przyspieszeniu czasu (patrz na przykład [1])): Dla każdej obliczalnej (i ) funkcji istnieje zbiór rozstrzygalny taki, że jeśli to dla spełniające .gSSDTIME(t)SDTIME(t)tg(t(n))<t(n)

Poniżej pracujemy z drugą definicją. Niech będzie uniwersalnym rozwiązaniem problemu. Niech i jest algorytmem, który decyduje . Niech będzie TM bez wejścia st . Istnieje TM z około logarytmicznym przeciążeniem w czasie wykonywania (kodowanie i różni się tylko ). Przy tym przyspieszeniu istnieje TM która decyduje o i . Mamy więc .Ug(n)=22nASAiAi=A(i)U~(i)=U(Ai)AAiO(logi)BS22TIME(B)<TIME(U~)2TIME(B)<TIME({U(Ai)})

Niech będzie uniwersalnym rozwiązaniem problemu, takim jak dla wejścia , symuluje on z logarytmicznym przeciążeniem w czasie. (Oczywiście funkcje wykonawcze zarówno i są nieograniczone) Tak więc mamyVAiB(i)A(i)B(i)

cAit(U,Ai)>t(V,Ai)+c

Więc nie może być wydajny.U

[1] Oded Goldreich, Złożoność obliczeniowa, Perspektywa konceptualna, twierdzenie 4.8. Istotny jest również rozdział 4.2.1.2.


Świetne rozwiązanie, dzięki!
Vanessa,

12

Uniwersalny algorytm Levina to taki algorytm, że . Zmieniając algorytm (patrz na przykład najszybszy i najkrótszy algorytm Huttera dla wszystkich dobrze zdefiniowanych problemów ), możesz uczynić uniwersalną stałą, choć zdecydowanie nie jak potrzebujesz. W przypadku prac pokrewnych zapoznaj się z pracą Hirscha, Itsyksona i ich uczniów, na przykład ten raport techniczny .t(U,A)<sVt(V,A)+tVsV1

Edycja: Jak komentuje Squark, czas działania algorytmu Levina zależy również od czasu działania , ponieważ musi on zweryfikować swoje odpowiedzi. Aby uzyskać stałąAsV


1
U

1
sVV

sVtVV

1
Nie rozumiem jak. Przy okazji, jeśli dodam warunek V, jest to uniwersalne narzędzie do rozwiązywania problemów, można by wyeliminować warunek zależny od A, uruchamiając tylko algorytmy, które można udowodnić, że są uniwersalnymi rozwiązującymi problemy
Vanessa
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.