Optimizer Configuration#
This page covers configuration options shared across all Hyperactive optimizers.
Common Parameters#
All optimizers accept these parameters:
optimizer = SomeOptimizer(
search_space=search_space, # Required: parameter ranges
n_iter=100, # Required: number of iterations
experiment=objective, # Required: objective function
random_state=42, # Optional: for reproducibility
initialize={ # Optional: initialization settings
"warm_start": [...], # Starting points
"grid": 4, # Grid initialization points
"random": 2, # Random initialization points
"vertices": 4, # Vertex initialization points
},
)
Initialization Strategies#
Control how the optimizer initializes its search:
# Start from known good points
optimizer = HillClimbing(
search_space=search_space,
n_iter=50,
experiment=objective,
initialize={
"warm_start": [
{"param1": 10, "param2": 0.5},
{"param1": 20, "param2": 0.3},
]
},
)
# Mix of initialization strategies
optimizer = ParticleSwarmOptimizer(
search_space=search_space,
n_iter=100,
experiment=objective,
initialize={
"grid": 4, # 4 points on a grid
"random": 6, # 6 random points
"vertices": 4, # 4 corner points
},
)
Algorithm-Specific Parameters#
Many optimizers have additional parameters. Check the API Reference for details.
Example with Simulated Annealing:
from hyperactive.opt.gfo import SimulatedAnnealing
optimizer = SimulatedAnnealing(
search_space=search_space,
n_iter=100,
experiment=objective,
# Algorithm-specific parameters
# (check API reference for available options)
)
Performance Tips#
Start with baselines: Always run
RandomSearchfirst to establish a baseline and understand your objective landscape.Match iterations to complexity: Complex optimizers (Bayesian, population-based) need more iterations to show their advantages.
Consider evaluation cost: For cheap evaluations, simple optimizers work well. For expensive ones, use model-based approaches.
Use warm starts: If you have prior knowledge, warm start can significantly speed up optimization.
Set random seeds: For reproducible results, always set
random_state.