Rates
Rates are used to control the application frequency of alters. They can be static (fixed) or dynamic (changing over time). Radiate provides several built-in rate strategies to help you fine-tune the behavior of the alterers. Each mutator and crossover in Radiate accepts a rate parameter. In Python, the rate parameter can be either a float (for fixed rates) or an instance of the Rate class (for dynamic rates). In Rust, the rate parameter is anything that implements Into<Rate>. Below we can see the available rate strategies generated by the code snippet:
Fixed
- Purpose: Applies a constant rate throughout the evolution process - this is the default behavior and can be thought of as the "standard" rate.
Linear
- Purpose: Gradually changes the rate from a starting value to an ending value over a specified duration, allowing for a smooth transition in the application frequency of the alterer.
Stepwise
- Purpose: Changes the rate at specified intervals, allowing for abrupt changes in the application frequency of the alterer.
Sine Cyclical
- Purpose: Oscillates the rate between a minimum and maximum value over a specified period, allowing for periodic changes in the application frequency of the alterer.
Triangular Cyclical
- Purpose: Oscillates the rate between a minimum and maximum value over a specified period using a triangular wave, allowing for periodic changes in the application frequency of the alterer.
Exponential
- Purpose: Changes the rate exponentially from a starting value to an ending value over a specified duration, allowing for rapid changes in the application frequency of the alterer.