Problem Solving with the Enfragmo System

Enfragmo is a logic-based software system for specifying and solving combinatorial search problems. The specification language is multi-sorted first order logic, extended with arithmetic and a limited form of inductive definition. Given a specification and problem instance, Enfragmo generates a propositional formula representing the set of solutions for the instance, which it sends to a SAT solver. In this paper, we demonstrate the application of Enfragmo to solving a collection of benchmark problems. As with other declarative problem-solving methods, logically equivalent specifications can result in different run-time performance. We demonstrate strategic development of specifications for obtaining good performance on the benchmark problems. We present experimental evaluation of several specifications for each benchmark problem, and also comparison of the performance of Enfragmo with other similar systems.