Quadratic Objective Function - Float_times error

160 views
Skip to first unread message

Kushan Sudheera

unread,
Apr 25, 2017, 6:54:05 PM4/25/17
to MiniZinc
Hi,

I'm very new to minizinc. I'm trying to solve a basic routing problem in which the objective function has quadratic terms.
Basically the objective function is as follows.
minimize : (D - R)^2 + (S - O)^2
Here, D and S, are float type decision variables and R and O are input values.

However, I can not run this with all the bundled solvers (COIN_OR CBC, G12 MIP, etc.) except for Gecode (Gecode takes a very long time and did not find the optimal).
All these solvers take issues with quadratic multiplication of float type variables and show errors such as : Error: constraint not found: float_times (CBC solver gives this error).

But I found that CBC supports quadratic terms according to its user guide. Attached is a screenshot taken from the user guide.

Has anyone experienced a similar problem? I would be very grateful if anyone can help me with this?
How can I solve miqp problems in minizinc? Any preferred solvers for these type of problems?


Capture.JPG

guido.tack

unread,
Apr 25, 2017, 7:01:07 PM4/25/17
to MiniZinc
Hi,

the CBC, Gurobi and CPLEX interfaces to MiniZinc currently don't support quadratic constraints (and each solver handles them slightly differently, e.g. some solvers are happy with quadratic terms in the objective function but not general quadratic constraints etc). Unfortunately I can't give you an estimate when this will become available at the moment.

Cheers,
Guido

Broes De Cat

unread,
May 8, 2017, 4:51:56 AM5/8/17
to MiniZinc
Hi Guido,

I had a rather similar question: are there any solver (except Gecode) that can handle non-linear arithmetic with float variables?

Thx!
Broes

guido.tack

unread,
May 16, 2017, 6:51:32 PM5/16/17
to MiniZinc
There are some solvers that have support for non-linear constraints over floats, e.g. Ipopt (https://projects.coin-or.org/Ipopt), but they are currently not available as MiniZinc backends. I think Eclipse Prolog has support for interval variables, and there must be other implementations out there but I'm currently not aware of one that would be available as an open-source library.

Cheers,
Guido
Reply all
Reply to author
Forward
0 new messages