Se eu tiver um problema difícil, uma abordagem padrão é expressá-la como uma instância SAT e tentar executar um solucionador SAT nela. Outra abordagem padrão é expressá-lo como um problema de satisfação de restrições e tentar usar um solucionador de CSP. Os dois se sentem de alguma forma vagamente semelhantes em que tipos de problemas podem ser naturalmente expressos em seu formato de entrada.
Existem diretrizes ou regras práticas para reconhecer, para um determinado problema, qual abordagem tem maior probabilidade de produzir bons resultados? Existe alguma orientação que alguém possa oferecer sobre quais tipos de problemas podem ser tratados melhor pelos solucionadores SAT do que pelos solucionadores CSP, ou vice-versa?
(Obviamente, existem alguns problemas fáceis que podem ser resolvidos pelas duas abordagens. Também existem alguns problemas difíceis que não podem ser resolvidos de maneira útil por nenhuma das abordagens. Vamos deixar isso de lado. O caso em que a orientação é mais útil são os problemas em que o SAT Os solucionadores têm um desempenho melhor que os solucionadores de CSP ou onde os solucionadores de CSP têm melhor desempenho que os solucionadores de SAT.Como reconheço quando é provável que um solucionador de SAT seja mais adequado que um solucionador de CSP ou quando é provável que um solucionador de CSP seja mais adequado um solucionador SAT - ou seja, qual abordagem tentar primeiro?)