Mixed-Integer Programming (MIP) solvers are very powerful tools to solve combinatorial problems that arise in many industries. Modern MIP solvers usually run a sequence of algorithms to solve the input instance: first it preprocesses the instance, then it solve its Linear Programming Relaxation, runs cutting plane algorithms, primal heuristics, then the branch-and-bound. How much time is devoted to each of these types of algorithms is decided online, but once the next stage of solving has started, there is no turning back. For instance, once the branch-and-bound has started, modern MIP solvers do not consider running more preprocessing, even if this would ultimately prove beneficial.
Recent research on restarts has revealed that it could be beneficial for hard problems to restart the search when the estimated size of the branch-and-bound tree was extremely large. This offers many opportunities for re-configuring the solvers with the knowledge that the input instance is hard to solve for the branch-and-bound algorithm. We could then do more preprocessing to decrease the overall runtime, or reconsider any of the thousands of parameters governing MIP solvers.
The candidate should have experience with Integer Programming and the ability to code in C.