Há uma redução no livro de Sipser "Introdução à teoria da computação" na página 286, do 3SAT para o problema do caminho hamiltoniano.
Existe uma redução mais simples?
Por mais simples, quero dizer uma redução que seria mais fácil de entender (para os alunos).
Existe uma redução que usa número linear de variáveis?
A redução em Sipser utiliza variáveis, onde é o número de cláusulas e é o número de variáveis. Em outras palavras, é possível que a redução sopre o tamanho de para . Existe uma redução simples em que o tamanho da saída da redução é linear no tamanho da sua entrada?k n s O ( s 2 )
Se não for possível, existe um motivo? Isso implicaria um resultado desconhecido em complexidade / algoritmos?
complexity-theory
np-hard
Kaveh
fonte
fonte
Respostas:
O número de vértices na conhecida redução de 3SAT para o caminho Hamiltoniano direcionado (dHAMPATH) pode ser facilmente reduzido para , onde é o número de variáveis e é o número de cláusulas, portanto, o tamanho de a instância de gráfico construída é linear ao tamanho da instância 3SAT original.n kO(n+k) n k
Na redução original, temos os vértices inicial e final, vértices para cláusulas, listas de comprimento para variáveis. A idéia é que não precisamos construir uma lista de comprimento para cada variável, podemos construir uma lista de acordo com o número em que a variável aparece em todas as cláusulas. Como o número total de aparências de variáveis nas cláusulas é , é .n 4 k 4 k 3 k O ( n + k )k n 4k 4k 3k O(n+k)
fonte