[Bonmin] working with files and performances

Stefan Vigerske stefan at math.hu-berlin.de
Sat Jul 4 04:56:13 EDT 2009


Hi,

> I am using Bonmin+Ipopt+mumps(I can't get MA27 yet) to solve
> a mixed integer nonlinear(quadratic) problem with this features
> 
> tot number of variables: 3911
> number of binary variables: 560
> linear inequality constraints: 1125
> linear equality constraints: 2227
> nonlinear equality constraint: 1
> 
> I am writing the code just changing the c++ example file. I have some
> question about performances:
> 
> - How do you know if you are using sparse matrices?

Jacobians and Hessian are handled in sparse form, see eval_jac_g and eval_h.

> - both in eval_g, eval_jac_g and eval_h I read all informations from a file.
> As you can read above, most of the constraint are linear and they are
> stored in a
> quite big matrix in a file. It seems that each time Bonmin call this functions
> I have to do this reading stuff which I think is not good for performances.
> Unfortunately I am not very skilled in c++ so I am asking if there is a way
> to store the content of these files in some variables so that its scope covers
> all the program.

You can add more members to the problem object, that is, to the MyTMINLP
class (that is derived from the TMINLP class).
So before asking Bonmin to solve your TMINLP, you read in your files and
store its data in the TMINLP. Then you can conveniently access this data
from eval_g and others.

> - In case I can't do anything I think I can have problems with the
> queues time limit
> we have, I could be forced to stop and resume the calculation. I was
> thinking about
> fixing the number of iterations and store the solution to use it as a
> new starting
> point for the following calculations. I don't know yet the details of Bonmin
> algorithm so I wonder if this make sense.

To my knowledge, Bonmin could make use of an initial feasible solution,
so that it would have an initial cutoff value, also for some heuristics
a feasible solution can be of advantage. But I am not sure whether there
is an easy way to provide such a point to Bonmin.
But at least there is a parameter to specify a cutoff value, that is an
initial upper bound on the optimal value (in case of minimization). You
can set this value to the best solution that you might have found in a
previous run. Bonmin can then use this value to prune branch-and-bound
nodes during the search.

> -I am using multicore machines, so I wonder if it is worth to make mumps take
> advantage of that (and possibly how). Does anybody uses mumps with more
> than a core?

No idea.

Stefan



More information about the Bonmin mailing list