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

Reply via email to