L2ODLL.BoundDecompositionMethod
BoundDecomposition(model::JuMP.Model)

Create a decomposition using z for bound constraints and y for all other constraints.

source
L2ODLL.ConvexQPMethod
ConvexQP(model::JuMP.Model)

Create a decomposition using z for the quadratic slacks and y for all constraints.

source
L2ODLL.GenericDecompositionMethod
GenericDecomposition(model::JuMP.Model, y_ref::Vector{JuMP.ConstraintRef})

Create a decomposition using z for all constraints except y_ref.

source
L2ODLL.GenericDecompositionMethod
GenericDecomposition(model::JuMP.Model)

Create a decomposition using z for Variable-in-Set constraints and y for all other constraints. Note that y includes Vector{VariableRef} (i.e. conic) constraints.

source
L2ODLL.decompose!Method
decompose!(model::JuMP.Model, decomposition::AbstractDecomposition)

Build the DLL functions using the given decomposition.

source
L2ODLL.decompose!Method
decompose!(model::JuMP.Model)

Detect the best decomposition and build the DLL functions.

source
L2ODLL.dual_objectiveMethod
dual_objective(model::JuMP.Model, y_predicted, param_value)

Evaluate the dual objective function (projection and completion).

source
L2ODLL.dual_objective_gradientMethod
dual_objective_gradient(model::JuMP.Model, y_predicted, param_value; ad_type::ADTypes.AbstractADType=DI.AutoForwardDiff())

Evaluate the gradient of the dual objective function with respect to the predicted dual variables. This includes both the projection and the completion steps.

source
L2ODLL.flatten_yMethod
flatten_y(y::AbstractVector)

Flatten a vector of y variables into a single vector, i.e. Vector{Vector{Float64}} -> Vector{Float64}.

source
L2ODLL.get_yMethod
get_y(model::JuMP.Model)

Get the primal constraints corresponding to the y variables in the decomposition.

source
L2ODLL.get_y_dualMethod
get_y_dual(model::JuMP.Model)

Get the dual variables corresponding to the y variables in the decomposition. These are VariableRefs belonging to the dual model, not the passed-in model.

source
L2ODLL.jump_builderMethod
jump_builder(decomposition::AbstractDecomposition, proj_fn::Function, dual_model::JuMP.Model, optimizer; silent=true)

Build the completion function using JuMP to solve the model.

source
L2ODLL.make_proj_fnMethod
make_proj_fn(decomposition::AbstractDecomposition, dual_model::JuMP.Model)

Create a function that projects the raw dual variable predictions onto their dual cone constraints.

source
L2ODLL.unflatten_yMethod
unflatten_y(y::AbstractVector, y_shape::AbstractVector{Int})

Unflatten a vector of flattened y variables into a vector of vectors, i.e. Vector{Float64} -> Vector{Vector{Float64}}.

source
L2ODLL.y_shapeMethod
y_shape(model::JuMP.Model)

Get the shape of the y variables in the decomposition. This is a Vector{Int} where each entry is the number of dual variables for that constraint.

source