BUILT IN THE OPEN
Software
Open-source projects I have developed or contributed to, with a focus on optimization and computational problem solving.
MODELING & OPTIMIZATION
Python-MIP
Python tools for modeling and solving mixed-integer linear programs. Write models using natural Python expressions, with access to advanced features such as cut generation, MIP starts, and solution pools.
COIN-OR
Branch-and-Cut solver
Cbc is an extensible, open-source mixed-integer linear programming solver. It combines branch-and-cut search, cutting planes, and heuristics, and can be used as a library or from the command line.
I have contributed to the solver and written a short guide to its command-line interface. The guide is an archived reference; consult the current project documentation for up-to-date options.
CONFLICT GRAPHS & CUTS
NPSep
A collection of routines for building dense conflict graphs and separating clique, odd-hole, and wheel inequalities. Much of the cut-separation code is solver-independent, with implementations in C and C++.
The project explores exact and heuristic clique separation, including lifting to strengthen the generated inequalities.
SCHOOL TIMETABLING
GOAL solver
Our team's school timetabling solver won ITC 2011. It uses hybrid local-search methods to build schedules under complex resource and availability constraints.