OptimizationConfig

YAML configuration loader for optimization runs.

Loads and validates optimization configuration from YAML files, supporting parameter spaces, recipe references, and settings.

See ADR-011 for architecture decisions.

Classes

class ParameterSpec

Specification for a parameter to optimize.

Supports int, float, and categorical parameter types with ranges, steps, and choices.

Methods:

from_dict()

Create ParameterSpec from config dictionary.

class RecipeSpec

Specification for a recipe to optimize.

class OptimizationConfig

Complete optimization configuration.

Loaded from YAML config files, this class contains all settings needed to run an optimization study.

Example YAML:

version: “1.0” name: “Tumor Optimization” settings:

n_trials: 100 sampler: “tpe” pruner: “hyperband”

recipes:
  • path: “recipes/brain_tumor_1.py” gold_standard: “gold_standards/tumor.seg.nrrd”

parameter_space:
global:

edge_sensitivity: {type: int, range: [20, 80], step: 10}

Methods:

load()

Load configuration from YAML file.

validate()

Validate configuration.

to_dict()

Convert to dictionary for serialization.

save()

Save configuration to YAML file.

Functions

from_dict()

Create ParameterSpec from config dictionary.

Args:

name: Parameter name. spec: Dictionary with type, range/choices, etc.

Returns:

ParameterSpec instance.

load()

Load configuration from YAML file.

Args:

config_path: Path to YAML config file.

Returns:

Loaded OptimizationConfig.

Raises:

FileNotFoundError: If config file doesn’t exist. ValueError: If config is invalid. ImportError: If PyYAML is not installed.

validate()

Validate configuration.

Returns:

List of validation error messages (empty if valid).

to_dict()

Convert to dictionary for serialization.

Returns:

Configuration as dictionary.

save()

Save configuration to YAML file.

Args:

output_path: Path where to save config.

Raises:

ImportError: If PyYAML is not installed.

create_default_config()

Create a default optimization configuration.

Returns:

Default OptimizationConfig with reasonable settings.