========================
The SDPA-Data-Format
========================
SDP-solvers typically use the standard sdpa-format (*.dat-s) for the problem
instances. For solving mixed-integer SDPs we need to extend the format. The
sdpa-format is a sparse format, so zeros can be omitted.
The format models problems in the following standard form:
min c^T*x
s.t. sum_i A_i*x_i - A_0 = Y
Y >= 0
Example:
--------------------------------------------------------------------------------
3 = number of variables
4 = number of blocks
5 5 5 -10 = block sizes, first three blocks are SDP-blocks with matrix size
5x5. Last block is an lp-block with 10 inequalities. In lp-blocks
only diagonal entries in the matrix are allowed.
0 0 1 = these are the coefficients c_i of the objective function. There
should be number of variables many.
0 5 5 5 2
1 1 1 1 5
2 2 1 4 3
3 5 5 5 1
...
*INTEGER*
*1
*3
--------------------------------------------------------------------------------
Matrix entries are given in the following format:
n b i j v
n = number of variables (0 stands for the rhs, i.e. the constant terms)
b = number of block
i j = position in matrix
v = coefficient or value
All inequalities are >=
A detailled description of the SDPA-format can be found here:
http://euler.nmt.edu/~brian/sdplib/FORMAT.
All matrices must be symmetric, so only the upper or the lower triangle of a
matrix should be given. Only one entry per variable and position is allowed.
*-------------*
* EXTENSION *
*-------------*
Our extension starts with '*INTEGER*'. This signals a new section in the
sdpa-file. Afterwards there is one line per integer variable, beginning with
a '*'. Be careful as the format is 1-based. If your variables are binary, you
have to model the bounds on the variables in an lp-block, i.e. x_i >=0 and
-x_i>=-1. Lines beginning with '*' are treated as comments by common
SDPA-readers, so they will have no problem with our files. Our extension will be
ignored.
________________________________________________________________________________
References:
[1] Borchers, Brian. SDPLIB 1.2, a library of semidefinite programming test
problems. Optimization Methods and Software, volume 11, number 1-4,
pages 683-690, 1999, doi = 10.1080/10556789908805769.