Skip to content

scikit-dsdp provides Python interface to DSDP semidefinite programming library. The DSDP package implements a dual-scaling algorithm to find solutions to linear and semidefinite optimization problems.

License

Notifications You must be signed in to change notification settings

huigangchen/scikit-dsdp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scikit-dsdp
==============

scikit-dsdp provides Python interface to DSDP semidefinite programming library. The DSDP package implements a dual-scaling algorithm to find solutions (X, y) to linear and semidefinite optimization problems of the form

inf tr(CX)
subject to AX = b
X >= 0

with (AX)_i = tr(A_iX) where X >= 0 means X is positive semidefinite, C and all A_i are symmetric matrices of the same size and b is a vector of length m.

The dual of the problem is

sup b'y
subject to A'y + S = C
S >= 0

where A'y = \sum_{i=1}^m y_i A_i.

Matrices C and A_i are assumed to be block diagonal structured, and must be specified that way (see Details).

Example
============

from pydsdp.dsdp5 import dsdp 
from numpy import matrix

A = matrix([
    [10, 4, 4, 0],
    [0, 0, 0, -8],
    [0, -8, -8, -2]])
b = matrix ([
    [48] ,
    [-8],
    [20]])
c = matrix ([
    [-11] ,
    [0] ,
    [0] ,
    [23]])
K = {} # K is a dictionary for sizes of different cones
K['s'] = [2]

result = dsdp(A, b, c, K)

Dependencies
============

scikit-dsdp depends on NumPy and SciPy.

Install
=======

This package uses distutils, which is the default way of installing python
modules. In the directory scikit-dsdp (the same as the file you are reading
now) do::

  python setup.py install

or for a local installation::

  python setup.py install --root=<DIRECTORY>

Development
===========

Code
----

You can check the latest sources with the command::

  git clone https://github.com/zhisu/scikit-dsdp.git

or if you have write privileges::

  git clone git@github.com:zhisu/scikit-dsdp.git

Testing
-------

After installation, you can launch the test suite from outside the
source directory (you will need to have the ``nose`` package installed)::

  nosetests -v dsdp

About

scikit-dsdp provides Python interface to DSDP semidefinite programming library. The DSDP package implements a dual-scaling algorithm to find solutions to linear and semidefinite optimization problems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.1%
  • Python 1.3%
  • C++ 0.6%