Para (versões de pesquisa) de problemas completos de NP , verificar uma solução é claramente mais fácil do que encontrá-la, pois a verificação pode ser feita em tempo polinomial, enquanto que encontrar uma testemunha leva (provavelmente) tempo exponencial.
Em P , no entanto, a solução também pode ser encontrada em tempo polinomial, portanto, não parece óbvio quando a verificação é mais rápida do que encontrar a solução. De fato, problemas diferentes parecem se comportar de maneira diferente desse ponto de vista. Alguns exemplos:
3SUM: dados números de entrada, encontre 3 dentre eles que somam 0. Até onde eu sei, o algoritmo mais rápido conhecido é executado no tempo O ( n 2 - o ( 1 ) ) e essa ordem é ideal conjecturada. Por outro lado, a verificação de uma solução é muito mais rápida, pois tudo o que precisamos fazer é apenas verificar se os 3 números encontrados realmente somam 0.
Caminhos mais curtos de todos os pares: dado um gráfico com pesos das arestas, calcule sua matriz de distância do caminho mais curto. Uma vez que tal matriz é dada, é possível verificar mais rapidamente se é de fato a matriz de distância correta do que recalculá-la? Meu palpite é que a resposta talvez seja sim, mas certamente é menos óbvia do que no 3SUM.
Programação linear. Se uma solução ótima reivindicada é fornecida, é mais fácil verificar do que recalculá-la, quando também são fornecidas informações auxiliares (uma solução dupla ideal). Por outro lado, se apenas a solução principal está disponível, não está claro se é possível verificar mais rapidamente do que realmente resolver o LP.
Pergunta: o que se sabe sobre esse assunto? Ou seja, quando é mais fácil verificar uma solução para um problema em P do que encontrar a solução?