Claramente, não há problemas indecidíveis no NP. No entanto, de acordo com a Wikipedia :
NP é o conjunto de todos os problemas de decisão para os quais as instâncias em que a resposta é "sim" têm [..] provas que são verificáveis em tempo polinomial por uma máquina determinística de Turing.
[...]
Diz-se que existe um problema no NP se e somente se existir um verificador para o problema que é executado no tempo polinomial.
Agora considere o seguinte problema:
Dada uma equação diofantina , ela possui soluções inteiras?
Dada uma solução, é fácil verificar em tempo polinomial que realmente é uma solução: basta inserir os números na equação. Assim, o problema está no NP. No entanto, resolver esse problema é conhecido por ser indecidível !
(Da mesma forma, parece que o problema de parada deve estar no NP, pois a solução "yes" de "este programa pára na N-ésima etapa" pode ser verificada em N etapas.)
Obviamente, há algo errado com meu entendimento, mas o que é isso?
fonte
Respostas:
Uma definição equivalente de NP é que ele consiste em todos os problemas que são decidíveis (não apenas verificáveis) no tempo polinomial por uma máquina de Turing não determinística. Sabe-se que as MNTs não são mais poderosas que as TMs, no sentido de que o conjunto de problemas decididos pelas NTMs é idêntico ao conjunto de problemas decididos pelas TMs; portanto, claramente por essa definição não pode haver problemas indecidíveis no NP.
Para demonstrar que as duas definições de NP são equivalentes, dada a existência de um verificador determinístico, é possível demonstrar que existe uma decisão não determinística e vice-versa.
Digamos que você tenha um verificador polinomial determinístico. Depois, há também uma máquina que não determina de maneira determinística um certificado de um comprimento delimitado pelo polinômio correspondente ao tamanho do certificado vinculado a esse problema / verificador e, em seguida, executa o verificador. Como o alfabeto é finito, o certificado para qualquer entrada é finito (e no máximo polinomial no tamanho da entrada) e o verificador é executado em tempo polinomial, a máquina pára em todas as ramificações de todas as entradas e é executada em (não- determinístico) polinomial. Portanto, existe um fator não determinístico para cada verificador determinístico.
Se você tiver uma decisão não determinística, para cada cálculo aceitante, você pode anotar o caminho das escolhas tomadas pela decisão para alcançar o estado de aceitação. Como o decisor é executado no tempo polinomial, esse caminho terá o maior comprimento polinomial. E é fácil para uma TM determinística validar que esse caminho é um caminho válido através de um NTM para um estado de aceitação; portanto, esses caminhos formam certificados para um verificador de tempo polinomial para o problema. Portanto, existe um verificador determinístico para todo decisor não determinístico.
Portanto, qualquer problema indecidível não pode ter um verificador que funcione em certificados de tamanho polinomial (caso contrário, a existência do verificador implicaria a existência de um decisor).
Quando você afirma que existe um verificador para o problema de interrupção, o certificado do qual você está falando é uma codificação de (TM, I, N), onde a TM pára na entrada I em N etapas. De fato, isso pode ser verificado em N etapas, mas o tamanho do certificado não é polinomial no tamanho da entrada (TM, I) do problema original (o problema de parada); N pode ser arbitrariamente grande (independentemente da codificação). Se você tentar converter esse verificador em uma decisão não determinística, você acaba com uma máquina um tanto interessante. Você deve poder provar que, quando executado em (TM, I) para uma TM que nãoParar na entrada I Não existem caminhos sem interrupção na máquina, mas também que, para qualquer caminho que leva a um estado de parada, sempre existe outro caminho mais longo (correspondendo a um palpite de um N maior) e, portanto, não existe um limite finito. seu tempo de execução. Essencialmente, isso ocorre porque existe um espaço infinito que precisa ser explorado pela suposição inicial não determinística. A conversão desse NTM em uma TM determinística leva a uma daquelas máquinas que não fazem loops nem param em alguma entrada. De fato, não existe NTM que possa decidir o problema de interrupção e, portanto, não há verificador que funcione em certificados com um tamanho limitado.
Não estou tão familiarizado com as equações diofantinas, mas parece que essencialmente o mesmo problema se aplica ao seu argumento.
Por esse motivo, acho mais fácil argumentar sobre a definição de NP do NTM. Existem verificadores para problemas indecidíveis (apenas aqueles que funcionam em certificados que têm um tamanho polinomial vinculado ao tamanho da entrada do problema original). De fato, qualquer TM que reconheça, mas não decida, algum idioma pode ser facilmente convertida em um verificador para o mesmo idioma.
Se você pensa em verificadores, suponho que você tenha que estabelecer limites de tempo em termos do tamanho da entrada original do problema , não em termos do tamanho do certificado; você pode aumentar arbitrariamente o tamanho dos certificados, para que o verificador seja executado em um tempo menor, em termos do tamanho do certificado.
fonte
Acho que você não entendeu o que significa resolver uma equação diofantina e o teorema da indecidibilidade de Matiyasevich .
Matiyasevich provou que para todo conjunto de ER existe uma equação diofentina tal que somente se existir coeficientes inteiros , .., tal que . Em particular, o problema de parada é um conjunto típico de ER e, portanto, a solução do problema acima é indecidível.f ( n , x 1 , . . . , X k ) n ∈ S x 1 x k f ( n , x 1 , . . . , X k ) = 0S f( n ; x1 1, . . . , xk) n ∈ S x1 1 xk f( n ; x1 1, . . . , xk) = 0
Observe que não são delimitados em tamanho e, em geral, podem ser arbitrariamente grandes, portanto, não há "certificado de tamanho polinomial" evidente neste problema.x1 1, . . . xk
Para expandir: os números inteiros precisam ser escritos em binário para serem um certificado. Como esses números inteiros podem ser arbitrariamente grandes (independentemente de ), temos que o certificado não é polinomial em ou mais importante, não é limitado por uma função computável. n log nx1 1, . . . , xk n registron
fonte
Você deveria ter rolado para baixo até a definição formal :
Ou seja, um verificador precisa trabalhar também em não soluções. Em algum lugar lá, problemas indecidíveis falham (no seu caso, a restrição de comprimento dos candidatos à solução provavelmente não é atendida), como é óbvio pela definição (no sentido da computabilidade) mais clara :
fonte
Eu tento fornecer mais detalhes para a minha resposta acima.
De fato, essa questão é um problema de dilema.
Por um lado, o Problema da Equação Diofantina (DEP) é indecidível de acordo com o teorema de Matiyesevich (o teorema de Matiyesevich responde ao décimo problema de Hilbert, e o problema de Turing de Halting responde à generalização do décimo problema de Hilbert, ou seja, o problema de Entscheidung); mas, por outro lado, não há nenhum problema indecidível no PN de acordo com a definição de PN (decidível e verificável).
Ou seja, DEP não está em NP ou DEP está em NP. Ambos dizem respeito à definição de NP.
Se a DEP não estiver na NP, isso significa que os problemas na NP (NDTM) não são determináveis na máquina de Turing) são decidíveis e verificáveis, ou seja, aceitamos P = NP (NDTM).
Se DEP estiver em NP, então NP (NTM = Non Turing Machine) contém decidível e indecidível, obviamente decidível é verificável; portanto, o problema é se indecidível é verificável? De fato, esse é o famoso problema de P vs. NP. Certamente, indecidível é inverificável; portanto, NP corresponde a NTM (Non Turing Machine) em vez de NDTM (NonDeterminstic Turing Machine).
Seguindo a premissa de DEP, está em NP (NTM), pensamos que o NP (NTM) é um problema não determinístico (indecidível), e a definição atual de NP (NDTM, decidível e verificável) perdeu esse indeterminismo (indecidível), então achamos que precisa ser questionado.
fonte
Achamos que o dilema que você levantou sobre a equação diofantina é muito significativo, porque revela algo anormal na definição atual de PN: - Diz-se que existe um problema em PN se e somente se existe um verificador para o problema que é executado em polinômio Tempo.
No que diz respeito à definição de NP, ela pode ser rastreada até os anos 60, onde um grande número de problemas aplicáveis e significativos foram descobertos para os quais não foram encontrados algoritmos polinomiais para resolvê-los, a fim de reconhecer esses problemas daqueles problemas solucionáveis no tempo polinomial. (P), foi lançado o conceito de PN.
No entanto, a definição atual de NP definida como verificável em tempo polinomial confunde NP com P, porque um problema em P também é verificável em tempo polinomial. Em outra palavra, essa definição leva à perda da essência de NP, «não-determinismo». Conseqüentemente, causa sérias ambiguidades na compreensão de PN, por exemplo, seu dilema: por natureza, o problema da equação diofantina é indecidível; mas pela definição de NP, é decidível,…
Em nossa opinião, a dificuldade em resolver «P versus NP» reside primeiramente no nível da cognição; portanto, se esperamos obter uma visão sobre «P versus NP», precisamos primeiro questionar: O que é NP?
fonte