No artigo Complexidade do Problema de Frobenius, de Ramírez-Alfonsín, um problema foi comprovado como NP-completo usando reduções de Turing. Isso é possível? Como exatamente? Eu pensei que isso só era possível por um tempo polinomial de muitas reduções. Há alguma referência sobre isso?
Existem duas noções diferentes de dureza NP, mesmo a completude NP? Mas então eu estou confuso, porque, do ponto de vista prático, se eu quero mostrar que meu problema é NP-difícil, qual uso?
Eles começaram a descrição da seguinte maneira:
Um tempo polinomial Redução de Turing de um problema para outro problema é um algoritmo A que resolve usando uma subrotina hipotética A 'para resolver modo que, se A' fosse um algoritmo de tempo polinomial para , A seria um tempo polinomial algoritmo para . Dizemos que pode ser Turing reduzido para .P 2 P 1 P 2 P 2 P 1 P 1 P 2
Um problema é chamado (Turing) NP-hard se houver um problema de decisão completo NP modo que possa ser Turing reduzido para .P 2 P 2 P 1
E então eles usam essa redução de Turing de um problema NP-completo para mostrar a completude NP de algum outro problema.
fonte
Isso é bom. Uma redução de Turing em tempo polinomial é uma redução de Cook (como no teorema de Cook-Levin) e a redução de um problema de NP completo para o novo problema fornece dureza de NP (assim como uma redução de muitos polinômios no tempo, redução de AKA Karp). De fato, as reduções de Karp são apenas restritas às reduções de Turing.
Onde eles diferem (no que diz respeito a esta questão) está em mostrar associação. Uma redução de Karp de um problema para um problema no NP mostra que o primeiro está no NP. Uma redução de Cook na mesma direção não.
fonte