Effective problem solving using SAT solvers