SeDuMi.jl

SeDuMi.jl is wrapper for the SeDuMi solver.

The wrapper has two components:

  • an exported sedumi function that is a thin wrapper on top of the sedumi MATLAB function
  • an interface to MathOptInterface

Affiliation

This wrapper is maintained by the JuMP community and is not an official wrapper of SeDuMi.

License

SeDuMi.jl is licensed under the MIT License.

The underlying solver, sqlp/sedumi is licensed under the GPL v2 license.

In addition, SeDuMi requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.

Use with JuMP

To use SeDuMi with JuMP, do:

using JuMP, SeDuMi
model = Model(SeDuMi.Optimizer)
set_attribute(model, "fid", 0)

Installation

First, make sure that you satisfy the requirements of the MATLAB.jl Julia package, and that the SeDuMi software is installed in your MATLAB™ installation.

Then, install SeDuMi.jl using Pkg.add:

import Pkg
Pkg.add("SeDuMi")

If you get the error:

Undefined function or variable 'sedumi'.

Error using save
Variable 'jx_sedumi_arg_out_1' not found.

ERROR: LoadError: MATLAB.MEngineError("failed to get variable jx_sedumi_arg_out_1 from MATLAB session")

The error means that we couldn't find the sedumi function with one output argument using the MATLAB C API.

This most likely means that you did not add SeDuMi to the MATLAB's path, that is, the toolbox/local/pathdef.m file.

If modifying toolbox/local/pathdef.m does not work, the following should work, where /path/to/sedumi/ is the directory where the sedumi folder is located:

julia> import MATLAB

julia> cd("/path/to/sedumi/") do
           MATLAB.mat"install_sedumi"
       end

julia> MATLAB.mat"savepath"