SCIP-SDP  3.2.0
Functions
relax_sdp.h File Reference

SDP-relaxator. More...

Go to the source code of this file.

Functions

SCIP_EXPORT SCIP_RETCODE SCIPincludeRelaxSdp (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPrelaxSdpComputeAnalyticCenters (SCIP *scip, SCIP_RELAX *relax)
 
SCIP_EXPORT SCIP_RETCODE SCIPrelaxSdpGetPrimalBoundVars (SCIP_RELAX *relax, SCIP_Real *lbvars, SCIP_Real *ubvars, int *arraylength)
 
SCIP_EXPORT SCIP_RETCODE SCIPrelaxSdpRelaxVal (SCIP_RELAX *relax, SCIP_Bool *success, SCIP_Real *objval)
 
SCIP_EXPORT SCIP_RETCODE SCIPrelaxSdpGetRelaxSol (SCIP *scip, SCIP_RELAX *relax, SCIP_Bool *success, SCIP_Real *solarray, int *sollength)
 
SCIP_EXPORT long int SCIPrelaxSdpGetSdpNode (SCIP_RELAX *relax)
 
SCIP_EXPORT SCIP_Bool SCIPrelaxSdpSolvedOrig (SCIP_RELAX *relax)
 
SCIP_EXPORT SCIP_Bool SCIPrelaxSdpSolvedProbing (SCIP_RELAX *relax)
 
SCIP_EXPORT SCIP_Bool SCIPrelaxSdpIsFeasible (SCIP_RELAX *relax)
 
SCIP_EXPORT SCIP_Bool SCIPrelaxSdpIsUnbounded (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNIterations (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpCalls (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpInterfaceCalls (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpFast (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpMedium (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpStable (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpPenalty (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSdpUnsolved (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterHolds (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterFails (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterInfeasible (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterUnknown (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNprimalSlaterHolds (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNprimalSlaterFails (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNprimalSlaterUnknown (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHolds (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsFast (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsStable (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsPenalty (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsBounded (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsUnsolved (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFails (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsFast (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsStable (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsPenalty (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsBounded (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsUnsolved (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleFast (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleStable (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasiblePenalty (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleBounded (SCIP_RELAX *relax)
 
SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleUnsolved (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

SCIP_EXPORT SCIP_RETCODE SCIPincludeRelaxSdp ( SCIP *  scip)
SCIP_EXPORT SCIP_RETCODE SCIPrelaxSdpComputeAnalyticCenters ( SCIP *  scip,
SCIP_RELAX *  relax 
)

computes analytic centers of primal and dual feasible set and saves them in relaxdata

Note
This function should be called at the end of the root node (or at least after the solving stage starts and before the first non-root node).
Parameters
scipSCIP data structure
relaxSDP-relaxator to compute analytic centers for

Definition at line 4551 of file relax_sdp.c.

References putLpDataInInterface(), putSdpDataInInterface(), SCIP_SDPSOLVERSETTING_UNSOLVED, SCIPconsSdpComputeSparseSdpMatrix(), SCIPconsSdpComputeUbSparseSdpMatrixLength(), SCIPconsSdpGetBlocksize(), SCIPsdpiDoesWarmstartNeedPrimal(), SCIPsdpiGetPrimalMatrix(), SCIPsdpiGetPrimalNonzeros(), SCIPsdpiGetSol(), SCIPsdpiIsDualFeasible(), SCIPsdpiIsPrimalFeasible(), SCIPsdpiSolve(), SCIPsdpiSolvedOrig(), SCIPsdpiWasSolved(), SCIPsdpVarfixerSortRowCol(), SCIPsdpVarmapperGetNVars(), and updateSDPStatistics().

Referenced by SCIP_DECL_PROPEXEC().

SCIP_EXPORT 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 4972 of file relax_sdp.c.

References SCIPsdpiGetPrimalBoundVars().

Referenced by SCIP_DECL_PROPEXEC().

SCIP_EXPORT 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 4997 of file relax_sdp.c.

Referenced by SCIP_DECL_PROPEXEC().

SCIP_EXPORT 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 5019 of file relax_sdp.c.

References SCIPsdpiGetSol().

SCIP_EXPORT 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 5052 of file relax_sdp.c.

Referenced by SCIP_DECL_PROPEXEC().

SCIP_EXPORT 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 5063 of file relax_sdp.c.

References SCIPsdpiSolvedOrig().

Referenced by SCIP_DECL_PROPEXEC().

SCIP_EXPORT SCIP_Bool SCIPrelaxSdpSolvedProbing ( SCIP_RELAX *  relax)

Was the last probing SDP solved successfully ?

Parameters
relaxSDP-relaxator to get solution for

Definition at line 5080 of file relax_sdp.c.

Referenced by SCIP_DECL_HEUREXEC(), and SCIP_DECL_PROPEXEC().

SCIP_EXPORT SCIP_Bool SCIPrelaxSdpIsFeasible ( SCIP_RELAX *  relax)

returns whether the last solved problem was feasible

Parameters
relaxSDP-relaxator to get feasibility for

Definition at line 5097 of file relax_sdp.c.

Referenced by SCIP_DECL_HEUREXEC(), and SCIP_DECL_PROPEXEC().

SCIP_EXPORT SCIP_Bool SCIPrelaxSdpIsUnbounded ( SCIP_RELAX *  relax)

returns whether the last solved problem was unbounded

Parameters
relaxSDP-relaxator to check for unboundedness

Definition at line 5108 of file relax_sdp.c.

References SCIPsdpiIsDualUnbounded().

Referenced by SCIP_DECL_PROPEXEC().

SCIP_EXPORT int SCIPrelaxSdpGetNIterations ( SCIP_RELAX *  relax)

returns total number of SDP-iterations

Parameters
relaxSDP-relaxator to get the iterations for

Definition at line 5125 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT 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 5136 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSdpInterfaceCalls ( SCIP_RELAX *  relax)

returns number of solved SDP-relaxations

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 5147 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSdpFast ( SCIP_RELAX *  relax)

returns number of SDP-relaxations solved with fastest settings

Parameters
relaxSDP-relaxator to get the number of calls for

Definition at line 5158 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT 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 5169 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT 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 5180 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT 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 5191 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT 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 5202 of file relax_sdp.c.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterHolds ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which dual Slater condition held

Parameters
relaxSDP-relaxator to get number for

Definition at line 5213 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterFails ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which dual Slater condition failed

Parameters
relaxSDP-relaxator to get number for

Definition at line 5224 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterInfeasible ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which dual Slater condition showed infeasibility

Parameters
relaxSDP-relaxator to get number for

Definition at line 5235 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNdualSlaterUnknown ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which dual Slater condition could not be determined

Parameters
relaxSDP-relaxator to get number for

Definition at line 5246 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNprimalSlaterHolds ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which primal Slater condition held

Parameters
relaxSDP-relaxator to get number for

Definition at line 5257 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNprimalSlaterFails ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which primal Slater condition failed

Parameters
relaxSDP-relaxator to get number for

Definition at line 5268 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNprimalSlaterUnknown ( SCIP_RELAX *  relax)

returns number of SDP-relaxations for which primal Slater condition could not be determined

Parameters
relaxSDP-relaxator to get number for

Definition at line 5279 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHolds ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition holding for primal and dual

Parameters
relaxSDP-relaxator to get number for

Definition at line 5290 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsFast ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition holding for primal and dual, solved with fastest settings

Parameters
relaxSDP-relaxator to get number for

Definition at line 5301 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsStable ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition holding for primal and dual, solved with stable settings

Parameters
relaxSDP-relaxator to get number for

Definition at line 5312 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsPenalty ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition holding for primal and dual, solved with penalty formulation

Parameters
relaxSDP-relaxator to get number for

Definition at line 5323 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsBounded ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition holding for primal and dual, for which an infeasible lower bound could be computed

Parameters
relaxSDP-relaxator to get number for

Definition at line 5334 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterHoldsUnsolved ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition holding for primal and dual, unsolved even when using a penalty formulation

Parameters
relaxSDP-relaxator to get number for

Definition at line 5345 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFails ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition failing for primal or dual

Parameters
relaxSDP-relaxator to get number for

Definition at line 5356 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsFast ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition failing for primal or dual, solved with fast settings

Parameters
relaxSDP-relaxator to get number for

Definition at line 5367 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsStable ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition failing for primal or dual, solved with stable settings

Parameters
relaxSDP-relaxator to get number for

Definition at line 5378 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsPenalty ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition failing for primal or dual, solved with penalty formulation

Parameters
relaxSDP-relaxator to get number for

Definition at line 5389 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsBounded ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition failing for primal or dual, for which an infeasible lower bound could be computed

Parameters
relaxSDP-relaxator to get number for

Definition at line 5400 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterFailsUnsolved ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slater condition failing for primal or dual, unsolved even when using a penalty formulation

Parameters
relaxSDP-relaxator to get number for

Definition at line 5411 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleFast ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slatercheck showing infeasibility, solved with fast settings

Parameters
relaxSDP-relaxator to get number for

Definition at line 5422 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleStable ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slatercheck showing infeasibility, solved with stable settings

Parameters
relaxSDP-relaxator to get number for

Definition at line 5433 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasiblePenalty ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slatercheck showing infeasibility, solved with penalty formulation

Parameters
relaxSDP-relaxator to get number for

Definition at line 5444 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleBounded ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slatercheck showing infeasibility, for which an infeasible lower bound could be computed

Parameters
relaxSDP-relaxator to get number for

Definition at line 5455 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().

SCIP_EXPORT int SCIPrelaxSdpGetNSlaterInfeasibleUnsolved ( SCIP_RELAX *  relax)

returns number of SDP-relaxations with Slatercheck showing infeasibility, unsolved even when using a penalty formulation

Parameters
relaxSDP-relaxator to get number for

Definition at line 5466 of file relax_sdp.c.

Referenced by SCIP_DECL_TABLEOUTPUT().