SCIP-SDP  3.0.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 SCIPrelaxSdpGetNSdpInterfaceCalls (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 1752 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 1777 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 1799 of file relax_sdp.c.

References SCIPsdpiGetSol().

EXTERN long int SCIPrelaxSdpGetSdpNode ( SCIP_RELAX *  relax)

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

Parameters
relaxSDP-relaxator to get solution for

Definition at line 1832 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 1843 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 1860 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 1877 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 1888 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().

EXTERN int SCIPrelaxSdpGetNSdpCalls ( SCIP_RELAX *  relax)

returns number of SDPs solved by SDP-solver (including multiple calls for penalty formulation etc.)

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1899 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().

EXTERN int SCIPrelaxSdpGetNSdpInterfaceCalls ( SCIP_RELAX *  relax)

returns number of solved SDP-relaxations

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 1910 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 1921 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 1932 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 1943 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 1954 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 1965 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT().