/Combinatorial-Optimization-in-Gurobi

Combinatorial Optimization in Gurobi

Primary LanguageJupyter Notebook

Combinatorial Optimization in Gurobi

These codes solve various combinatorial optimization problems using the integer programming solver Gurobi. All codes are written in Python and handle networks with NetworkX.

The IP models generally increase in implementation difficulty:

  1. knapsack
  2. vertex cover
  3. independent set
  4. clique (relaxations: k-plex, quasi-clique, 2-club, k-club) (extension: independent union of cliques)
  5. dominating set and connected dominating set
  6. matching
  7. min cut
  8. max flow
  9. shortest path
  10. assignment problem
  11. coloring (via labeling, asymmetric representatives, set cover)
  12. spanning tree (via single-commodity flow, multi-commodity flow, directed cut, Dantzig-Fulkerson-Johnson)
  13. traveling salesman (directed: MTZ, lifted MTZ, DFJ, CUT, MCF) (undirected: DFJ, CUT)