Core-guided search has been prevalent in the field of Maximum Satisfiability (MaxSAT), largely due to the application of additional techniques that improve performance. With core-guided search being recently applied to Constraint Programming (CP), the question emerges whether suc
...
Core-guided search has been prevalent in the field of Maximum Satisfiability (MaxSAT), largely due to the application of additional techniques that improve performance. With core-guided search being recently applied to Constraint Programming (CP), the question emerges whether such additional techniques can be applied to CP as well. In this thesis, four such features are implemented: weight-aware core extraction (WCE), which extracts multiple disjoint cores, reducing core size and overhead to improve efficiency; stratification, which extracts high-weighing cores first, allowing it to give better estimates and often to require fewer cores to be found; hardening, which prunes suboptimal parts of the search space, guiding search closer to the optimal solution; and partitioning, which divides the terms in the objective function into disjoint, strongly intra-related groups, thereby causing smaller cores to be found efficiently. With the exception of hardening which is used in conjunction with either WCE or stratification these are individually combined with the four approaches used to apply core-guided search to CP. This evaluation results in an in-depth analysis on which features combine well with which approaches, and why, as well as the individual strengths of the approaches and features. We observed that the variable-based approach generally perform better than the slice-based approach, with coefficient elimination increasing this difference. Hardened WCE has the largest positive effect, especially in the slice-based approach; it causes speedups in all four base approaches, resulting in an overall performance increase in three of those. The variable-based coefficient eliminating variant without additional features was able to solve the most instances; all additional features decreased performance. The current implementation of partitioning was able to improve on some key metrics, but decreased overall performance in all four cases. Other important conclusions are that no solver strictly outperformed any other, advocating that different solvers are best suited for different problems. Secondly, the order of assumptions has been proven to cause significant changes in the performance of solvers. Finally, we concluded that considering relaxations generally helps prove unsatisfiability.