File size: 1,066 Bytes
2920e7a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | """Factory function to create optimizer backends."""
from physics_informed_bo.config import OptimizationConfig, OptimizerBackend
from physics_informed_bo.optimizers.base_optimizer import BaseOptimizer
from physics_informed_bo.optimizers.botorch_optimizer import BoTorchOptimizer
from physics_informed_bo.optimizers.ax_optimizer import AXOptimizer
from physics_informed_bo.optimizers.bofire_optimizer import BoFireOptimizer
def create_optimizer(config: OptimizationConfig) -> BaseOptimizer:
"""Create an optimizer backend based on the configuration.
Args:
config: Optimization configuration specifying the backend.
Returns:
An initialized optimizer backend.
"""
if config.backend == OptimizerBackend.BOTORCH:
return BoTorchOptimizer(config)
elif config.backend == OptimizerBackend.AX:
return AXOptimizer(config)
elif config.backend == OptimizerBackend.BOFIRE:
return BoFireOptimizer(config)
else:
raise ValueError(f"Unsupported backend: {config.backend}")
|