Tempo constante é a complexidade absoluta de fim de tempo baixo. Alguém pode se perguntar: existe algo não trivial que pode ser calculado em tempo constante? Se nos apegarmos ao modelo da máquina de Turing, pouco poderá ser feito, pois a resposta só pode depender de um segmento inicial de comprimento constante da entrada, pois partes mais afastadas da entrada nem podem ser alcançadas em tempo constante.
Por outro lado, se adotarmos o modelo de RAM de custo unitário um pouco mais poderoso (e mais realista), no qual operações elementares em números de bits são contadas como etapas únicas, poderemos resolver tarefas não triviais, mesmo em tempo constante. Aqui está um exemplo:
Instância: Inteiros , cada um dado em formato binário por bits.O ( log n )
Pergunta: Existe um gráfico vértice, de modo que sua conectividade de vértice é , sua conectividade de borda é e seu grau mínimo é ?k l d
Observe que, a partir da definição, nem é óbvio que o problema esteja no NP . O motivo é que a testemunha natural (o gráfico) pode precisar de uma descrição longa de , enquanto a entrada é fornecida apenas por bits . Por outro lado, o seguinte teorema (veja Teoria dos Gráficos Extremais de B. Bollobas) vem em socorro.O ( log n )
Teorema: Seja inteiros. Existe um gráfico -vertex com conectividade de vértices , conectividade de borda e grau mínimo , se e somente se uma das seguintes condições for atendida:n k l d
- ,
Como essas condições podem ser verificadas em tempo constante (no modelo de RAM de custo unitário), o teorema leva a um algoritmo de tempo constante nesse modelo.
Pergunta: Quais são alguns outros exemplos não triviais de algoritmos de tempo constante?