Fitness¶
Fitness evaluation framework.
Fitness¶
Bases: ABC, Generic[G]
Abstract base class for fitness evaluation.
Implementations define how to score genomes for a specific problem.
Source code in src/rotalabs_redqueen/core/fitness.py
evaluate(genome: G) -> FitnessResult
abstractmethod
async
¶
Evaluate a single genome.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
genome
|
G
|
Genome to evaluate |
required |
Returns:
| Type | Description |
|---|---|
FitnessResult
|
Fitness result with value, behavior, and metadata |
evaluate_batch(genomes: list[G]) -> list[FitnessResult]
async
¶
Evaluate multiple genomes.
Default implementation evaluates sequentially. Override for parallel evaluation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
genomes
|
list[G]
|
List of genomes to evaluate |
required |
Returns:
| Type | Description |
|---|---|
list[FitnessResult]
|
List of fitness results in same order |
Source code in src/rotalabs_redqueen/core/fitness.py
SyncFitness¶
Bases: Fitness[G], Generic[G]
Base class for synchronous fitness functions.
Use this when evaluation doesn't require async I/O.
Source code in src/rotalabs_redqueen/core/fitness.py
evaluate_sync(genome: G) -> FitnessResult
abstractmethod
¶
Synchronous evaluation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
genome
|
G
|
Genome to evaluate |
required |
Returns:
| Type | Description |
|---|---|
FitnessResult
|
Fitness result |
FitnessValue¶
Fitness value supporting single and multi-objective optimization.
For single-objective: use value field For multi-objective: use objectives field
Source code in src/rotalabs_redqueen/core/fitness.py
is_multi_objective: bool
property
¶
Check if this is a multi-objective fitness.
dominates(other: FitnessValue) -> bool
¶
Check if this fitness dominates another (Pareto dominance).
For single-objective: higher is better For multi-objective: dominates if >= in all objectives and > in at least one