Execution and evaluation#
On the existing Stage-based path, the Initializer creates the initial population and the OptimizationStrategy advances the work for each generation. The Algorithm generates candidates, the SurrogateManager and AcquisitionFunction predict and score them, and the Evaluator performs the expensive true evaluation. The results update the Algorithm’s population and Archive, and generation processing repeats until Termination meets its stopping condition.
Pipeline flow#
The diagram shows the data flow from initialization through the termination check. A configuration without a Surrogate can omit prediction and scoring.
flowchart TD
INIT["Initializer<br/>Create initial population"] --> STEP
subgraph STEP["OptimizationStrategy.step()<br/>Process one generation"]
direction TB
ASK["Algorithm.ask()<br/>Generate candidates"] --> PREDICT["SurrogateManager.predict()<br/>Predict"]
PREDICT --> SCORE["AcquisitionFunction<br/>Score candidates"]
SCORE --> SEL["Select candidates for true evaluation"]
SEL --> EVAL["Evaluator → Problem<br/>Expensive evaluation"]
EVAL --> TELL["Algorithm.tell()<br/>Update population"]
end
STEP --> TERM{"Termination?"}
TERM -- "No" --> STEP
TERM -- "Yes" --> RESULT([Result])
EVAL -- "Evaluated points" --> ARC[("Archive")]
ARC -. "Training data" .-> PREDICT
Each Stage emits typed events through the CallbackManager. This lets you observe progress or swap behavior at runtime without subclassing a Stage.
Component roles#
Component |
Role |
|---|---|
Defines the objective function, design variables, search bounds, constraints, and optimization direction. |
|
Creates the initial population and Archive before the loop starts. |
|
Generates candidates with |
|
Builds one generation’s processing and decides which candidates receive true evaluation. |
|
Coordinates Surrogate training and prediction. |
|
Predicts from training data; it does not define scoring. |
|
Converts predictions into scores for candidate selection. |
|
Evaluates the objective function sequentially or in parallel. |
|
Holds evaluated individuals and population data. |
|
Determines when generation processing ends. |
|
Observes and records events from the entire pipeline. |
Choose how to create the initial population and Archive.
Run sequential and parallel objective evaluations.
Assemble candidate generation, prediction, evaluation planning, and state updates.
Combine stopping conditions such as evaluation and generation limits.