[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