There are three separate questions here:
1) Are your decision variables real or integer valued? If they are
integer-valued (this is what people usually call "integer programming"), then
NLopt cannot handle it (at best, NLopt can solve a continuous relaxation of the
problem).
2) As formulated, you have a discontinuous constraint function. Some of the
algorithms in NLopt require continuous (and often differentiable) functions,
but there are a few (e.g. the genetic algorithms) that don't. However, the
algorithms that don't require continuity are typically much slower to converge
than algorithms that can exploit continuity (& especially algorithms using
derivatives). You are better off if you can formulate as many of the
constraints as possible in a continuous fashion. If you have a constraint that
for some reason cannot be expressed in a continuous fashion, you might be
better off by approximating it by a continuous one (replace the discontinuity
by a steep but continuous barrier), optimize this, and then increase the
steepness of the barrier and re-optimize, repeating until it converges to the
discontinuous result.
3) NLopt only optimizes a single objective, so you need to formulate your
problem in this form. This is often referred to as scalarizing the objective,
e.g. see:
http://en.wikipedia.org/wiki/Multi-objective_optimization#Scalarizing_multiobjective_optimization_problems
More generally, you probably need to define more precisely what you mean, as
multi-objective optimization is a bit ambiguous. e.g. do you want the diameter
of the feasible region?
On Apr 24, 2013, at 9:49 AM, Quan <[email protected]> wrote:
> I have an optimization problem which I considered it as a mixed integer and a
> multiobjective OPT one:
>
> Assume that, I have a system S = S(x1,x2,...,xm,r1,r2,...,rp).
> With each set of R, I can determine the vector X = g(R). Then compute the
> value of f(X):
> f(X) = {0,1} ; f(X) = 0 if any xi violates certain constraints, f(X) = 1, if
> all xi satisfy those constraints. Here, X = (x1,x2,...,xm)
> Note that, some of the constraints cannot be expressed as a (continuous)
> function of R. That is why I govern them as a logic function.
>
> My goals are to find minimum and maximum values of the decision variables R =
> (r1,r2,...,rp)
>
> (minimize + maximize) R
>
> subject to: { f(X) = 1 }
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss