Closed jac0320 closed 7 years ago
Yes, in the Gas Paper, when we went to ipopt, we replaced all variable x = constant with the constants and replaced many of the = constraints with 2 inequalities. If we are sending problems to ipopt where we fix the discrete variables, we should probably do the replace since those are problems POD is constructing. On the flip side, if we see the issue on the equality constraints, we should require put this on the user on whether or not to use == or <= and >= (?)
In my experince the not-enough-degree-of-freedom
message occurs when the model is over determined and has an error. I would say this is the user's responsibility to resolve.
Setup a notification to user to ask them considering replacing == with <= & >= in #58
This was a common case for castro_wastewater problems. Now it is showing up on gas problems from GasModels.jl. Anything associated with Ipopt can fail due to excessive equality constraints or fixed variable.
https://www.coin-or.org/Ipopt/documentation/node36.html
It is not POD's duty to control how the model should be implemented neither how sub-solvers should be tuned for conquering these problems. But there should be an easy switch as an attempt when such issue happens.
It can be a viable choice to treat the == constraints with >= & <=, which requires some complication on storing the original problem info in POD. This shouldn't hurt bounding performance much due to the presolve procedure in MIP solvers.
Any other suggestions?