Le 27/10/2011 14:45, Gilles Sadowski a écrit : > Hi. > > The BOBYQA optimizer takes simple bound contraints into account: > lowerBound(i) <= p(i) <= upperBound(i) 0 <= i < n > where "n" is the problem dimension. > > The parent class ("BaseMultivariateRealOptimizer") currently mandates the > following "optimize" method: > ---CUT--- > RealPointValuePair optimize(int maxEval, > FUNC f, > GoalType goalType, > double[] startPoint); > ---CUT--- > > I think that the bounds are arguments that should be passed through that > method. The current method definition is a special case: no bound > constraints (or, equivalently, all lower bounds = -infinity, all upper > bounds = +infinity). > > Thus, it seems that adding the following to the API > ---CUT--- > RealPointValuePair optimize(int maxEval, > FUNC f, > GoalType goalType, > double[] startPoint, > double[] lowerBounds, > double[] upperBounds); > ---CUT--- > is all there is to do in order to accomodate algorithms like BOBYQA.
Big +1 here ! This is exactly what I need for some ongoing work. > > I'll then add the boiler plate code the concrete base class > ("BaseAbstractScalarOptimizer") so that subclasses can access the bounds, > similar to what is done for the "startPoint" argument. > The concrete implementation of the first "optimize" will just call the new > method with "lowerBounds" and "upperBounds" set to null. Many thanks. Luc > > > Is that OK? > > > Best regards, > Gilles > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org