Skip to content

cursorinsight/StructuredOptimization.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StructuredOptimization.jl

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.

About

Structured optimization in Julia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 100.0%