GithubHelp home page GithubHelp logo

sdpa.jl's Introduction

SDPA

Build Status References to cite
Build Status DOI
Coveralls branch Codecov branch

Julia wrapper to SDPA semidefinite programming solver. Write SDPASolver() to use this solver with JuMP, Convex or any other package using the MathProgBase interface.

Parameters

SDPA has 10 parameters that can be set separately using, e.g. SDPASolver(MaxIteration=100) to set the parameter with name MaxIteration at the value 100. SDPA has 3 modes that give values to all 10 parameters. By default, we put SDPA in the PARAMETER_DEFAULT mode. The three modes are as follow:

Mode Name
Default PARAMETER_DEFAULT
Fast PARAMETER_UNSTABLE_BUT_FAST
Slow PARAMETER_STABLE_BUT_SLOW

To set the SDPA solver in a mode you do, e.g. SDPASolver(Mode=PARAMETER_UNSTABLE_BUT_FAST). Note that the parameters are set in the order they are given so you can set it in a mode and then modify one parameter from this mode, e.g. SDPASolver(Mode=PARAMETER_UNSTABLE_BUT_FAST, MaxIteration=1000).

The following table gives the default value for each parameter.

Parameter name Default Fast Slow
MaxIteration 100 100 1000
EpsilonStar 1.0e-7 1.0e-7 1.0e-7
LambdaStar 1.0e+2 1.0e+2 1.0e+4
OmegaStar 2.0 2.0 2.0
LowerBound 1.0e+5 1.0e+5 1.0e+5
UpperBound 1.0e+5 1.0e+5 1.0e+5
BetaStar 0.1 0.01 0.1
BetaBar 0.2 0.02 0.3
GammaStar 0.9 0.95 0.8
EpsilonDash 1.0e-7 1.0e-7 1.0e-7

Installation

The package is registered in METADATA.jl and so can be installed with Pkg.add.

julia> import Pkg; Pkg.add("Clp")

SDPA.jl will use BinaryProvider.jl to automatically install the SDPA binaries for Linux and OS X. This should work for both the official Julia binaries from https://julialang.org/downloads/ and source-builds that used gcc versions 7 or 8.

NOTE: If you see an error similar to

INFO: Precompiling module GZip.
ERROR: LoadError: LoadError: error compiling anonymous: could not load library "libz"

please see GZip.jl#54 or Flux.jl#343. In particular, in Ubuntu this issue may be resolved by running

sudo apt-get install zlib1g-dev

Custom Installation

To install custom built SDPA binaries set the environmental variable JULIA_SDPA_LIBRARY_PATH and call import Pkg; Pkg.build("SDPA"). For instance, if the libraries are installed in /opt/lib, then call

ENV["JULIA_SDPA_LIBRARY_PATH"] = "/opt/lib"
import Pkg; Pkg.build("SDPA")

If you do not want BinaryProvider to download the default binaries on install, set JULIA_SDPA_LIBRARY_PATH before calling import Pkg; Pkg.add("SDPA").

To switch back to the default binaries clear JULIA_SDPA_LIBRARY_PATH and call import Pkg; Pkg.build("SDPA").

sdpa.jl's People

Contributors

blegat avatar juan-pablo-vielma avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.