SCIP-SDP
2.1.0
|
interface methods for specific SDP-solvers More...
Go to the source code of this file.
Typedefs | |
typedef struct SCIP_SDPiSolver | SCIP_SDPISOLVER |
Functions | |
Miscellaneous Methods | |
EXTERN const char * | SCIPsdpiSolverGetSolverName (void) |
EXTERN const char * | SCIPsdpiSolverGetSolverDesc (void) |
EXTERN void * | SCIPsdpiSolverGetSolverPointer (SCIP_SDPISOLVER *sdpisolver) |
SDPI Creation and Destruction Methods | |
EXTERN SCIP_RETCODE | SCIPsdpiSolverCreate (SCIP_SDPISOLVER **sdpisolver, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverFree (SCIP_SDPISOLVER **sdpisolver) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverIncreaseCounter (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverResetCounter (SCIP_SDPISOLVER *sdpisolver) |
Solving Methods | |
EXTERN SCIP_RETCODE | SCIPsdpiSolverLoadAndSolve (SCIP_SDPISOLVER *sdpisolver, int nvars, SCIP_Real *obj, SCIP_Real *lb, SCIP_Real *ub, int nsdpblocks, int *sdpblocksizes, int *sdpnblockvars, int sdpconstnnonz, int *sdpconstnblocknonz, int **sdpconstrow, int **sdpconstcol, SCIP_Real **sdpconstval, int sdpnnonz, int **sdpnblockvarnonz, int **sdpvar, int ***sdprow, int ***sdpcol, SCIP_Real ***sdpval, int **indchanges, int *nremovedinds, int *blockindchanges, int nremovedblocks, int nlpcons, int noldlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int *rownactivevars, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *start, SCIP_SDPSOLVERSETTING startsettings, SCIP_Real timelimit) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverLoadAndSolveWithPenalty (SCIP_SDPISOLVER *sdpisolver, SCIP_Real penaltyparam, SCIP_Bool withobj, SCIP_Bool rbound, int nvars, SCIP_Real *obj, SCIP_Real *lb, SCIP_Real *ub, int nsdpblocks, int *sdpblocksizes, int *sdpnblockvars, int sdpconstnnonz, int *sdpconstnblocknonz, int **sdpconstrow, int **sdpconstcol, SCIP_Real **sdpconstval, int sdpnnonz, int **sdpnblockvarnonz, int **sdpvar, int ***sdprow, int ***sdpcol, SCIP_Real ***sdpval, int **indchanges, int *nremovedinds, int *blockindchanges, int nremovedblocks, int nlpcons, int noldlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int *rownactivevars, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *start, SCIP_SDPSOLVERSETTING startsettings, SCIP_Real timelimit, SCIP_Bool *feasorig, SCIP_Bool *penaltybound) |
Solution Information Methods | |
EXTERN SCIP_Bool | SCIPsdpiSolverWasSolved (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverFeasibilityKnown (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetSolFeasibility (SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsPrimalUnbounded (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsPrimalInfeasible (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsPrimalFeasible (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsDualUnbounded (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsDualInfeasible (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsDualFeasible (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsConverged (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsObjlimExc (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsIterlimExc (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsTimelimExc (SCIP_SDPISOLVER *sdpisolver) |
EXTERN int | SCIPsdpiSolverGetInternalStatus (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsOptimal (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsAcceptable (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverIgnoreInstability (SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *success) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetObjval (SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetSol (SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval, SCIP_Real *dualsol, int *dualsollength) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetPrimalBoundVars (SCIP_SDPISOLVER *sdpisolver, SCIP_Real *lbvars, SCIP_Real *ubvars, int *arraylength) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetIterations (SCIP_SDPISOLVER *sdpisolver, int *iterations) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetSdpCalls (SCIP_SDPISOLVER *sdpisolver, int *calls) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverSettingsUsed (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPSOLVERSETTING *usedsetting) |
Numerical Methods | |
EXTERN SCIP_Real | SCIPsdpiSolverInfinity (SCIP_SDPISOLVER *sdpisolver) |
EXTERN SCIP_Bool | SCIPsdpiSolverIsInfinity (SCIP_SDPISOLVER *sdpisolver, SCIP_Real val) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetRealpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real *dval) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverSetRealpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real dval) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverGetIntpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int *ival) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverSetIntpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int ival) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverComputeLambdastar (SCIP_SDPISOLVER *sdpisolver, SCIP_Real maxguess) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverComputePenaltyparam (SCIP_SDPISOLVER *sdpisolver, SCIP_Real maxcoeff, SCIP_Real *penaltyparam) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverComputeMaxPenaltyparam (SCIP_SDPISOLVER *sdpisolver, SCIP_Real penaltyparam, SCIP_Real *maxpenaltyparam) |
File Interface Methods | |
EXTERN SCIP_RETCODE | SCIPsdpiSolverReadSDP (SCIP_SDPISOLVER *sdpisolver, const char *fname) |
EXTERN SCIP_RETCODE | SCIPsdpiSolverWriteSDP (SCIP_SDPISOLVER *sdpisolver, const char *fname) |
interface methods for specific SDP-solvers
This file specifies a generic SDP-solver interface used by SCIP to create, modify, and solve semidefinite programs of the (dual) form
for symmetric matrices , a matrix and query information about the solution.
All indexing (rows, columns, blocks and variables) starts at 0.
Although it includes a few SCIP header files, e.g., because it uses SCIP's return codes, it can be used independently of any SCIP instance.
Definition in file sdpisolver.h.
typedef struct SCIP_SDPiSolver SCIP_SDPISOLVER |
solver dependent SDP interface
Definition at line 70 of file sdpisolver.h.
EXTERN const char* SCIPsdpiSolverGetSolverName | ( | void | ) |
gets name and version (if available) of SDP-solver
Definition at line 298 of file sdpisolver_dsdp.c.
Referenced by SCIPsdpiGetSolverName().
EXTERN const char* SCIPsdpiSolverGetSolverDesc | ( | void | ) |
gets description of SDP-solver (developer, webpage, ...)
Definition at line 306 of file sdpisolver_dsdp.c.
Referenced by SCIPsdpiGetSolverDesc().
EXTERN void* SCIPsdpiSolverGetSolverPointer | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
gets pointer to SDP-solver - use only with great care
The behavior of this function depends on the solver and its use is therefore only recommended if you really know what you are doing. In general, it returns a pointer to the SDP-solver object.
sdpisolver | pointer to an SDP-solver interface |
Definition at line 319 of file sdpisolver_dsdp.c.
Referenced by SCIPsdpiGetSolverPointer().
EXTERN SCIP_RETCODE SCIPsdpiSolverCreate | ( | SCIP_SDPISOLVER ** | sdpisolver, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem | ||
) |
creates an SDP solver interface
sdpisolver | pointer to an SDP-solver interface |
messagehdlr | message handler to use for printing messages, or NULL |
blkmem | block memory |
Definition at line 338 of file sdpisolver_dsdp.c.
References BMS_CALL, SCIP_SDPSOLVERSETTING_UNSOLVED, and SCIPsdpiSolverInfinity().
Referenced by SCIPsdpiClone(), and SCIPsdpiCreate().
EXTERN SCIP_RETCODE SCIPsdpiSolverFree | ( | SCIP_SDPISOLVER ** | sdpisolver | ) |
deletes an SDP solver interface
sdpisolver | pointer to an SDP-solver interface |
Definition at line 383 of file sdpisolver_dsdp.c.
References DSDP_CALL.
Referenced by SCIPsdpiFree().
EXTERN SCIP_RETCODE SCIPsdpiSolverIncreaseCounter | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
increases the SDP-Counter
sdpisolver | SDP-solver interface |
Definition at line 412 of file sdpisolver_dsdp.c.
Referenced by SCIPsdpiSolve().
EXTERN SCIP_RETCODE SCIPsdpiSolverResetCounter | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
reset the SDP-Counter to zero
sdpisolver | SDP-solver interface |
Definition at line 424 of file sdpisolver_dsdp.c.
Referenced by SCIPsdpiClear().
EXTERN SCIP_RETCODE SCIPsdpiSolverLoadAndSolve | ( | SCIP_SDPISOLVER * | sdpisolver, |
int | nvars, | ||
SCIP_Real * | obj, | ||
SCIP_Real * | lb, | ||
SCIP_Real * | ub, | ||
int | nsdpblocks, | ||
int * | sdpblocksizes, | ||
int * | sdpnblockvars, | ||
int | sdpconstnnonz, | ||
int * | sdpconstnblocknonz, | ||
int ** | sdpconstrow, | ||
int ** | sdpconstcol, | ||
SCIP_Real ** | sdpconstval, | ||
int | sdpnnonz, | ||
int ** | sdpnblockvarnonz, | ||
int ** | sdpvar, | ||
int *** | sdprow, | ||
int *** | sdpcol, | ||
SCIP_Real *** | sdpval, | ||
int ** | indchanges, | ||
int * | nremovedinds, | ||
int * | blockindchanges, | ||
int | nremovedblocks, | ||
int | nlpcons, | ||
int | noldlpcons, | ||
SCIP_Real * | lplhs, | ||
SCIP_Real * | lprhs, | ||
int * | lprownactivevars, | ||
int | lpnnonz, | ||
int * | lprow, | ||
int * | lpcol, | ||
SCIP_Real * | lpval, | ||
SCIP_Real * | start, | ||
SCIP_SDPSOLVERSETTING | startsettings, | ||
SCIP_Real | timelimit | ||
) |
loads and solves an SDP
For the non-constant SDP- and the LP-part, the original arrays before fixings should be given, for the constant SDP-part the arrays AFTER fixings should be given. In addition, an array needs to be given, that for every block and every row/col index within that block either has value -1, meaning that this index should be deleted, or a non-negative integer stating the number of indices before it that are to be deleated, meaning that this index will be decreased by that number, in addition to that the total number of deleted indices for each block should be given. Optionally an array start may be given with a starting point for the solver (if this is NULL then the solver should start from scratch).
sdpisolver | SDP-solver interface |
nvars | number of variables |
obj | objective coefficients of variables |
lb | lower bounds of variables |
ub | upper bounds of variables |
nsdpblocks | number of SDP-blocks |
sdpblocksizes | sizes of the SDP-blocks (may be NULL if nsdpblocks = sdpconstnnonz = sdpnnonz = 0) |
sdpnblockvars | number of variables that exist in each block |
sdpconstnnonz | number of nonzero elements in the constant matrices of the SDP-blocks AFTER FIXINGS |
sdpconstnblocknonz | number of nonzeros for each variable in the constant part, also the i-th entry gives the number of entries of sdpconst row/col/val [i] AFTER FIXINGS |
sdpconstrow | pointers to row-indices for each block AFTER FIXINGS |
sdpconstcol | pointers to column-indices for each block AFTER FIXINGS |
sdpconstval | pointers to the values of the nonzeros for each block AFTER FIXINGS |
sdpnnonz | number of nonzero elements in the SDP-constraint-matrix |
sdpnblockvarnonz | entry [i][j] gives the number of nonzeros for block i and variable j, this is exactly the number of entries of sdp row/col/val [i][j] |
sdpvar | sdpvar[i][j] gives the sdp-index of the j-th variable (according to the sorting for row/col/val) in the i-th block |
sdprow | pointer to the row-indices for each block and variable |
sdpcol | pointer to the column-indices for each block and variable |
sdpval | values of SDP-constraint-matrix entries (may be NULL if sdpnnonz = 0) |
indchanges | changes needed to be done to the indices, if indchanges[block][nonz]=-1, then the index can be removed, otherwise it gives the number of indices removed before this |
nremovedinds | the number of rows/cols to be fixed for each block |
blockindchanges | block indizes will be modified by these, see indchanges |
nremovedblocks | number of empty blocks that should be removed |
nlpcons | number of active (at least two nonzeros) LP-constraints |
noldlpcons | number of LP-constraints including those with less than two active nonzeros |
lplhs | left-hand sides of active LP-rows after fixings (may be NULL if nlpcons = 0) |
lprhs | right-hand sides of active LP-rows after fixings (may be NULL if nlpcons = 0) |
lprownactivevars | number of active variables for each LP-constraint |
lpnnonz | number of nonzero elements in the LP-constraint-matrix |
lprow | row-index for each entry in lpval-array, might get sorted (may be NULL if lpnnonz = 0) |
lpcol | column-index for each entry in lpval-array, might get sorted (may be NULL if lpnnonz = 0) |
lpval | values of LP-constraint-matrix entries, might get sorted (may be NULL if lpnnonz = 0) |
start | NULL or a starting point for the solver, this should have length nvars |
startsettings | settings used to start with in SDPA, currently not used for DSDP, set this to SCIP_SDPSOLVERSETTING_UNSOLVED to ignore it and start from scratch |
timelimit | after this many seconds solving will be aborted (currently only implemented for DSDP) |
Definition at line 458 of file sdpisolver_dsdp.c.
References errorMessage(), and SCIPsdpiSolverLoadAndSolveWithPenalty().
Referenced by checkSlaterCondition(), and SCIPsdpiSolve().
EXTERN SCIP_RETCODE SCIPsdpiSolverLoadAndSolveWithPenalty | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real | penaltyparam, | ||
SCIP_Bool | withobj, | ||
SCIP_Bool | rbound, | ||
int | nvars, | ||
SCIP_Real * | obj, | ||
SCIP_Real * | lb, | ||
SCIP_Real * | ub, | ||
int | nsdpblocks, | ||
int * | sdpblocksizes, | ||
int * | sdpnblockvars, | ||
int | sdpconstnnonz, | ||
int * | sdpconstnblocknonz, | ||
int ** | sdpconstrow, | ||
int ** | sdpconstcol, | ||
SCIP_Real ** | sdpconstval, | ||
int | sdpnnonz, | ||
int ** | sdpnblockvarnonz, | ||
int ** | sdpvar, | ||
int *** | sdprow, | ||
int *** | sdpcol, | ||
SCIP_Real *** | sdpval, | ||
int ** | indchanges, | ||
int * | nremovedinds, | ||
int * | blockindchanges, | ||
int | nremovedblocks, | ||
int | nlpcons, | ||
int | noldlpcons, | ||
SCIP_Real * | lplhs, | ||
SCIP_Real * | lprhs, | ||
int * | rownactivevars, | ||
int | lpnnonz, | ||
int * | lprow, | ||
int * | lpcol, | ||
SCIP_Real * | lpval, | ||
SCIP_Real * | start, | ||
SCIP_SDPSOLVERSETTING | startsettings, | ||
SCIP_Real | timelimit, | ||
SCIP_Bool * | feasorig, | ||
SCIP_Bool * | penaltybound | ||
) |
loads and solves an SDP using a penalty formulation
The penalty formulation of the SDP is:
Alternatively withobj can be set to false to set b to 0 and only check for feasibility (if the optimal objective value is bigger than 0 the problem is infeasible, otherwise it's feasible), and rbound can be set to false to remove the non-negativity condition on r. For the non-constant SDP- and the LP-part the original arrays before fixings should be given, for the constant SDP-part the arrays AFTER fixings should be given. In addition, an array needs to be given, that for every block and every row/col index within that block either has value -1, meaning that this index should be deleted, or a non-negative integer stating the number of indices before it that are to be deleated, meaning that this index will be decreased by that number. Moreover, the total number of deleted indices for each block should be given. An optional starting point for the solver may be given; if it is NULL, the solver will start from scratch.
sdpisolver | SDP-solver interface |
penaltyparam | the Gamma above, needs to be >= 0 |
withobj | if this is false the objective is set to 0 |
rbound | should r be non-negative ? |
nvars | number of variables |
obj | objective coefficients of variables |
lb | lower bounds of variables |
ub | upper bounds of variables |
nsdpblocks | number of SDP-blocks |
sdpblocksizes | sizes of the SDP-blocks (may be NULL if nsdpblocks = sdpconstnnonz = sdpnnonz = 0) |
sdpnblockvars | number of variables that exist in each block |
sdpconstnnonz | number of nonzero elements in the constant matrices of the SDP-blocks AFTER FIXINGS |
sdpconstnblocknonz | number of nonzeros for each variable in the constant part, also the i-th entry gives the number of entries of sdpconst row/col/val [i] AFTER FIXINGS |
sdpconstrow | pointers to row-indices for each block AFTER FIXINGS |
sdpconstcol | pointers to column-indices for each block AFTER FIXINGS |
sdpconstval | pointers to the values of the nonzeros for each block AFTER FIXINGS |
sdpnnonz | number of nonzero elements in the SDP-constraint-matrix |
sdpnblockvarnonz | entry [i][j] gives the number of nonzeros for block i and variable j, this is exactly the number of entries of sdp row/col/val [i][j] |
sdpvar | sdpvar[i][j] gives the sdp-index of the j-th variable (according to the sorting for row/col/val) in the i-th block |
sdprow | pointer to the row-indices for each block and variable |
sdpcol | pointer to the column-indices for each block and variable |
sdpval | values of SDP-constraint-matrix entries (may be NULL if sdpnnonz = 0) |
indchanges | changes needed to be done to the indices, if indchanges[block][nonz]=-1, then the index can be removed, otherwise it gives the number of indices removed before this |
nremovedinds | the number of rows/cols to be fixed for each block |
blockindchanges | block indizes will be modified by these, see indchanges |
nremovedblocks | number of empty blocks that should be removed |
nlpcons | number of active (at least two nonzeros) LP-constraints |
noldlpcons | number of LP-constraints including those with less than two active nonzeros |
lplhs | left-hand sides of active LP-rows after fixings (may be NULL if nlpcons = 0) |
lprhs | right-hand sides of active LP-rows after fixings (may be NULL if nlpcons = 0) |
rownactivevars | number of active variables for each LP-constraint |
lpnnonz | number of nonzero elements in the LP-constraint-matrix |
lprow | row-index for each entry in lpval-array, might get sorted (may be NULL if lpnnonz = 0) |
lpcol | column-index for each entry in lpval-array, might get sorted (may be NULL if lpnnonz = 0) |
lpval | values of LP-constraint-matrix entries, might get sorted (may be NULL if lpnnonz = 0) |
start | NULL or a starting point for the solver, this should have length nvars |
startsettings | settings used to start with in SDPA, currently not used for DSDP, set this to SCIP_SDPSOLVERSETTING_UNSOLVED to ignore it and start from scratch |
timelimit | after this many seconds solving will be aborted (currently only implemented for DSDP) |
feasorig | pointer to store if the solution to the penalty-formulation is feasible for the original problem (may be NULL if penaltyparam = 0) |
penaltybound | pointer to store if the primal solution reached the bound Tr(X) <= penaltyparam in the primal problem, this is also an indication of the penalty parameter being to small (may be NULL if not needed) |
Definition at line 526 of file sdpisolver_dsdp.c.
References BMS_CALL, checkTimeLimitDSDP(), compLowerTriangPos(), DSDP_CALL, DSDP_CALLM, EPSILONCHANGE, errorMessage(), FEASTOLCHANGE, isFixed(), PENALTYBOUNDTOL, SCIP_SDPSOLVERSETTING_FAST, SCIP_SDPSOLVERSETTING_MEDIUM, SCIP_SDPSOLVERSETTING_PENALTY, SCIP_SDPSOLVERSETTING_STABLE, SCIP_SDPSOLVERSETTING_UNSOLVED, SCIPsdpiSolverInfinity(), SCIPsdpiSolverIsAcceptable(), SCIPsdpiSolverIsInfinity(), sortColRow(), and TIMEOFDAY_CALL.
Referenced by checkSlaterCondition(), SCIPsdpiSolve(), and SCIPsdpiSolverLoadAndSolve().
EXTERN SCIP_Bool SCIPsdpiSolverWasSolved | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns whether a solve method was called after the last modification of the SDP
sdpisolver | pointer to SDP-solver interface |
Definition at line 1480 of file sdpisolver_dsdp.c.
References errorMessageAbort().
Referenced by SCIPsdpiSolve().
EXTERN SCIP_Bool SCIPsdpiSolverFeasibilityKnown | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns true if the solver could determine whether the problem is feasible
So it returns true if the solver knows that the problem is feasible/infeasible/unbounded, it returns false if the solver does not know anything about the feasibility status and thus the functions IsPrimalFeasible etc. should not be used.
sdpisolver | pointer to SDP-solver interface |
Definition at line 1494 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiFeasibilityKnown().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetSolFeasibility | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Bool * | primalfeasible, | ||
SCIP_Bool * | dualfeasible | ||
) |
gets information about primal and dual feasibility of the current SDP solution
sdpisolver | pointer to an SDP-solver interface |
primalfeasible | stores primal feasibility status |
dualfeasible | stores dual feasibility status |
Definition at line 1512 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED, DSDP_CALL, and errorMessageAbort().
Referenced by SCIPsdpiGetSolFeasibility().
EXTERN SCIP_Bool SCIPsdpiSolverIsPrimalUnbounded | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP is proven to be primal unbounded, returns FALSE with a debug-message if the solver could not determine feasibility
sdpisolver | pointer to SDP-solver interface |
Definition at line 1554 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by checkSlaterCondition(), and SCIPsdpiIsPrimalUnbounded().
EXTERN SCIP_Bool SCIPsdpiSolverIsPrimalInfeasible | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP is proven to be primal infeasible, returns FALSE with a debug-message if the solver could not determine feasibility
sdpisolver | pointer to SDP-solver interface |
Definition at line 1580 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiIsPrimalInfeasible().
EXTERN SCIP_Bool SCIPsdpiSolverIsPrimalFeasible | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP is proven to be primal feasible, returns FALSE with a debug-message if the solver could not determine feasibility
sdpisolver | pointer to SDP-solver interface |
Definition at line 1606 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiIsPrimalFeasible(), and SCIPsdpiSolverIsOptimal().
EXTERN SCIP_Bool SCIPsdpiSolverIsDualUnbounded | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP is proven to be dual unbounded, returns FALSE with a debug-message if the solver could not determine feasibility
sdpisolver | pointer to SDP-solver interface |
Definition at line 1629 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by checkSlaterCondition(), and SCIPsdpiIsDualUnbounded().
EXTERN SCIP_Bool SCIPsdpiSolverIsDualInfeasible | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP is proven to be dual infeasible, returns FALSE with a debug-message if the solver could not determine feasibility
sdpisolver | pointer to SDP-solver interface |
Definition at line 1652 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by checkSlaterCondition(), SCIPsdpiIsDualInfeasible(), and SCIPsdpiSolve().
EXTERN SCIP_Bool SCIPsdpiSolverIsDualFeasible | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP is proven to be dual feasible, returns FALSE with a debug-message if the solver could not determine feasibility
sdpisolver | pointer to SDP-solver interface |
Definition at line 1676 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiIsDualFeasible(), and SCIPsdpiSolverIsOptimal().
EXTERN SCIP_Bool SCIPsdpiSolverIsConverged | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the solver converged
sdpisolver | pointer to SDP-solver interface |
Definition at line 1699 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiIsConverged(), SCIPsdpiSolverIsAcceptable(), and SCIPsdpiSolverIsOptimal().
EXTERN SCIP_Bool SCIPsdpiSolverIsObjlimExc | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the objective limit was reached
sdpisolver | pointer to SDP-solver interface |
Definition at line 1721 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiIsObjlimExc().
EXTERN SCIP_Bool SCIPsdpiSolverIsIterlimExc | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the iteration limit was reached
sdpisolver | pointer to SDP-solver interface |
Definition at line 1732 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, DSDP_CALL_BOOL, and errorMessageAbort().
Referenced by SCIPsdpiIsIterlimExc().
EXTERN SCIP_Bool SCIPsdpiSolverIsTimelimExc | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the time limit was reached
sdpisolver | pointer to SDP-solver interface |
Definition at line 1750 of file sdpisolver_dsdp.c.
References errorMessageAbort().
Referenced by SCIPsdpiIsTimelimExc(), and SCIPsdpiSolve().
EXTERN int SCIPsdpiSolverGetInternalStatus | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns the internal solution status of the solver, which has the following meaning:
-1: solver was not started
0: converged
1: infeasible start
2: numerical problems
3: objective limit reached
4: iteration limit reached
5: time limit reached
6: user termination
7: other
sdpisolver | pointer to SDP-solver interface |
Definition at line 1769 of file sdpisolver_dsdp.c.
References errorMessageAbort().
Referenced by SCIPsdpiGetInternalStatus().
EXTERN SCIP_Bool SCIPsdpiSolverIsOptimal | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP was solved to optimality, meaning the solver converged and returned primal and dual feasible solutions
sdpisolver | pointer to SDP-solver interface |
Definition at line 1824 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, errorMessageAbort(), SCIPsdpiSolverIsConverged(), SCIPsdpiSolverIsDualFeasible(), and SCIPsdpiSolverIsPrimalFeasible().
Referenced by checkSlaterCondition(), SCIPsdpiIsOptimal(), and SCIPsdpiSolve().
EXTERN SCIP_Bool SCIPsdpiSolverIsAcceptable | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff SDP was solved to optimality or some other status was reached that is still acceptable inside a Branch & Bound framework
sdpisolver | pointer to SDP-solver interface |
Definition at line 1834 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED_BOOL, errorMessageAbort(), and SCIPsdpiSolverIsConverged().
Referenced by SCIPsdpiIsAcceptable(), SCIPsdpiSolve(), SCIPsdpiSolverLoadAndSolveWithPenalty(), and SCIPsdpiSolverSettingsUsed().
EXTERN SCIP_RETCODE SCIPsdpiSolverIgnoreInstability | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Bool * | success | ||
) |
tries to reset the internal status of the SDP-solver in order to ignore an instability of the last solving call
sdpisolver | pointer to an SDP-solver interface |
success | pointer to store, whether the instability could be ignored |
Definition at line 1844 of file sdpisolver_dsdp.c.
References errorMessageAbort().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetObjval | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real * | objval | ||
) |
gets objective value of solution
sdpisolver | pointer to an SDP-solver interface |
objval | pointer to store the objective value |
Definition at line 1854 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED, DSDP_CALL, and errorMessageAbort().
Referenced by checkSlaterCondition(), SCIPsdpiGetLowerObjbound(), SCIPsdpiGetObjval(), and SCIPsdpiSolve().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetSol | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real * | objval, | ||
SCIP_Real * | dualsol, | ||
int * | dualsollength | ||
) |
gets dual solution vector for feasible SDPs
If dualsollength isn't equal to the number of variables this will return the needed length and a debug message is thrown.
sdpisolver | pointer to an SDP-solver interface |
objval | pointer to store the objective value, may be NULL if not needed |
dualsol | pointer to store the dual solution vector, may be NULL if not needed |
dualsollength | length of the dual sol vector, must be 0 if dualsol is NULL, if this is less than the number of variables in the SDP, a DebugMessage will be thrown and this is set to the needed value |
Definition at line 1876 of file sdpisolver_dsdp.c.
References BMS_CALL, CHECK_IF_SOLVED, DSDP_CALL, and errorMessageAbort().
Referenced by SCIPsdpiGetSol().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetPrimalBoundVars | ( | SCIP_SDPISOLVER * | sdpisolver, |
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.
sdpisolver | pointer to an SDP-solver interface |
lbvars | pointer to store the values of the variables corresponding to lower bounds in the dual problems |
ubvars | pointer to store the values of the variables corresponding to upper bounds in the dual problems |
arraylength | input: length of lbvars and ubvars output: number of elements inserted into lbvars/ubvars (or needed length if it wasn't sufficient) |
Definition at line 1943 of file sdpisolver_dsdp.c.
References BMS_CALL, CHECK_IF_SOLVED, DSDP_CALL, and errorMessageAbort().
Referenced by SCIPsdpiGetPrimalBoundVars().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetIterations | ( | SCIP_SDPISOLVER * | sdpisolver, |
int * | iterations | ||
) |
gets the number of SDP iterations of the last solve call
sdpisolver | pointer to an SDP-solver interface |
iterations | pointer to store the number of iterations of the last solve call |
Definition at line 2002 of file sdpisolver_dsdp.c.
References DSDP_CALL, and errorMessageAbort().
Referenced by SCIPsdpiSolve().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetSdpCalls | ( | SCIP_SDPISOLVER * | sdpisolver, |
int * | calls | ||
) |
gets the number of calls to the SDP-solver for the last solve call
sdpisolver | SDP-solver interface |
calls | pointer to store the number of calls to the SDP-solver for the last solve call |
Definition at line 2019 of file sdpisolver_dsdp.c.
References errorMessageAbort().
Referenced by SCIPsdpiSolve().
EXTERN SCIP_RETCODE SCIPsdpiSolverSettingsUsed | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPSOLVERSETTING * | usedsetting | ||
) |
gets the settings used by the SDP solver for the last solve call
sdpisolver | SDP-solver interface |
usedsetting | the setting used by the SDP-solver |
Definition at line 2036 of file sdpisolver_dsdp.c.
References CHECK_IF_SOLVED, errorMessageAbort(), SCIP_SDPSOLVERSETTING_UNSOLVED, and SCIPsdpiSolverIsAcceptable().
Referenced by SCIPsdpiSettingsUsed(), and SCIPsdpiSlaterSettings().
EXTERN SCIP_Real SCIPsdpiSolverInfinity | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns value treated as infinity in the SDP-solver
sdpisolver | pointer to an SDP-solver interface |
Definition at line 2065 of file sdpisolver_dsdp.c.
Referenced by checkSlaterCondition(), SCIPsdpiCreate(), SCIPsdpiInfinity(), SCIPsdpiSlaterSettings(), SCIPsdpiSolve(), SCIPsdpiSolverCreate(), SCIPsdpiSolverIsInfinity(), and SCIPsdpiSolverLoadAndSolveWithPenalty().
EXTERN SCIP_Bool SCIPsdpiSolverIsInfinity | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real | val | ||
) |
checks if given value is treated as (plus or minus) infinity in the SDP-solver
sdpisolver | pointer to an SDP-solver interface |
val | value to be checked for infinity |
Definition at line 2073 of file sdpisolver_dsdp.c.
References SCIPsdpiSolverInfinity().
Referenced by checkSlaterCondition(), and SCIPsdpiSolverLoadAndSolveWithPenalty().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetRealpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
SCIP_Real * | dval | ||
) |
gets floating point parameter of SDP-Solver
sdpisolver | pointer to an SDP-solver interface |
type | parameter number |
dval | buffer to store the parameter value |
Definition at line 2082 of file sdpisolver_dsdp.c.
References SCIP_SDPPAR_EPSILON, SCIP_SDPPAR_FEASTOL, SCIP_SDPPAR_LAMBDASTAR, SCIP_SDPPAR_OBJLIMIT, and SCIP_SDPPAR_PENALTYPARAM.
Referenced by SCIPsdpiGetRealpar().
EXTERN SCIP_RETCODE SCIPsdpiSolverSetRealpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
SCIP_Real | dval | ||
) |
sets floating point parameter of SDP-Solver
sdpisolver | pointer to an SDP-solver interface |
type | parameter number |
dval | parameter value |
Definition at line 2113 of file sdpisolver_dsdp.c.
References SCIP_SDPPAR_EPSILON, SCIP_SDPPAR_FEASTOL, SCIP_SDPPAR_LAMBDASTAR, SCIP_SDPPAR_OBJLIMIT, and SCIP_SDPPAR_PENALTYPARAM.
Referenced by SCIPsdpiSetRealpar(), and SCIPsdpiSolve().
EXTERN SCIP_RETCODE SCIPsdpiSolverGetIntpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
int * | ival | ||
) |
gets integer parameter of SDP-Solver
sdpisolver | pointer to an SDP-solver interface |
type | parameter number |
ival | parameter value |
Definition at line 2150 of file sdpisolver_dsdp.c.
References SCIP_SDPPAR_SDPINFO.
Referenced by SCIPsdpiGetIntpar(), and SCIPsdpiSetIntpar().
EXTERN SCIP_RETCODE SCIPsdpiSolverSetIntpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
int | ival | ||
) |
sets integer parameter of SDP-Solver
sdpisolver | pointer to an SDP-solver interface |
type | parameter number |
ival | parameter value |
Definition at line 2172 of file sdpisolver_dsdp.c.
References SCIP_SDPPAR_SDPINFO.
Referenced by SCIPsdpiSetIntpar().
EXTERN SCIP_RETCODE SCIPsdpiSolverComputeLambdastar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real | maxguess | ||
) |
compute and set lambdastar (only used for SDPA)
sdpisolver | pointer to an SDP-solver interface |
maxguess | maximum guess for lambda star of all SDP-constraints |
Definition at line 2194 of file sdpisolver_dsdp.c.
References LAMBDASTAR_FACTOR, LAMBDASTAR_HIGH, LAMBDASTAR_LOW, LAMBDASTAR_THRESHOLD, MAX_LAMBDASTAR, and MIN_LAMBDASTAR.
Referenced by SCIPsdpiComputeLambdastar().
EXTERN SCIP_RETCODE SCIPsdpiSolverComputePenaltyparam | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real | maxcoeff, | ||
SCIP_Real * | penaltyparam | ||
) |
compute and set the penalty parameter
sdpisolver | pointer to an SDP-solver interface |
maxcoeff | maximum objective coefficient |
penaltyparam | the computed penalty parameter |
Definition at line 2205 of file sdpisolver_dsdp.c.
References MAX_PENALTYPARAM, MIN_PENALTYPARAM, and PENALTYPARAM_FACTOR.
Referenced by SCIPsdpiComputePenaltyparam().
EXTERN SCIP_RETCODE SCIPsdpiSolverComputeMaxPenaltyparam | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real | penaltyparam, | ||
SCIP_Real * | maxpenaltyparam | ||
) |
compute and set the maximum penalty parameter
sdpisolver | pointer to an SDP-solver interface |
penaltyparam | the initial penalty parameter |
maxpenaltyparam | the computed maximum penalty parameter |
Definition at line 2240 of file sdpisolver_dsdp.c.
References MAX_MAXPENALTYPARAM, and MAXPENALTYPARAM_FACTOR.
Referenced by SCIPsdpiComputeMaxPenaltyparam().
EXTERN SCIP_RETCODE SCIPsdpiSolverReadSDP | ( | SCIP_SDPISOLVER * | sdpisolver, |
const char * | fname | ||
) |
reads SDP from a file
sdpisolver | pointer to an SDP-solver interface |
fname | file name |
Definition at line 2286 of file sdpisolver_dsdp.c.
References errorMessageAbort().
EXTERN SCIP_RETCODE SCIPsdpiSolverWriteSDP | ( | SCIP_SDPISOLVER * | sdpisolver, |
const char * | fname | ||
) |
writes SDP to a file
sdpisolver | pointer to an SDP-solver interface |
fname | file name |
Definition at line 2296 of file sdpisolver_dsdp.c.
References errorMessageAbort().