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: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]