Qui l'obiettivo è ridurre un problema SAT arbitrario a 3-SAT in tempo polinomiale usando il minor numero di clausole e variabili. La mia domanda è motivata dalla curiosità. Meno formalmente, vorrei sapere: "Qual è la riduzione" più naturale "da SAT a 3-SAT?"
Ora la riduzione che ho sempre visto nei libri di testo è simile a questa:
Per prima cosa prendi la tua istanza di SAT e applica il teorema di Cook-Levin per ridurlo al circuito SAT.
Quindi finisci il lavoro con la riduzione standard del circuito SAT a 3-SAT sostituendo cancelli con clausole.
Mentre funziona, le risultanti clausole 3-SAT finiscono per apparire quasi nulla come le clausole SAT con cui hai iniziato, a causa dell'applicazione iniziale del teorema di Cook-Levin.
Qualcuno può vedere come effettuare la riduzione più direttamente, saltando il passaggio del circuito intermedio e andando direttamente al 3-SAT? Sarei anche felice di una riduzione diretta nel caso speciale di n-SAT.
(Immagino che ci siano alcuni compromessi tra il tempo di calcolo e la dimensione dell'output. Chiaramente una soluzione degenerata - sebbene fortunatamente inammissibile a meno che P = NP - sarebbe quella di risolvere semplicemente il problema SAT, quindi emettere un banale 3 -Istanza SAT ...)
EDIT: Sulla base della risposta di Ratchet, è chiaro ora che la riduzione a n-SAT è in qualche modo banale (e che avrei dovuto davvero pensarlo uno con un po 'più di attenzione prima di pubblicare). Lascio questa domanda aperta per un po 'nel caso in cui qualcuno conosca la risposta alla situazione più generale, altrimenti accetterò semplicemente la risposta di Ratchet.