OR-Tools
According to Google (its developer),
OR-Tools is an open source software suite for optimization, tuned for tackling the world's toughest problems in vehicle routing, flows, integer and linear programming, and constraint programming.
For our purposes in ORIE, OR-Tools is a module in Python that we can use to interface with Gurobi (and maybe other ILP solvers). Like GurobiPy, it allows users to pass constraints to solver(s) in a specific format, but unlike GurobiPy, the reason for this is that the solver itself can be abstracted away from the user's code in favor of adaptability (while GurobiPy only works with Gurobi).
There aren't too many benefits or drawbacks necessarily from using OR-Tools over GurobiPy (or vice-versa), outside of maybe the fact that with GurobiPy you can interface more directly with the solver, using commands that directly tell Gurobi how much output to show, etcetera. But OR-Tools' more intuitive (according to some) syntax might make up for this.
Installation
You can install OR-Tools with the following command in your terminal:
python -m pip install ortools
.
If you don't have pip
installed, read instructions on installing it here: pip website.
If you don't have Python installed, download it here (Python website), or use Anaconda instead.
Usage
Documentation on OR-Tools' Python interface can be found here: https://developers.google.com/optimization/introduction/python.
Examples
Examples of OR-Tools can be found on this wiki page, under "ILP Formulation Examples": https://orpy.wiki/concepts/index.html.