Skip to content

JuliaFirstOrder/StructuredOptimization.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2620090 · Mar 28, 2019
Jun 15, 2018
May 24, 2018
Mar 28, 2019
Mar 28, 2019
Mar 28, 2019
Mar 8, 2019
Mar 8, 2019
Mar 8, 2018
Oct 4, 2018
Mar 8, 2019
Mar 8, 2019

Repository files navigation

StructuredOptimization.jl

Build Status Build status codecov

StructuredOptimization.jl is a high-level modeling language that utilizes a syntax that is very close to the mathematical formulation of an optimization problem.

This user-friendly interface acts as a parser to utilize three different packages:

StructuredOptimization.jl can handle large-scale convex and nonconvex problems with nonsmooth cost functions.

It supports complex variables as well.

Installation

To install the package, hit ] from the Julia command line to enter the package manager, then

pkg> add StructuredOptimization

Usage

A least absolute shrinkage and selection operator (LASSO) can be solved with only few lines of code:

julia> using StructuredOptimization

julia> n, m = 100, 10;                # define problem size

julia> A, y = randn(m,n), randn(m);   # random problem data

julia> x = Variable(n);               # initialize optimization variable

julia> λ = 1e-2*norm(A'*y,Inf);       # define λ    

julia> @minimize ls( A*x - y ) + λ*norm(x, 1); # solve problem

julia> ~x                             # inspect solution
100-element Array{Float64,1}:
  0.0
  0.0
  0.0
  0.440254
  0.0
  0.0
  0.0
[...]

See the documentation for more details about the type of problems StructuredOptimization.jl can handle and the demos to check out some examples.