ravimohan19's picture
Upload config.py with huggingface_hub
706ff1c verified
"""Global configuration for the Physics-Informed Bayesian Optimization platform."""
from dataclasses import dataclass, field
from enum import Enum
from typing import Optional
class OptimizerBackend(Enum):
BOTORCH = "botorch"
AX = "ax"
BOFIRE = "bofire"
class AcquisitionType(Enum):
EXPECTED_IMPROVEMENT = "EI"
UPPER_CONFIDENCE_BOUND = "UCB"
PROBABILITY_OF_IMPROVEMENT = "PI"
KNOWLEDGE_GRADIENT = "KG"
NOISY_EXPECTED_IMPROVEMENT = "NEI"
PHYSICS_INFORMED_EI = "PI_EI" # Custom: penalizes physically implausible regions
@dataclass
class OptimizationConfig:
"""Configuration for a Bayesian optimization run."""
# Backend selection
backend: OptimizerBackend = OptimizerBackend.BOTORCH
# Acquisition function
acquisition_type: AcquisitionType = AcquisitionType.EXPECTED_IMPROVEMENT
# Optimization settings
n_initial_samples: int = 10
batch_size: int = 1
max_iterations: int = 50
seed: int = 42
# GP settings
use_physics_mean: bool = True
learn_noise: bool = True
noise_variance: float = 0.01
# Physics model settings
physics_model_weight: float = 1.0 # Weight of physics prior (0=pure GP, 1=full physics)
physics_constraint_penalty: float = 10.0
# Multi-fidelity settings
use_multi_fidelity: bool = False
fidelity_weights: Optional[dict] = None
# Hardware
device: str = "cpu"
dtype: str = "float64"
@dataclass
class SearchSpaceConfig:
"""Configuration for the search/parameter space."""
normalize_inputs: bool = True
standardize_outputs: bool = True
input_transform: Optional[str] = None
output_transform: Optional[str] = None