Fácil redução do problema de caminho 3SAT para Hamiltoniano

19

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 )O(kn)knsO(s2)

Se não for possível, existe um motivo? Isso implicaria um resultado desconhecido em complexidade / algoritmos?

Kaveh
fonte
Só para esclarecer: você deseja a função de redução que mapeia instâncias 3SAT para instâncias HP ou deseja a prova que reduza "3SAT no NPC?" para "HP no NPC?"? (Eu acho que o primeiro). Você poderia descrever a prova a que se refere? Alguns de nós podem não ter o livro à mão.
Raphael
@ Rafael, eu quero uma redução de 3SAT para HamPath.
Kaveh
A redução no Sipser é de uso prolongado, prefiro não repetir a redução aqui. Você pode interpretar a primeira pergunta como: existe uma redução simples?
Kaveh
2
@Kaveh Acho que é fácil seguir os slides das palestras aqui: cbcb.umd.edu/~carlk/bioinfo-lectures/sat.pdf Eles reduzem o 3sat para Ham. Ciclo e Presunto. Ciclo para Ham. Caminho. Eles foram convenientemente o primeiro sucesso da "redução do caminho 3sat para o hamiltoniano", mas provavelmente não respondem à sua segunda pergunta.
3112 Joe
1
@ Kaveh: boa pergunta, especialmente a "Isso implicaria um resultado desconhecido na complexidade / algoritmos?" parte :-). Não sou especialista, mas gostaria de vê-lo perguntado sobre a história.
Vor

Respostas:

7

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)nk

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 )kn4k4k3kO(n+k)

cc
fonte