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.