Możemy absolutnie udowodnić takie rzeczy.
Wiele problemów ma trywialne dolne granice, takie jak znalezienie minimum zbioru liczb (które nie są w żaden sposób posortowane / ustrukturyzowane) zajmuje co najmniej Ω ( n ) czasu. Dowód na to jest prosty: hipotetyczny algorytm działający w czasie o ( n ) nie może zbadać wszystkich liczb na wejściu. Gdybyśmy uruchomili algorytm na niektórych danych wejściowych, moglibyśmy zaobserwować, że nigdy nie sprawdzał określonego elementu danych wejściowych. Zmieniając ten element na minimum, możemy doprowadzić algorytm do awarii.nΩ(n)o(n)
Mniej trywialna dolna granica to dolna granica do sortowania w modelu porównawczym. Dowód tego jest następujący: biorąc pod uwagę liczbę n liczb, istnieje n ! możliwe wyniki (wejście może być dowolną permutacją posortowanej listy, więc wyjście może być dowolną permutacją wejścia). Jeśli ograniczamy się tylko do porównywania, wówczas nasz algorytm (średnio) musi wykonać co najmniej log 2 ( n ! ) = Ω ( n log n ) porównań, aby móc podać nΩ(nlogn)nn!log2(n!)=Ω(nlogn)różne wyjścia.n!
Dolne granice mogą być jeszcze silniejsze. Istnieje kilka problemów (zwłaszcza problemy twarde ), dla których występuje wykładnicza dolna granica. Problemy w tej klasie obejmują obliczanie optymalnych strategii dla gier takich jak (uogólnione) szachy, warcaby i gra. Dowodem na to jest twierdzenie o hierarchii czasu , które stwierdza (z zastrzeżeniem pewnych ograniczeń f ):EXPTIMEf
Biorąc pod uwagę funkcję , istnieje problem obliczeniowy, który można rozwiązać w czasie O ( f ( n ) ), ale nie można go rozwiązać w czasie o ( f ( n )fO(f(n)).o(f(n)logn)
Zasadniczo, jeśli możesz pomyśleć o funkcji , istnieje problem, który wymaga tyle czasu do rozwiązania.f
Wreszcie, inną drogą niekoniecznie udowodnienia dolnej granicy czasu, ale coś jeszcze silniejszego pokazuje nierozstrzygalność problemu (np. Zatrzymanie, korespondencja pocztowa).