Mixed-integer linear programming