Solver interface

Documentation for StochasticPrograms.jl's interface for structured solvers and sample-based solvers.

Index

Interface

StochasticPrograms.check_loadableFunction
check_loadable(optimizer::AbstractStructuredOptimizer, structure::AbstractStochasticStructure)

Throws an UnloadableStructure exception if structure is not loadable by optimizer.

See also: [`load_structure!`](@ref)
StochasticPrograms.load_model!Function
load_model!(optimizer::AbstractSampledOptimizer, model::StochasticModel, x₀::AbstractVector)

Instantiate the optimizer with the stochastic model and initial decision x₀.

See also: optimize!

StochasticPrograms.load_structure!Function
load_structure!(optimizer::AbstractStructuredOptimizer, structure::AbstractStochasticStructure, x₀::AbstractVector)

Instantiate the optimizer with the stochastic program represented in memory by the given structure and initial decision x₀.

See also: optimize!

StochasticPrograms.optimizer_nameMethod
optimizer_name(optimizer::AbstractStructuredOptimizer)

Optionally, return a string identifier of AbstractStructuredOptimizer.

StochasticPrograms.supports_structureMethod
supports_structure(optimizer::StochasticProgramOptimizerType, structure::AbstractStochasticStructure)

Return a Bool indicating whether optimizer supports the stochastic structure. That is, load_structure!(optimizer, structure) will not throw UnsupportedStructure

Attributes

StochasticPrograms.ExecutionType
Execution

An optimizer attribute for specifying an execution policy for a structure-exploiting algorithm. Options are:

  • Serial: Classical L-shaped (default)
  • Synchronous: Classical L-shaped run in parallel
  • Asynchronous: Asynchronous L-shaped ?Asynchronous for parameter descriptions.
StochasticPrograms.InstanceOptimizerType
InstanceOptimizer

An optimizer attribute for specifying the AbstractStructuredOptimizer/AbstractOptimizer used to solve sampled problems in sample-based procedures.

StochasticPrograms.MasterOptimizerType
MasterOptimizer

An optimizer attribute for specifying the MathOptInterface optimizer used to solve master problems arising in a structure-exploiting procedure.

StochasticPrograms.NumEEVSamplesType
NumEEVSamples

An optimizer attribute for specifying the sample size of expected-value evaluation instances in sample-based procedures.

StochasticPrograms.NumEWSSamplesType
NumEWSSamples

An optimizer attribute for specifying the sample size of wait-and-see instances in sample-based procedures.

StochasticPrograms.NumLowerTrialsType
NumLowerTrials

An optimizer attribute for specifying the number of trials used to compute lower bounds of confidence intervals in sample-based procedures.

StochasticPrograms.NumUpperTrialsType
NumUpperTrials

An optimizer attribute for specifying the number of trials used to compute upper bounds of confidence intervals in sample-based procedures.

StochasticPrograms.SubProblemOptimizerType
SubProblemOptimizer

An optimizer attribute for specifying the MathOptInterface optimizer used to solve subproblems arising in a structure-exploiting procedure.

StochasticPrograms.set_instanceoptimizer_attributeMethod
set_instanceoptimizer_attribute(stochasticmodel::StochasticModel, attr::MOI.AbstractOptimizerAttribute, value)

Sets solver-specific attribute attr of the instance optimizer to value in stochasticmodel.

StochasticPrograms.set_instanceoptimizer_attributeMethod
set_instanceoptimizer_attribute(stochasticmodel::StochasticModel, name::Union{Symbol, String}, value)

Sets solver-specific attribute of the instance optimizer identified by name to value in stochasticmodel.

StochasticPrograms.set_instanceoptimizer_attributesMethod
set_instanceoptimizer_attributes(stochasticmodel::StochasticModel, pairs::Pair...)

Given a list of attribute => value pairs or a collection of keyword arguments, calls set_instanceoptimizer_attribute(stochasticmodel, attribute, value) for each pair.

StochasticPrograms.set_masteroptimizer_attributeMethod
set_masteroptimizer_attribute(stochasticprogram::StochasticProgram, attr::MOI.AbstractOptimizerAttribute, value)

Sets solver-specific attribute attr of the master optimizer to value.

StochasticPrograms.set_masteroptimizer_attributeMethod
set_masteroptimizer_attribute(stochasticprogram::StochasticProgram, name::Union{Symbol, String}, value)

Sets solver-specific attribute of the master optimizer identified by name to value.

StochasticPrograms.set_masteroptimizer_attributesMethod
set_masteroptimizer_attributes(stochasticprogram::StochasticProgram, pairs::Pair...)

Given a list of attribute => value pairs or a collection of keyword arguments, calls set_masteroptimizer_attribute(stochasticprogram, attribute, value) for each pair.

StochasticPrograms.set_suboptimizer_attributeMethod
set_suboptimizer_attribute(stochasticprogram::StochasticProgram, attr::MOI.AbstractOptimizerAttribute, value)

Sets solver-specific attribute attr of the subproblem optimizer to value.

StochasticPrograms.set_suboptimizer_attributeMethod
set_suboptimizer_attribute(stochasticprogram::StochasticProgram, name::Union{Symbol, String}, value)

Sets solver-specific attribute of the subproblem optimizer identified by name to value.

StochasticPrograms.set_suboptimizer_attributesMethod
set_suboptimizer_attributes(stochasticprogram::StochasticProgram, pairs::Pair...)

Given a list of attribute => value pairs or a collection of keyword arguments, calls set_suboptimizer_attribute(stochasticprogram, attribute, value) for each pair.

Execution

Penalty terms

StochasticPrograms.QuadraticType
Quadratic

Functor object for using a quadratic 2-norm penalty term. Requires an AbstractMathProgSolver capable of solving QP problems. Passed by default through penalty where applicable.

StochasticPrograms.LinearizedType
Linearized

Functor object for using an approximately quadratic penalty term, through linearization. Pass through penalty where applicable.

...

Parameters

  • nbreakpoints::Int: Number of cutting planes used to approximate quadratic term

...

StochasticPrograms.InfNormType
InfNorm

Functor object for using a linear ∞-norm penalty term. Pass through penalty where applicable.