I have a MILP model that solves a master production schedule including capacity decisions. In the model I have a production quantity that should either be 0 or at least the amount that can be produced in one shift (or half shift), i.e., a minimium production quantity. Right now this is modeled using two variables, one binary and one continuous.
The actual implementation right now is done with Google's or-tools which doesn't support semi-continuous variables, so I can't easily test this out. I would need to rewrite the whole model using a solver specific API and that would take quite some time.
The model is solved in about 24h (with a reasonable gap remaining), it has more than 100,000 rows, 150,000 columns, and 600,000 non-zeros. Due to this "minimum quantity" I have about 28,000 binary variables in the model and without it there would be only a handful (basically choosing between different capacity levels). I tried removing the minimum quantity restriction (and thus those binary variables) and the model is solved in 2-3h to optimality.
Would the use of semi-continuous variables instead of the binary-continuous pair allow the model to be solved faster than using two variables? Are there any examples that show this difference in similar sized dimensions?
lazyto reduce the solution space? – A.Omidi Oct 24 '20 at 06:03