Wenn ich ein schweres Problem habe, besteht ein Standardansatz darin, es als SAT-Instanz auszudrücken und einen SAT-Solver darauf auszuführen. Ein weiterer Standardansatz besteht darin, es als Problem der Einschränkungszufriedenheit auszudrücken und einen CSP-Löser zu verwenden. Die beiden fühlen sich irgendwie vage ähnlich, was Arten von Problemen angeht, die sich natürlich in ihrem Eingabeformat ausdrücken lassen.
Gibt es Richtlinien oder Faustregeln, um für ein bestimmtes Problem zu erkennen, welche Vorgehensweise mit größerer Wahrscheinlichkeit zu guten Ergebnissen führt? Gibt es eine Anleitung, die jemand anbieten kann, um welche Probleme es sich bei SAT-Lösern besser handelt als bei CSP-Lösern oder umgekehrt?
(Offensichtlich gibt es einige einfache Probleme, die mit beiden Ansätzen gelöst werden können. Es gibt auch einige schwierige Probleme, die mit beiden Ansätzen nicht sinnvoll gelöst werden können. Lassen Sie uns diese beiseite legen. Der Fall, in dem die Anleitung am hilfreichsten ist, sind Probleme mit beiden SAT Solver erzielen eine bessere Leistung als CSP-Solver oder CSP-Solver erzielen eine bessere Leistung als SAT-Solver. Woran erkenne ich, dass ein SAT-Solver wahrscheinlich besser passt als ein CSP-Solver oder ein CSP-Solver besser passt als ein SAT-Löser - dh welcher Ansatz zuerst zu versuchen?)