Skip to content

Facade

Top-level entry points for the surrox pipeline.

surrox.run(problem, dataframe, surrogate_config=TrainingConfig(), optimizer_config=OptimizerConfig(), analysis_config=AnalysisConfig(), scenario=None)

Run the full surrox pipeline: train surrogates, optimize, and analyze.

Parameters:

Name Type Description Default
problem ProblemDefinition

Declarative problem definition with variables, objectives, and constraints.

required
dataframe DataFrame

Historical data matching the problem definition.

required
surrogate_config TrainingConfig

Surrogate training configuration.

TrainingConfig()
optimizer_config OptimizerConfig

Optimizer configuration.

OptimizerConfig()
analysis_config AnalysisConfig

Analysis configuration.

AnalysisConfig()
scenario Scenario | None

Optional scenario fixing context variables to specific values.

None

Returns:

Type Description
SurroxResult

A tuple of the optimization and analysis result, and an analyzer for

Analyzer

on-demand detail analyses (SHAP, PDP/ICE, What-If).

surrox.run_scenarios(problem, dataframe, scenarios, surrogate_config=TrainingConfig(), optimizer_config=OptimizerConfig(), analysis_config=AnalysisConfig())

Run the full surrox pipeline for multiple scenarios and compare results.

Trains surrogates once, then optimizes and analyzes each scenario independently. Produces a cross-scenario comparison alongside per-scenario results.

Parameters:

Name Type Description Default
problem ProblemDefinition

Declarative problem definition with variables, objectives, and constraints.

required
dataframe DataFrame

Historical data matching the problem definition.

required
scenarios dict[str, Scenario]

Named scenarios mapping to Scenario objects. Must contain at least 2.

required
surrogate_config TrainingConfig

Surrogate training configuration.

TrainingConfig()
optimizer_config OptimizerConfig

Optimizer configuration.

OptimizerConfig()
analysis_config AnalysisConfig

Analysis configuration.

AnalysisConfig()

Returns:

Type Description
ScenariosResult

A tuple of the scenarios result (per-scenario results + comparison),

dict[str, Analyzer]

and a dict mapping scenario names to their analyzers.

Raises:

Type Description
SurroxError

If fewer than 2 scenarios are provided.