SCIP-SDP  2.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
relax_sdp.h File Reference

SDP-relaxator. More...

Go to the source code of this file.

Functions

EXTERN SCIP_RETCODE SCIPincludeRelaxSdp (SCIP *scip)
 
EXTERN SCIP_RETCODE SCIPrelaxSdpGetPrimalBoundVars (SCIP_RELAX *relax, SCIP_Real *lbvars, SCIP_Real *ubvars, int *arraylength)
 
EXTERN SCIP_RETCODE SCIPrelaxSdpRelaxVal (SCIP_RELAX *relax, SCIP_Bool *success, SCIP_Real *objval)
 
EXTERN SCIP_RETCODE SCIPrelaxSdpGetRelaxSol (SCIP *scip, SCIP_RELAX *relax, SCIP_Bool *success, SCIP_Real *solarray, int *sollength)
 
EXTERN long int SCIPrelaxSdpGetSdpNode (SCIP_RELAX *relax)
 
EXTERN SCIP_Bool SCIPrelaxSdpSolvedOrig (SCIP_RELAX *relax)
 
EXTERN SCIP_Bool SCIPrelaxSdpSolvedProbing (SCIP_RELAX *relax)
 
EXTERN SCIP_Bool SCIPrelaxSdpIsFeasible (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNIterations (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNSdpCalls (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNSdpFast (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNSdpMedium (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNSdpStable (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNSdpPenalty (SCIP_RELAX *relax)
 
EXTERN int SCIPrelaxSdpGetNSdpUnsolved (SCIP_RELAX *relax)
 

Detailed Description

SDP-relaxator.

Author
Sonja Mars
Tristan Gally

Relaxator to solve semidefinite programs of the form

\begin{eqnarray*} \min & & b^T y \\ \mbox{s.t.} & & \sum_{j=1}^n A_j^i y_j - A_0^i \succeq 0 \quad \forall i \leq m \\ & & Dy \geq d \\ & & \ell \leq y \leq u \end{eqnarray*}

for symmetric matrices $ A_j^i \in S_{k_i} $ and a matrix $ D \in \mathbb{R}^{k_0 \times n}. $

Definition in file relax_sdp.h.

Function Documentation

EXTERN SCIP_RETCODE SCIPincludeRelaxSdp ( SCIP *  scip)
EXTERN SCIP_RETCODE SCIPrelaxSdpGetPrimalBoundVars ( SCIP_RELAX *  relax,
SCIP_Real *  lbvars,
SCIP_Real *  ubvars,
int *  arraylength 
)

gets the primal variables corresponding to the lower and upper variable-bounds in the dual problem

The last input should specify the length of the arrays. If this is less than the number of variables, the needed length will be returned and a debug message thrown.

Note
If a variable is either fixed or unbounded in the dual problem, a zero will be returned for the non-existent primal variable.
Parameters
relaxSDP-relaxator to get information for
lbvarspointer to store the values of the variables corresponding to lower bounds in the dual problems
ubvarspointer to store the values of the variables corresponding to upper bounds in the dual problems
arraylengthinput: length of lbvars and ubvars
output: number of elements inserted into lbvars/ubvars (or needed length if it wasn't sufficient)

Definition at line 1749 of file relax_sdp.c.

References SCIPsdpiGetPrimalBoundVars().

Referenced by SCIP_DECL_PROPEXEC().

EXTERN SCIP_RETCODE SCIPrelaxSdpRelaxVal ( SCIP_RELAX *  relax,
SCIP_Bool *  success,
SCIP_Real *  objval 
)

returns optimal objective value of the current SDP-relaxation if the last SDP-relaxation was successfully solved

Parameters
relaxSDP-relaxator to get objective value for
successpointer to store whether the last SDP-relaxation was solved successfully
objvalpointer to store the optimal objective value of the SDP-relaxation

Definition at line 1774 of file relax_sdp.c.

Referenced by SCIP_DECL_PROPEXEC().

EXTERN SCIP_RETCODE SCIPrelaxSdpGetRelaxSol ( SCIP *  scip,
SCIP_RELAX *  relax,
SCIP_Bool *  success,
SCIP_Real *  solarray,
int *  sollength 
)

returns values of all variables in the solution of the current SDP-relaxation if the last SDP-relaxation was successfully solved

Parameters
scipSCIP pointer
relaxSDP-relaxator to get solution for
successpointer to store whether the last SDP-relaxation was solved successfully
solarraypointer to store the solution, this has to be at least length nvars
sollengthlength of the solarray

Definition at line 1796 of file relax_sdp.c.

References SCIPsdpiGetSol().

EXTERN long int SCIPrelaxSdpGetSdpNode ( SCIP_RELAX *  relax)

get the number of the SCIP-node to which the current SDP solution belongs

Parameters
relaxSDP-relaxator to get solution for

Definition at line 1829 of file relax_sdp.c.

Referenced by SCIP_DECL_PROPEXEC().

EXTERN SCIP_Bool SCIPrelaxSdpSolvedOrig ( SCIP_RELAX *  relax)

Was the original problem solved for the last SDP-node (or a penalty or probing formulation) ?

Parameters
relaxSDP-relaxator to get solution for

Definition at line 1840 of file relax_sdp.c.

References SCIPsdpiSolvedOrig().

Referenced by SCIP_DECL_PROPEXEC().

EXTERN SCIP_Bool SCIPrelaxSdpSolvedProbing ( SCIP_RELAX *  relax)

Was the last probing SDP solved successfully ?

Parameters
relaxSDP-relaxator to get solution for

Definition at line 1857 of file relax_sdp.c.

Referenced by SCIP_DECL_HEUREXEC(), and SCIP_DECL_PROPEXEC().

EXTERN SCIP_Bool SCIPrelaxSdpIsFeasible ( SCIP_RELAX *  relax)

returns whether the last solved problem was feasible

Parameters
relaxSDP-relaxator to get feasibility for

Definition at line 1874 of file relax_sdp.c.

Referenced by SCIP_DECL_HEUREXEC(), and SCIP_DECL_PROPEXEC().

EXTERN int SCIPrelaxSdpGetNIterations ( SCIP_RELAX *  relax)

returns total number of SDP-iterations

Parameters
relaxSDP-relaxator to get the iterations for

Definition at line 1885 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().

EXTERN int SCIPrelaxSdpGetNSdpCalls ( SCIP_RELAX *  relax)

returns number of solved SDP-relaxations

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1896 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().

EXTERN int SCIPrelaxSdpGetNSdpFast ( SCIP_RELAX *  relax)

returns number of SDP-relaxations solved with fast settings

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1907 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().

EXTERN int SCIPrelaxSdpGetNSdpMedium ( SCIP_RELAX *  relax)

returns number of SDP-relaxations solved with medium settings

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1918 of file relax_sdp.c.

EXTERN int SCIPrelaxSdpGetNSdpStable ( SCIP_RELAX *  relax)

returns number of SDP-relaxations solved with stable settings

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1929 of file relax_sdp.c.

EXTERN int SCIPrelaxSdpGetNSdpPenalty ( SCIP_RELAX *  relax)

returns number of SDP-relaxations solved with penalty formulation

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1940 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().

EXTERN int SCIPrelaxSdpGetNSdpUnsolved ( SCIP_RELAX *  relax)

returns number of SDP-relaxations unsolved even when using a penalty formulation

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1951 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().