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”
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)
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ścia
Uniwersalne narzędzie do rozwiązywania problemów jest nazywane „wydajnym”, gdy mamy do czynienia z dowolnym uniwersalnym narzędziem do rozwiązywania problemów
Tutaj zależy od ale nie zależy od
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 )
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 wynikiem
Trywialnym przykładem uniwersalnego narzędzia rozwiązywania problemów w nowym sensie jest algorytm, który po prostu uruchamia dane wejściowe