Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-12 08:24:56

0001 """Optimizer configuration models.
0002 
0003 Defines the canonical top-level ``optimizer`` section used by full AID2E
0004 configuration files. Problem objectives and problem/design constraints live in
0005 the ``problem`` section; optimizer configuration is limited to backend
0006 selection and backend-specific parameters.
0007 """
0008 
0009 from __future__ import annotations
0010 
0011 from typing import Any, Dict, Optional
0012 
0013 from pydantic import BaseModel, ConfigDict, Field
0014 
0015 from .optimization_registry import get
0016 
0017 
0018 class OptimizerConfiguration(BaseModel):
0019     """Canonical optimizer section model."""
0020 
0021     model_config = ConfigDict(extra="forbid")
0022 
0023     name: str = Field(..., description="Optimizer/backend name, for example 'ax'.")
0024     type: str = Field(..., description="Optimizer family, for example 'bayesian'.")
0025     parameters: Dict[str, Any] = Field(
0026         default_factory=dict,
0027         description="Optimizer runtime parameters and backend-specific settings.",
0028     )
0029 
0030     def parse_algorithm_params(self) -> Optional[BaseModel]:
0031         """Parse registered backend-specific parameters if a model exists."""
0032         model = get(self.name)
0033         if model:
0034             return model(**(self.parameters or {}))
0035         return None