A integridade do coNP implica dureza do NP? Em particular, tenho um problema que demonstrei ser coNP-completo. Posso afirmar que é NP-difícil? Percebo que posso reivindicar dureza de coNP, mas não tenho certeza se essa terminologia é padrão.
Estou satisfeito com a afirmação de que, se um problema de NP completo pertencesse ao coNP, então NP = coNP. No entanto, essas notas de aula afirmam que, se um problema NP-difícil pertencer ao coNP, então NP = coNP. Isso sugeriria que não posso afirmar que meu problema é NP-difícil (ou que eu provei coNP = NP, o que duvido muito).
Talvez haja algo errado com o meu pensamento. Meu pensamento é que um problema de coNP-completo é NP-difícil porque:
- todo problema no PN pode ser reduzido ao seu complemento, que pertencerá ao coNP.
- o problema do complemento no coNP se reduz ao meu problema de coNP completo.
- portanto, temos uma redução de todos os problemas no NP para o meu coNP-completo; portanto, meu problema é difícil no NP.
complexity-theory
np-hard
Austin Buchanan
fonte
fonte
Respostas:
Você alega que todos os problemas no NP podem ser reduzidos ao seu complemento , e isso é verdade para as reduções de Turing, mas (provavelmente) não para muitas reduções. Uma redução de muitos de para L 2L1 L2 é uma função polytime de tal modo que para todos os x , x ∈ L 1 sse f ( x ) ∈ L 2 .f x x∈L1 f(x)∈L2
Se algum problema no coNP fosse NP-difícil, então para qualquer idioma M ∈ N P haveria uma função politempo f tal que para todos x , x ∈L M∈NP f x sse f ( x ) ∈ L . Como L está no coNP, isso fornece um algoritmo de coNP para M , mostrando que NP ⊆ coNP e, portanto, NP = coNP. A maioria dos pesquisadores não espera que esse seja o caso e, portanto, os problemas no coNP provavelmente não são difíceis para o NP.x∈M f(x)∈L L M ⊆ =
A razão pela qual usamos reduções de Karp em vez de reduções de Turing é para que possamos distinguir entre problemas difíceis de NP e coNP. Veja esta resposta para obter mais detalhes (as reduções de Turing são chamadas reduções de Cook nessa resposta).
Finalmente, coNP-hard e coNP-complete são terminologia padrão, e você é livre para usá-las.
fonte
O problema com essa linha de raciocínio é o primeiro passo. No caso determinístico, você pode decidir com um TM M se você pode decidir x ∉ ¯ L com ele, porque a maneira de fazer isso é apenas virar o bit de saída dex∈L M x∉L¯¯¯¯ pois sua saída depende apenas de x (se compare com a definição do verificador de N P ).M x NP
No caso não determinístico usando a definição de verificador, não se sabe se é possível criar um verificador partir de um coNPNP coNP coNP ou vice-versa, e o problema é que eles têm quantificadores diferentes nas definições que as máquinas verificadoras devem cumprir. Vamos , então temos um verificador DTM M tal que:L∈coNP M
Para , o verificador M ' terá que cumprirL¯¯¯¯ M'
Por que não podemos, em seguida, basta usar o -verifier M' da língua K para construir uma coNP -verifier M de K ? O problema é a ∀ -quantifier obrigados a ter um coNP -verifier. O NP -verifier M ' pode fornecer 0 para algum certificado (errado), mesmo para x ∈ K , portanto você não pode ir de ∃ a ∀ .NP M' K coNP M K ∀ coNP NP M' 0 x∈K ∃ ∀
Talvez de maneira mais abstrata: não está claro como construir (em tempo polinomial) uma máquina que reconheça exatamente os elementos de uma linguagem, independentemente do certificado fornecido, de uma máquina que reconheça exatamente os elementos de uma linguagem que possui algum certificado para mas para os quais também alguns certificados não funcionam.
fonte