#### Algorithm Selection

For many prominent NP-hard problems (i.e. SAT), practitioners often have access to many solvers for their particular problem and must make decisions about which solver(s) to run. The notion of portfolio-based algorithm selection was introduced as a way to exploit multiple uncorrelated algorithms in practice by combining their strengths. In the model-based algorithm selection approach, a model is learned to map informative instance features to choices of algorithms and the model is queried online to select solvers for execution on a per-instance basis. There has been much research on portfolio-based algorithm selectors, and state-of-the art approaches achieve notable performance gains over their component solvers.

I have contributed to our lab's portfolio-based algorithm selector: SATzilla, which has been the recipient of several awards from past SAT competitions. Since I joined the project, we won the 2015 ICON challenge. Recently we pointed out potential bias in analyzing performance of algorithm selectors. Currently, I am thinking about what properties allow algorithm selection to be useful (i.e. machine learning models, features, instance, solvers, etc.) and the deeper question about *why* algorithm algorithm selection works at all. While the practical benefits are clear, there is little work on understanding why algorithm selection is as successful as it is.