Ticket #101 (new enhancement)

Opened 6 years ago

Last modified 5 years ago

extend DESolver to use "bounce back"

Reported by: mmckerns Owned by: mmckerns
Priority: minor Milestone: mystic-0.5a
Component: mystic.solvers Keywords:


extend DESolver to use "bounce back"

from Rainer Storn:

Bounce back ensures that your parameters stay within prescribed
bounds and allows optima which are right at the bounds to be found.
The method is very simple and you may find it in the C program
on the DE homepage.

Bounce back prevents that invalid
parameters are evaluated since this can be costly.
You follow a similiar idea in lines 239-246 but as
I see it you basically discard the solution. In
bounce back an invalid solution is transformed into
a valid one:
One of the basic ideas in DE is that new vectors are generated
from existing ones. The prerequisite that existing
vectors must be valid is fulfilled during initialization
and then kept during the optimization.
If a new vector falls outside
the bounds its values are corrected such that they
fall in the range between the original vector (the base
vector) and the bounds. This is done before the
objective function is evaluated. In optimization
it can be a necessity that the parameters are
corrected this way because if the optimum lies at
the bounds there must be a way for the population
to safely move towards the bounds. Bounce back
ensures this.

Change History

comment:1 Changed 6 years ago by altafang

A method for 'bounce back' actually was already there, just not used in the solvers. I activated it in  http://dev.danse.us/trac/mystic/changeset/288. I found this as I was investigating how the parameter constraints and the bounds constraints interacted in certain situations, since sometimes there would be problems, especially in the solvers that use gradients, so I was trying to fix that.

comment:2 Changed 5 years ago by mmckerns

  • Milestone changed from mystic-0.2a2 to mystic-0.3a2
Note: See TracTickets for help on using tickets.