Ici, l'objectif est de réduire un problème SAT arbitraire à 3-SAT en temps polynomial en utilisant le moins de clauses et de variables. Ma question est motivée par la curiosité. Moins formellement, j'aimerais savoir: "Quelle est la réduction" la plus naturelle "du SAT au 3-SAT?"
Maintenant, la réduction que j'ai toujours vue dans les manuels se présente comme suit:
Prenez d'abord votre instance de SAT et appliquez le théorème de Cook-Levin pour le réduire au circuit SAT.
Ensuite, vous terminez le travail par la réduction standard du circuit SAT en 3-SAT en remplaçant les portes par des clauses.
Bien que cela fonctionne, les clauses 3-SAT résultantes finissent par ne ressembler presque pas aux clauses SAT avec lesquelles vous avez commencé, en raison de l'application initiale du théorème de Cook-Levin.
Quelqu'un peut-il voir comment faire la réduction plus directement, en sautant l'étape du circuit intermédiaire et en passant directement à 3-SAT? Je serais même satisfait d'une réduction directe du cas particulier de n-SAT.
(Je suppose qu'il y a des compromis entre le temps de calcul et la taille de la sortie. De toute évidence, une solution dégénérée - bien que heureusement inadmissible à moins que P = NP - serait de simplement résoudre le problème SAT, puis d'émettre un trivial 3 -Instance SAM ...)
EDIT: Sur la base de la réponse de Ratchet, il est clair maintenant que la réduction en n-SAT est quelque peu triviale (et que j'aurais vraiment dû y penser un peu plus attentivement avant de poster). Je laisse cette question ouverte un peu au cas où quelqu'un connaît la réponse à la situation plus générale, sinon j'accepterai simplement la réponse de Ratchet.