Podemos provar absolutamente essas coisas.
Muitos problemas têm limites inferiores triviais, como encontrar o mínimo de um conjunto de números (que não são classificados / estruturados de forma alguma) leva pelo menos Ω ( n ) tempo. A prova disso é simples: um algoritmo hipotético que é executado em o ( n ) tempo não pode examinar todos os números na entrada. Portanto, se rodássemos o algoritmo em alguma entrada, poderíamos observar que ele nunca examinou um elemento específico da entrada. Alterando esse elemento ao mínimo, podemos fazer com que o algoritmo falhe.nΩ(n)o(n)
Um limite inferior menos trivial é o limite inferior de para classificação no modelo baseado em comparação. A prova disso segue as seguintes linhas: dada uma entrada de n números, existem n ! saídas possíveis (a entrada pode ser qualquer permutação da lista classificada, portanto, a saída também pode ser qualquer permutação da entrada). Se estamos limitados a fazer apenas comparações, nosso algoritmo (em média) precisa executar pelo menos o log 2 ( nΩ(nlogn)nn!comparações de ! ) = Ω ( n log n ) para poder fornecer nlog2(n!)=Ω(nlogn)saídas diferentes.n!
Limites inferiores podem ser ainda mais fortes. Existem vários problemas (principalmente o -Hard problemas) para o qual existe um limite inferior exponencial. Os problemas desta classe incluem o cálculo de estratégias ideais para jogos como xadrez (generalizado), damas e jogar. A prova disso é através doTeorema da Hierarquia de Tempo, que declara (sujeito a algumas restrições em f ):EXPTIMEf
Dada uma função , existe um problema computacional que pode ser resolvido no tempo O ( f ( n ) )fO(f(n)) mas não pode ser resolvido no tempo .o(f(n)logn)
Então, basicamente, se você consegue pensar em uma função , existe um problema que requer muito tempo para ser resolvido.f
Finalmente, outra via de não necessariamente provar um limite de tempo mais baixo, mas algo ainda mais forte está mostrando a indecidibilidade de um problema (por exemplo, parada, pós-correspondência).