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?
fonte
Respostas:
fonte
Este trabalho mostra que existem algoritmos de verificação para ambos SIM e instâncias NO para 3 problemas, incluindo o fluxo máximo, 3SUM, e APSP, que são mais rápida por um factor de polinomial do que os limites conhecidos para o cálculo da solução propriamente dita.
Há uma classe de problemas, a saber, aqueles que melhoram o tempo de execução são SETH difíceis, cujo tempo de execução para verificar as instâncias de NO é improvável que seja significativamente mais rápido que o tempo para calcular a solução, caso contrário, a conjectura deste artigo chamada Não Determinística Hipótese de tempo exponencial forte falharia.
fonte
Para alguns problemas, parece não haver diferença. Em particular, Vassilevska Williams & Williams mostram:
para multiplicação de matriz booleana, calculando o produto da matriz e verificando o equivalente subcúbico do produto da matriz, o que significa que ambos têm algoritmos de tempo subcúbico ou nenhum deles.
O mesmo se aplica à computação e verificação de produtos matriciais sobre qualquer "estrutura estendida (min, +)" (consulte o documento para obter a definição, mas isso inclui muitos problemas naturais).
(Agora, é claro, é possível que todos esses problemas tenham algoritmos subcúbicos, e pode haver uma diferença polinomial entre computação e verificação, mas para esses problemas não pode haver uma diferença cúbica. E me parece plausível que, em todos eles requerem tempo essencialmente cúbico.)
fonte
fonte
Eu acho que muitos exemplos vêm de problemas NP-completos que se enquadram em P quando corrigimos um ou mais parâmetros .
fonte
fonte
fonte