Se ho un problema difficile, un approccio standard è quello di esprimerlo come istanza SAT e provare a eseguire un solutore SAT su di esso. Un altro approccio standard è quello di esprimerlo come un problema di soddisfazione dei vincoli e provare a utilizzare un risolutore CSP. I due si sentono in qualche modo vagamente simili in quali tipi di problemi possono essere naturalmente espressi nel loro formato di input.
Esistono linee guida o regole empiriche su come riconoscere, per un dato problema, quale approccio ha maggiori probabilità di produrre buoni risultati? C'è qualche consiglio che qualcuno può offrire su quali tipi di problemi possono essere gestiti meglio dai solutori SAT che dai solutori CSP o viceversa?
(Ovviamente, ci sono alcuni problemi facili che possono essere risolti da entrambi gli approcci. Ci sono anche alcuni problemi difficili che non possono essere risolti utilmente da entrambi gli approcci. Mettiamoli da parte. Il caso in cui l'orientamento è più utile sono i problemi in cui l'uno o l'altro SAT i solutori hanno prestazioni migliori rispetto ai solutori CSP o dove i solutori CSP hanno prestazioni migliori rispetto ai solutori SAT. Come faccio a riconoscere quando un solutore SAT è probabile che si adatti meglio di un solutore CSP, o quando è probabile che un solutore CSP sia più adatto di un solutore SAT - cioè quale approccio provare per primo?)