The Constraint Satisfaction Problem (CSP) is an NP-complete problem, which allows flexible and intuitive representation of real-world problems.; In this thesis, we present a consistent view of existing search algorithms and variable ordering heuristics. We then examine several aspects of building a CSP solver to accommodate their requirements in a generic way. We demonstrate the feasibility of using this solver to perform experiments in common problems. Finally, we present and examine the performance of a new heuristic method to manipulate existing CSP models by conjoining constraints in order to improve their performance when used with the GAC search algorithm. |