`ade.de.FManager(object)`

class documentation

Part of `ade.de`

(View In Hierarchy)
I manage the mutation coefficient *F* for adaptive differential
evolution.

`Population`

constructs an instance of me with an initial value (or range of values) for
*F*, the crossover probability *CR*, and the population size
*Np*.

If you want the lower bound of F to be the critical value for my
*CR* and *Np*, set it to zero, like this: `(0, 1)`

. I
will not run in adaptive mode in that case, ignoring the keyword
setting.

Parameters | adaptive | Set `True` to use adaptive mode. My attribute scale is
the amount to scale F down by with each call to `down` . A single F value
will shrink slower than the lower end of a uniform random variate range. |

Instance Variable | limited | Gets set `True` when a call to `down` failed to reduce F
anymore, and gets reset to `False` if and when `up` gets called thereafter. |

Method | __init__ | FManager(F, CR, Np, adaptive=False) |

Method | __repr__ | My string representation is just my F value or range. |

Method | lowest 0 | Property: The lower bound or sole value of F. |

Method | lowest | Property setter for the lower bound or sole value of F. |

Method | highest 0 | Property: The upper bound or sole value of F. |

Method | highest | Property setter for the upper bound or sole value of F. |

Method | get | Returns F if it is a single coefficient, or a uniform variate in
U(F[0], F[1]) otherwise. |

Method | down | Adapts F downward. Call this when none of your challengers are
winning their tournaments. |

Method | up | Adapt F upward. Call this when at least one of your challengers
has won its tournament. |

Returns *F* if it is a single coefficient, or a uniform variate in
U(F[0], F[1]) otherwise.

If I am running in adaptive mode, returns the adapted value of *F*.
Otherwise, always returns the original value you provided to my constructor
and the adapting is done just to determine if my (hidden) *F* value
has reached its lower limit.

Adapts *F* downward. Call this when none of your challengers are
winning their tournaments.

If *F* is a range for uniform variates, the lower limit is what is
adjusted downward. If the lower limit reaches the critical value, then the
upper limit begins to adjust downward as well, keeping it above the lower
limit.

The critical value was defined by Zaharie, as described in Das and Suganthan, "Differential Evolution: A Survey of the State-of-the-Art," IEEE Transactions on Evolutionary Computation, Vol. 15, No. 1, Feb. 2011.