I'm trying to solve a program in which one of the constraints is of the form:
xA1 == xA0 + cA1 * (tf - t0)
where xA1, xA0 and cA1 are (2,1) vars, tf is a 1x1 var and t0 is a constant.
I believe this is a non-convex constraint.
The other constraints I have are pretty simple, most linear and some convex quadratic.
I've tried using ipopt and snopt and the solutions I get so far are very good (in fact I think they are optimal, although I no longer know if I am to expect optimal solutions..). The solvers are also very fast in this very small problem (ipopt and snopt take about 0.02 sec each), so things look pretty good yet.
However, since I am going to scale this model and add many more variables with similar constraints (although in general very sparse), I was wondering if, given that my model is not that non-linear, I could use a more specialized solver.
Gurobi seems to support quadratically constrained programs. However, when I try to use Gurobi, YALMIP says that Gurobi is not compatible with this problem.
My constraint is not one of those types, so that would explain why YALMIP says Gurobi it's not compatible. However the same page also says:
"If you add a constraint that isn't in one of these forms (and Gurobi presolve is unable to transform the constraint into one of these forms), you'll get an error when you try to solve the model. Constraints where the quadratic terms only involve binary variables will always be transformed into one of these forms."
My constraints only involve binary variables. Therefore, should I expect that Gurobi supports this type of constraint?
If not, does anyone know if there are solvers well suited for this type of problem without having to use a full general purpose non-linear solver?
Yalmip is awesome. It really makes it easy to prototype.
Thank you!