Um colega meu e eu acabamos de fazer algumas anotações de um de nossos professores. As notas indicam que existem tarefas que são possíveis de resolver em tempo polinomial (estão na classe de PF), mas NÃO são verificáveis em tempo polinomial (NÃO são da classe de NPF).
Para elaborar sobre essas classes: Nós obtemos alguma entrada X e produzimos alguma saída Y tal que (X, Y) estejam em relação R representando nossa tarefa. Se for possível obter Y para X em tempo polinomial, a tarefa pertence à classe de PF. Se for possível verificar o certificado de comprimento polinomial Z que comprove que uma tupla (X, Y) está em relação R em tempo polinomial, a tarefa pertence à classe de NPF.
Não estamos falando de problemas de decisão, onde a resposta é simplesmente SIM ou NÃO (mais formalmente se alguma string pertencer a algum idioma). Para problemas de decisão, parece que PF é um subconjunto adequado de PFN. No entanto, para outras tarefas, pode ser diferente.
Você conhece uma tarefa que pode ser resolvida no tempo polinomial, mas não verificada no tempo polinomial?
fonte
Respostas:
Isso só é possível se houver muitas saídas admissíveis para uma determinada entrada. Ou seja, quando a relação não é uma função porque viola a singularidade.R
Por exemplo, considere este problema:
Resolver isso é trivial: continue adicionando alguns estados redundantes ao TM , possivelmente com algumas transições fictícias entre eles, até que sua codificação exceda n . Esta é uma aplicação repetida básica do Lemma Padding nas TMs. Isso exigirá n preenchimentos, cada um dos quais pode adicionar um estado; portanto, isso pode ser feito em tempo polinomial.M n n
Por outro lado, dado é indecidible para verificar se N é um resultado correcto para as entradas de n , H . De fato, marcar L ( M ) = L ( N ) é indecidível (aplique o teorema de Rice), e a restrição # N > n apenas descarta finitos muitos N s desses. Como removemos uma quantidade finita de elementos de um problema indecidível, ainda temos um problema indecidível.n,M,N N n,M L(M)=L(N) #N>n N
Você também pode substituir a propriedade indecidível para obter variações ainda computáveis, mas NP rígidas / completas. Por exemplo, dado que n (em unário), é trivial calcular um gráfico G com uma n- classe dentro. Porém, dado n , G , é difícil verificar se existe um n -ique.L(M)=L(N) n G n n,G n
fonte
Isso é apenas uma elaboração da primeira frase da resposta de @ chi, pois não achei óbvio.
A idéia é que, se você tiver um algoritmo que encontre a resposta para algum problema no tempo polinomial, existem duas possibilidades:
Você já provou (matematicamente) que a saída do algoritmo é uma solução para o problema; nesse caso, as próprias etapas do algoritmo formam a prova de correção.
Você tem um algoritmo diferente para verificar se a saída é realmente uma solução; nesse caso, você deve estar executando esse algoritmo (caso contrário, estaria no caso 1), o que implica que você está fazendo isso em tempo polinomial.
Portanto, não pode haver esse problema.
fonte