Skip to content
13

SDP Constraints

PortfolioOptimisers.set_sdp_constraints! Function
julia
set_sdp_constraints!(model::Model) -> Any

Add a positive semidefinite (PSD) constraint to the JuMP optimisation model for the portfolio weights.

Creates a symmetric matrix variable W and enforces that the bordered matrix [W w; wᵀ k] lies in the PSD cone. Returns immediately if W already exists in model.

Arguments

  • model::JuMP.Model: The JuMP optimisation model.

Returns

  • W: Symmetric JuMP variable matrix of size N × N.

Related

source
PortfolioOptimisers.set_sdp_frc_constraints! Function
julia
set_sdp_frc_constraints!(model::Model) -> Any

Add a positive semidefinite (PSD) constraint for factor risk contribution to the JuMP optimisation model.

Creates a symmetric matrix variable frc_W and enforces that the bordered matrix [frc_W w1; w1ᵀ k] lies in the PSD cone. Returns immediately if frc_W already exists in model.

Arguments

  • model::JuMP.Model: The JuMP optimisation model.

Returns

  • frc_W: Symmetric JuMP variable matrix of size Nf × Nf.

Related

source
PortfolioOptimisers.set_sdp_phylogeny_constraints! Function
julia
set_sdp_phylogeny_constraints!(
    model::Model,
    plgs::Union{Nothing, AbstractPhylogenyConstraintResult, AbstractVector{<:AbstractPhylogenyConstraintResult}}
)

Add semidefinite phylogeny constraints to the JuMP optimisation model.

Iterates over plgs and, for each SemiDefinitePhylogeny entry, enforces A ⊙ W = 0 and optionally adds p * tr(W) to the objective penalty. Does nothing when plgs contains no SemiDefinitePhylogeny instances.

Arguments

  • model::JuMP.Model: The JuMP optimisation model.

  • plgs: Phylogeny constraint(s). Accepts nothing, a single phylogeny, or a vector.

Returns

  • nothing.

Related

source
PortfolioOptimisers.set_sdp_frc_phylogeny_constraints! Function
julia
set_sdp_frc_phylogeny_constraints!(
    model::Model,
    plgs::Union{Nothing, Union{var"#s381", var"#s379"} where {var"#s381"<:AbstractPhylogenyConstraintEstimator, var"#s379"<:AbstractPhylogenyConstraintResult}, AbstractVector{<:Union{var"#s381", var"#s379"} where {var"#s381"<:AbstractPhylogenyConstraintEstimator, var"#s379"<:AbstractPhylogenyConstraintResult}}}
)

Add semidefinite phylogeny constraints for factor risk contribution to the JuMP optimisation model.

Iterates over plgs and, for each SemiDefinitePhylogeny entry, enforces A ⊙ frc_W = 0 and optionally adds p * tr(frc_W) to the objective penalty. Does nothing when plgs contains no SemiDefinitePhylogeny instances.

Arguments

  • model::JuMP.Model: The JuMP optimisation model.

  • plgs: Phylogeny constraint(s). Accepts nothing, a single phylogeny, or a vector.

Returns

  • nothing.

Related

source