SDPAFamily.jl

A Julia interface to the SDPA-GMP, SDPA-DD, and SDPA-QD high precision semidefinite programming solvers.
Author ericphanson
Popularity
13 Stars
Updated Last
9 Months Ago
Started In
July 2019

SDPAFamily

CI Codecov

Note: v0.3.0 was released, which updates the package for MOI v1. This is also disables the presolve in all cases (even if it is set to true), which can cause incorrect results. See issue #67 which tracks the status of restoring presolve functionality.

An interface to using SDPA-GMP, SDPA-DD, and SDPA-QD in Julia (http://sdpa.sourceforge.net). This package is registered in the General registry; to install, type ] in the Julia command prompt, then enter

pkg> add SDPAFamily

Call SDPAFamily.Optimizer() to use this wrapper via MathOptInterface, which is an intermediate layer between low-level solvers (such as SDPA-GMP, SDPA-QD, and SDPA-DD) and high level modelling languages, such as JuMP.jl and Convex.jl.

Convex.jl 0.13+ supports MathOptInterface and can be used to solve problems with the solvers from this package.

JuMP currently only supports Float64 numeric types, which means that problems can only be specified to 64-bits of precision, and results can only be recovered at that level of precision, when using JuMP. This is tracked in the issue JuMP#2025.

Quick Example

Here is a simple optimization problem formulated with Convex.jl:

using SDPAFamily, LinearAlgebra
using Convex
y = Semidefinite(3)
p = maximize(eigmin(y), tr(y) <= 5; numeric_type = BigFloat)
solve!(p, () -> SDPAFamily.Optimizer(presolve=true))
@show p.optval

See the documentation linked above for troubleshooting help and usage information.

Used By Packages

No packages found.