MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Hi there,

I'm looking for a solver that allows me to solve an optimization problem of the form min x1*x2*x3,...,xn subject to some linear constraints. I've used gurobi before, however I couldn't find the way to include products in the objective function as well as in constraints.



share|cite|improve this question
up vote 1 down vote accepted

This is a hard problem (maximizing the product is a bit better one, as sometimes one can take $\log$ of the objective function, and it becomes concave...). Your best shot might be to use the sum of squares approach for polynomial optimization, as implemented e.g. in YALMIP.

share|cite|improve this answer
Does YALMIP support multiobjective optimization (possibly only linear)? – joro Sep 17 '12 at 6:25
not that I know for sure, but I doubt this. Multiobjective optimization is very hard, in general, as you'd be computing a multidimensional object. – Dima Pasechnik Sep 17 '12 at 10:02

Recently discovered minizinc

MiniZinc is a medium-level constraint modelling language. It is high-level enough to express most constraint problems easily, but low-level enough that it can be mapped onto existing solvers easily and consistently. It is a subset of the higher-level language Zinc. We hope it will be adopted as a standard by the Constraint Programming community. FlatZinc is a low-level solver input language that is the target language for MiniZinc. It is designed to be easy to translate into the form required by a solver.

There are several backends for the translated problem (MIP, SAT, etc).

Here is how something similar to your question will look like in minizinc:

var int: a;
var int: b;
constraint a + b <= 10;
constraint a>0;
constraint b>0;
solve maximize a*b;
output [ show([a,b]) ];
[5, 5]
share|cite|improve this answer
Hm, in your case you need "solve minimize ....;" – joro Sep 17 '12 at 6:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.