[Ipopt] round(x,n) in objective function

Hans Pirnay hans.pirnay at rwth-aachen.de
Thu Jun 7 11:53:15 EDT 2012


>
> I have discrete variables in the beginning. They represent switch position.
> They are relaxed into continuous variables. Hence my problem now an NLP
> which Iopt solves very well. It is important in practice to limit number of
> switching i.e. change of discrete values. SO i want to convert the
> continuous result into discrete values and calculate the number of
> switching.

It looks like you are implementing a heuristic solver for non-linear
mixed-integer problems with your round-function. Have you tried
modeling your problem as an MINLP? There are free solvers available
based on Ipopt such as Couenne and Bonmin. If you don't have those
available on your machine, you can try them out on the neos server

http://neos.mcs.anl.gov/neos/solvers/minco:Bonmin/AMPL.html

I would first try if an MINLP solver can tackle your problem before
going down the path of heuristic solutions. However, if it should turn
out that the MINLP solvers don't work for you, there are some other
generic heuristics for transforming MINLPs into NLPs such as using the
Fischer-Burmeister nonlinear complementarity function (see
http://www.springerlink.com/content/r52321kw4641x612/ )

hope this helps

Hans



More information about the Ipopt mailing list