Provide a termination signal depending on how much a vector has changed,
typically applied to the distribution mean over several iterations.
The stop
property is the boolean termination signal, the update
method needs to be called in each iteration with the (changing) vector.
self.stop is True iff - delta t > threshold and - Delta x < delta * max(1, sqrt(delta t / threshold)) for at least delta t iterations.
The (iteration) threshold is computed in property time_threshold
based on the iteration count and three parameters as p1 + p2 * count**p3.
Method | __init__ |
x is the initial vector (optional), default settings are taken from CMAOptions |
Method | set |
param_values is a list conforming to CMAOptions['tolxstagnation']. |
Method | update |
caveat: this stores x as a reference |
Instance Variable | count |
Undocumented |
Instance Variable | count |
Undocumented |
Instance Variable | delta |
Undocumented |
Instance Variable | time |
Undocumented |
Instance Variable | time |
Undocumented |
Instance Variable | time |
Undocumented |
Instance Variable | x |
Undocumented |
Property | stop |
Undocumented |
Property | time |
Undocumented |
param_values
is a list
conforming to CMAOptions['tolxstagnation'].
Do nothing if param_values in (None, True), set delta = -1 if param_values is False.
None
entries in param_values
don't change the respective
parameter and [0.12] is the same as [0.12, None, None, None].
Details: In principle, 'delta'
should be propto sqrt(mu/dimension).