EvalPulseCountFitness.py#

Oscillation pulse-count fitness evaluator.

Fitness is computed as the inverse distance from a target pulse count. Used with EvaluateFitness via the FitnessEvaluator protocol:

evaluator = EvalPulseCountFitness(target=1000, plot_data_recorder=recorder)
EvaluateFitness(evaluator)
class EvaluateFitness.EvalPulseCountFitness.EvalPulseCountFitness(target: int, plot_data_recorder: PlotDataRecorder)[source]#

Evaluate fitness based on how close measured pulse counts are to a target.

For each individual the minimum fitness across all samples is used, where fitness = 1 when pulses == target, 0 when pulses == 0, and 1 / abs(target - pulses) otherwise.

__init__(target: int, plot_data_recorder: PlotDataRecorder)[source]#

Create an evaluator targeting target pulses.

calculate_error(err: Exception, index: int, src_pop: str) float[source]#

Return zero fitness when measurement fails.

calculate_success(data: list[int], index: int, src_pop: str) float[source]#

Return the minimum fitness across all pulse-count samples in data.

end_eval()[source]#

Called after evaluating a generation (no-op for pulse count).

start_eval()[source]#

Called before evaluating a generation (no-op for pulse count).