luca.bertagna84 at gmail.com
Tue Aug 16 15:31:18 EDT 2016
I am running an optimization problem with ROL from Piro, and I can't seem
to make the bound constraint work. In particular, after a few iterations,
one of my variables becomes smaller than 0 (my lower bound being 0). I can
avoid this by specifying an initial step size smaller than 1 in the sublist
ROLOptions->Step->LineSearch, which however is not optimal, because it
forces me to take more steps, and may even cause premature "convergence",
due to a decrease in the step length (at every step). Notice that the
lower/upper bounds for my variable is correctly specified (I printed them
on screen from Piro, right before ROL is run).
It basically looks as if ROL does not prune variables that are out of the
bounds (which is the behavior I would expect and want) when it computes the
initial guess in the direction provided by the step (in my case, Secant),
that is, it does not prune x_0+p when it computes f(x_0+p), where p is the
descent direction. But perhaps I am misunderstanding how
ROL::BoundConstraint works, and it actually aims to do something different.
In which case my question becomes: how can I enforce that my optimization
variable will NEVER go below the desired lower bound? What are the ROL
options I must make sure are set in the input parameter list (of either the
algorithm, the step or the line search)?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Trilinos-Users