Configuration Classes
The ropt.config package contains the Pydantic models that
define an optimization run. Each class corresponds to a top-level section of
the configuration dictionary consumed by
EnOptContext and
BasicOptimizer.
For detailed descriptions of each field, including defaults, usage patterns, and examples, see the Configuration user-manual page.
ropt.config
Configuration classes for ensemble-based optimization.
The ropt.config module provides Pydantic-based configuration classes that
collectively define a complete optimization setup. These classes are used to
construct an EnOptContext object, which serves
as the in-memory configuration for a single optimization run.
VariablesConfig
Configuration class for optimization variables.
VariablesConfig defines optimization variable settings for an
EnOptContext object: bounds, types, mask, and
perturbation settings.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
variable_count |
int
|
Number of variables. |
lower_bounds |
Array1D
|
Lower bounds for the variables (default: \(-\infty\)). |
upper_bounds |
Array1D
|
Upper bounds for the variables (default: \(+\infty\)). |
types |
ArrayEnum
|
Optional variable types. |
mask |
Array1DBool
|
Optional boolean mask indicating free variables. |
perturbation_magnitudes |
Array1D
|
Magnitudes of the perturbations for each variable
(default:
|
perturbation_types |
ArrayEnum
|
Type of perturbation for each variable (see
|
boundary_types |
ArrayEnum
|
How to handle perturbations that violate boundary
conditions (see |
samplers |
Array1DInt
|
Indices of the samplers to use for each variable. |
seed |
ItemOrTuple[int]
|
Seed for the random number generator used by the samplers. |
transforms |
Array1DInt
|
Indices of the variable transforms to apply for each variable. |
ObjectiveFunctionsConfig
Configuration class for objective functions.
ObjectiveFunctionsConfig defines objective function settings for an
EnOptContext object.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
weights |
Array1D
|
Weights for the objective functions (default: 1.0). |
realization_filters |
Array1DInt
|
Optional indices of realization filters. |
function_estimators |
Array1DInt
|
Optional indices of function estimators. |
transforms |
Array1DInt
|
Optional indices of objective transforms. |
LinearConstraintsConfig
Configuration class for linear constraints.
LinearConstraintsConfig defines linear constraints used as the
linear_constraints field of an
EnOptContext object.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
coefficients |
Array2D
|
Matrix of coefficients for the linear constraints. |
lower_bounds |
Array1D
|
Lower bounds for the right-hand side of the constraint equations. |
upper_bounds |
Array1D
|
Upper bounds for the right-hand side of the constraint equations. |
NonlinearConstraintsConfig
Configuration class for non-linear constraints.
NonlinearConstraintsConfig defines nonlinear constraints used as the
nonlinear_constraints field of an
EnOptContext object.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
lower_bounds |
Array1D
|
Lower bounds for the right-hand-side values. |
upper_bounds |
Array1D
|
Upper bounds for the right-hand-side values. |
realization_filters |
Array1DInt
|
Optional indices of realization filters. |
function_estimators |
Array1DInt
|
Optional indices of function estimators. |
transforms |
Array1DInt
|
Optional indices of constraint transforms. |
RealizationsConfig
Configuration class for realizations.
RealizationsConfig defines realization ensemble settings for an
EnOptContext object.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
weights |
Array1D
|
Weights for the realizations (default: 1.0). |
realization_min_success |
NonNegativeInt | None
|
Minimum number of successful realizations (default: equal to the number of realizations). |
OptimizerConfig
Configuration class for the optimization algorithm.
OptimizerConfig defines workflow-level settings for an optimization run,
configured as the optimizer field of
EnOptContext.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
max_batches |
PositiveInt | None
|
Maximum number of batch evaluations (optional). |
max_functions |
PositiveInt | None
|
Maximum number of function evaluations (optional). |
output_dir |
Path | None
|
Output directory for the optimizer (optional). |
stdout |
Path | None
|
File to redirect optimizer standard output (optional). |
stderr |
Path | None
|
File to redirect optimizer standard error (optional). |
BackendConfig
Configuration class for the optimization backend.
BackendConfig defines the configuration for the optimization algorithm
used by an optimization backend plugin.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the optimization method. |
max_iterations |
PositiveInt | None
|
Maximum number of iterations (optional). |
convergence_tolerance |
NonNegativeFloat | None
|
Convergence tolerance (optional). |
parallel |
bool
|
Allow parallelized function evaluations (default: |
options |
dict[str, Any] | list[str] | None
|
Generic options for the optimizer (optional). |
GradientConfig
Configuration class for gradient calculations.
GradientConfig specifies how gradients are estimated in gradient-based
optimizers. It is used as the gradient field of
EnOptContext.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
number_of_perturbations |
PositiveInt
|
Number of perturbations (default:
|
perturbation_min_success |
PositiveInt | None
|
Minimum number of successful function evaluations
for perturbed variables (default: equal to |
merge_realizations |
bool
|
Merge all realizations for the final gradient
calculation (default: |
evaluation_policy |
Literal['speculative', 'separate', 'auto']
|
How to evaluate functions and gradients. |
FunctionEstimatorConfig
Configuration class for function estimators.
FunctionEstimatorConfig configures a function estimator plugin, which
controls how objective and constraint function values (and their gradients)
are combined across realizations.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the function estimator method. |
options |
dict[str, Any]
|
Dictionary of options for the function estimator. |
RealizationFilterConfig
Configuration class for realization filters.
RealizationFilterConfig configures a
RealizationFilter plugin that
adjusts per-realization weights.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the realization filter method. |
options |
dict[str, Any]
|
Dictionary of options for the realization filter. |
SamplerConfig
Configuration class for samplers.
SamplerConfig configures a Sampler plugin that
generates variable perturbations for gradient estimation.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the sampler method. |
options |
dict[str, Any]
|
Dictionary of options for the sampler. |
shared |
bool
|
Whether to share perturbation values between realizations (default: |
VariableTransformConfig
Configuration class for variable transforms.
VariableTransformConfig configures a
VariableTransform plugin that
transforms variables to the optimizer's domain.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the variable transform method. |
options |
dict[str, Any]
|
Dictionary of options for the variable transform method. |
ObjectiveTransformConfig
Configuration class for objective transforms.
ObjectiveTransformConfig configures an
ObjectiveTransform plugin that
transforms objective values.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the objective transform method. |
options |
dict[str, Any]
|
Dictionary of options for the objective transform method. |
NonlinearConstraintTransformConfig
Configuration class for nonlinear constraint transforms.
NonlinearConstraintTransformConfig configures a
NonlinearConstraintTransform
plugin that transforms constraint values.
See the Configuration guide for detailed descriptions and usage examples.
Attributes:
| Name | Type | Description |
|---|---|---|
method |
str
|
Name of the nonlinear constraint transform method. |
options |
dict[str, Any]
|
Dictionary of options for the nonlinear constraint transform method. |
ropt.config.constants
Default values used by the configuration classes.
See the Configuration guide for detailed explanations of these defaults and their interactions.
DEFAULT_SEED
module-attribute
Default seed for random number generators used by samplers.
DEFAULT_NUMBER_OF_PERTURBATIONS
module-attribute
Default number of perturbations for gradient estimation.
DEFAULT_PERTURBATION_MAGNITUDE
module-attribute
Default scaling factor applied to sampler-generated perturbation values.
DEFAULT_PERTURBATION_BOUNDARY_TYPE
module-attribute
Default boundary handling for perturbations that violate variable bounds.
ropt.config.options
This module defines utilities for validating plugin options.
This module provides classes and functions to define and validate options for plugins. It uses Pydantic to create models that represent the schema of plugin options, allowing for structured and type-safe configuration.
Classes:
| Name | Description |
|---|---|
OptionsSchemaModel |
Represents the overall schema for plugin options. |
MethodSchemaModel |
Represents the schema for a specific method within a plugin, including its name and options. |
OptionsSchemaModel
Bases: BaseModel
Represents the overall schema for plugin options.
This class defines the structure for describing the methods and options
available for a plugin. The methods are described in a list of
[MethodSchemaModel][ropt.config.options.MethodSchemaModel] objects, each
describing a method supported by the plugin.
Attributes:
| Name | Type | Description |
|---|---|---|
methods |
dict[str, MethodSchemaModel[Any]]
|
A list of method schemas. |
common |
list[MethodSchemaModel[Any]]
|
An optional list of method schemas that define common options shared by all methods. |
Example:
from ropt.config.options import OptionsSchemaModel
schema = OptionsSchemaModel.model_validate(
{
"methods": [
{
"options": {"a": float}
},
{
"options": {"b": int | str},
},
]
}
)
options = schema.get_options_model("method")
print(options.model_validate({"a": 1.0, "b": 1})) # a=1.0 b=1
get_options_model
Creates a Pydantic model for validating options of a specific method.
This method dynamically generates a Pydantic model tailored to validate
the options associated with a given method. It iterates through the
defined methods, collecting option schemas from those matching the
specified method name. The resulting model can then be used to
validate dictionaries of options against the defined schema.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
method
|
str
|
The name of the method for which to create the options model. |
required |
Returns:
| Type | Description |
|---|---|
type[BaseModel]
|
A Pydantic model class capable of validating options for the specified method. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the specified method is not found in the schema. |
MethodSchemaModel
Represents the schema for a specific method within a plugin.
This class defines the structure for describing one or more methods supported by a plugin. It contains a dictionary describing an option for this method.
Attributes:
| Name | Type | Description |
|---|---|---|
options |
dict[str, T]
|
A dictionary of option names and their types. |
url |
HttpUrl | None
|
An optional URL for the plugin. |
exclude |
set[str]
|
A set of common options to exclude for this method. |
title |
str | None
|
An optional title for common method sections. |
doc |
str | None
|
An optional description of the common section. |
gen_options_table
Generates a Markdown table documenting plugin options.
This function takes a schema dictionary, validates it against the
OptionsSchemaModel, and then
generates a Markdown document that summarizes the available methods and
their options. Common options are listed first, followed by a table of
method-specific options. Each row in the table represents a method, and the
columns list the method's name and its configurable options. If a URL is
provided for a method, the method name will be hyperlinked to that URL in
the table.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
schema
|
dict[str, Any]
|
A dictionary representing the schema of plugin options. |
required |
Returns:
| Type | Description |
|---|---|
str
|
A string containing the documented plugin options. |