SCIP-SDP
2.0.0
|
interface for SDPA More...
Go to the source code of this file.
Macros | |
#define | EPSILONCHANGE 0.1 |
#define | FEASTOLCHANGE 0.1 |
#define | BMS_CALL(x) |
#define | CHECK_IF_SOLVED(sdpisolver) |
#define | CHECK_IF_SOLVED_BOOL(sdpisolver) |
Functions | |
static SCIP_Bool | isFixed (SCIP_SDPISOLVER *sdpisolver, SCIP_Real lb, SCIP_Real ub) |
Miscellaneous Methods | |
const char * | SCIPsdpiSolverGetSolverName (void) |
const char * | SCIPsdpiSolverGetSolverDesc (void) |
void * | SCIPsdpiSolverGetSolverPointer (SCIP_SDPISOLVER *sdpisolver) |
SDPI Creation and Destruction Methods | |
SCIP_RETCODE | SCIPsdpiSolverCreate (SCIP_SDPISOLVER **sdpisolver, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem) |
SCIP_RETCODE | SCIPsdpiSolverFree (SCIP_SDPISOLVER **sdpisolver) |
SCIP_RETCODE | SCIPsdpiSolverIncreaseCounter (SCIP_SDPISOLVER *sdpisolver) |
SCIP_RETCODE | SCIPsdpiSolverResetCounter (SCIP_SDPISOLVER *sdpisolver) |
Solving Methods | |
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_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_Bool *feasorig) |
Solution Information Methods | |
SCIP_Bool | SCIPsdpiSolverWasSolved (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverFeasibilityKnown (SCIP_SDPISOLVER *sdpisolver) |
SCIP_RETCODE | SCIPsdpiSolverGetSolFeasibility (SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible) |
SCIP_Bool | SCIPsdpiSolverIsPrimalUnbounded (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsPrimalInfeasible (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsPrimalFeasible (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsDualUnbounded (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsDualInfeasible (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsDualFeasible (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsConverged (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsObjlimExc (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsIterlimExc (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsTimelimExc (SCIP_SDPISOLVER *sdpisolver) |
int | SCIPsdpiSolverGetInternalStatus (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsOptimal (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsAcceptable (SCIP_SDPISOLVER *sdpisolver) |
SCIP_RETCODE | SCIPsdpiSolverIgnoreInstability (SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *success) |
SCIP_RETCODE | SCIPsdpiSolverGetObjval (SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval) |
SCIP_RETCODE | SCIPsdpiSolverGetSol (SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval, SCIP_Real *dualsol, int *dualsollength) |
SCIP_RETCODE | SCIPsdpiSolverGetPrimalBoundVars (SCIP_SDPISOLVER *sdpisolver, SCIP_Real *lbvars, SCIP_Real *ubvars, int *arraylength) |
SCIP_RETCODE | SCIPsdpiSolverGetIterations (SCIP_SDPISOLVER *sdpisolver, int *iterations) |
Numerical Methods | |
SCIP_Real | SCIPsdpiSolverInfinity (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsInfinity (SCIP_SDPISOLVER *sdpisolver, SCIP_Real val) |
SCIP_Real | SCIPsdpiSolverMaxPenParam (SCIP_SDPISOLVER *sdpisolver) |
SCIP_Bool | SCIPsdpiSolverIsGEMaxPenParam (SCIP_SDPISOLVER *sdpisolver, SCIP_Real val) |
SCIP_RETCODE | SCIPsdpiSolverGetRealpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real *dval) |
SCIP_RETCODE | SCIPsdpiSolverSetRealpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real dval) |
SCIP_RETCODE | SCIPsdpiSolverGetIntpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int *ival) |
SCIP_RETCODE | SCIPsdpiSolverSetIntpar (SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int ival) |
File Interface Methods | |
SCIP_RETCODE | SCIPsdpiSolverReadSDP (SCIP_SDPISOLVER *sdpisolver, const char *fname) |
SCIP_RETCODE | SCIPsdpiSolverWriteSDP (SCIP_SDPISOLVER *sdpisolver, const char *fname) |
interface for SDPA
Definition in file sdpisolver_sdpa.cpp.
#define EPSILONCHANGE 0.1 |
change epsilon by this factor when switching from fast to default and from default to stable settings
Definition at line 56 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolverLoadAndSolveWithPenalty().
#define FEASTOLCHANGE 0.1 |
change feastol by this factor when switching from fast to default and from default to stable settings
Definition at line 57 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolverLoadAndSolveWithPenalty().
#define BMS_CALL | ( | x | ) |
Checks if a BMSallocMemory-call was successfull, otherwise returns SCIP_NOMEMRY.
Definition at line 60 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolverCreate(), and SCIPsdpiSolverLoadAndSolveWithPenalty().
#define CHECK_IF_SOLVED | ( | sdpisolver | ) |
This will be called in all functions that want to access solution information to check if the problem was solved since the last change of the problem.
Definition at line 71 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolverGetIterations(), SCIPsdpiSolverGetObjval(), SCIPsdpiSolverGetPrimalBoundVars(), SCIPsdpiSolverGetSol(), and SCIPsdpiSolverGetSolFeasibility().
#define CHECK_IF_SOLVED_BOOL | ( | sdpisolver | ) |
This is the same as CHECK_IF_SOLVED, but will be called for methods returning a bool instead of a SCIP_RETURNCODE
Definition at line 82 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolverFeasibilityKnown(), SCIPsdpiSolverIsAcceptable(), SCIPsdpiSolverIsConverged(), SCIPsdpiSolverIsDualFeasible(), SCIPsdpiSolverIsDualInfeasible(), SCIPsdpiSolverIsDualUnbounded(), SCIPsdpiSolverIsIterlimExc(), SCIPsdpiSolverIsObjlimExc(), SCIPsdpiSolverIsOptimal(), SCIPsdpiSolverIsPrimalFeasible(), SCIPsdpiSolverIsPrimalInfeasible(), and SCIPsdpiSolverIsPrimalUnbounded().
|
static |
Test if a lower bound lb is not smaller than an upper bound ub, meaning that lb > ub - epsilon
sdpisolver | pointer to an SDP interface solver structure |
lb | lower bound |
ub | upper bound |
Definition at line 131 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolverLoadAndSolveWithPenalty().
const char* SCIPsdpiSolverGetSolverName | ( | void | ) |
gets name and version (if available) of SDP solver
Definition at line 156 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiGetSolverName().
const char* SCIPsdpiSolverGetSolverDesc | ( | void | ) |
gets description of SDP solver (developer, webpage, ...)
Definition at line 164 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiGetSolverDesc().
void* SCIPsdpiSolverGetSolverPointer | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
gets pointer for 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 interface solver structure |
Definition at line 177 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiGetSolverPointer().
SCIP_RETCODE SCIPsdpiSolverCreate | ( | SCIP_SDPISOLVER ** | sdpisolver, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem | ||
) |
creates an SDP problem object
sdpisolver | pointer to an SDP interface solver structure |
messagehdlr | message handler to use for printing messages, or NULL |
blkmem | block memory |
Definition at line 196 of file sdpisolver_sdpa.cpp.
References BMS_CALL, and SCIPsdpiSolverInfinity().
Referenced by SCIPsdpiClone(), and SCIPsdpiCreate().
SCIP_RETCODE SCIPsdpiSolverFree | ( | SCIP_SDPISOLVER ** | sdpisolver | ) |
deletes an SDP problem object
sdpisolver | pointer to an SDP interface solver structure |
Definition at line 238 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiFree().
SCIP_RETCODE SCIPsdpiSolverIncreaseCounter | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
increases the SDP-Counter
sdpisolver | SDP interface solver structure |
Definition at line 270 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiSolve().
SCIP_RETCODE SCIPsdpiSolverResetCounter | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
reset the SDP-Counter to zero
sdpisolver | SDP interface solver structure |
Definition at line 282 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiClear().
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 | ||
) |
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 interface solver structure |
nvars | number of variables |
obj | objective function values 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 |
Definition at line 316 of file sdpisolver_sdpa.cpp.
References SCIPsdpiSolverLoadAndSolveWithPenalty().
Referenced by SCIPsdpiSolve().
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_Bool * | feasorig | ||
) |
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 interface solver structure |
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 function values 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 |
feasorig | pointer to store if the solution to the penalty-formulation is feasible for the original problem (may be NULL if penaltyparam = 0) |
Definition at line 380 of file sdpisolver_sdpa.cpp.
References BMS_CALL, EPSILONCHANGE, FEASTOLCHANGE, isFixed(), SCIPsdpiSolverInfinity(), SCIPsdpiSolverIsAcceptable(), and SCIPsdpiSolverIsInfinity().
Referenced by SCIPsdpiSolve(), and SCIPsdpiSolverLoadAndSolve().
SCIP_Bool SCIPsdpiSolverWasSolved | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns whether a solve method was called after the last modification of the SDP
sdpisolver | pointer to SDP interface solver structure |
Definition at line 1205 of file sdpisolver_sdpa.cpp.
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 doesn't know anything about the feasibility status and thus the functions IsPrimalFeasible etc. shouldn't be used.
sdpisolver | pointer to SDP interface solver structure |
Definition at line 1219 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiFeasibilityKnown().
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 interface solver structure |
primalfeasible | stores primal feasibility status |
dualfeasible | stores dual feasibility status |
Definition at line 1238 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED.
Referenced by SCIPsdpiGetSolFeasibility().
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 interface solver structure |
Definition at line 1292 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsPrimalUnbounded().
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 interface solver structure |
Definition at line 1322 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsPrimalInfeasible().
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 interface solver structure |
Definition at line 1352 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsPrimalFeasible().
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 interface solver structure |
Definition at line 1382 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsDualUnbounded(), and SCIPsdpiSolve().
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 interface solver structure |
Definition at line 1412 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsDualInfeasible().
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 interface solver structure |
Definition at line 1442 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsDualFeasible().
SCIP_Bool SCIPsdpiSolverIsConverged | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the solver converged
sdpisolver | pointer to SDP interface solver structure |
Definition at line 1471 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsConverged(), and SCIPsdpiSolverIsAcceptable().
SCIP_Bool SCIPsdpiSolverIsObjlimExc | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the objective limit was reached
sdpisolver | pointer to SDP interface solver structure |
Definition at line 1490 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsObjlimExc().
SCIP_Bool SCIPsdpiSolverIsIterlimExc | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the iteration limit was reached
sdpisolver | pointer to SDP interface solver structure |
Definition at line 1509 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsIterlimExc().
SCIP_Bool SCIPsdpiSolverIsTimelimExc | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns TRUE iff the time limit was reached
sdpisolver | pointer to SDP interface solver structure |
Definition at line 1531 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiIsTimelimExc().
int SCIPsdpiSolverGetInternalStatus | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns the internal solution status of the solver, which has the following meaning:
-1: solver wasn't 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 interface solver structure |
Definition at line 1549 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiGetInternalStatus().
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 interface solver structure |
Definition at line 1576 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL.
Referenced by SCIPsdpiIsOptimal(), and SCIPsdpiSolve().
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 interface solver structure |
Definition at line 1596 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED_BOOL, and SCIPsdpiSolverIsConverged().
Referenced by SCIPsdpiIsAcceptable(), SCIPsdpiSolve(), and SCIPsdpiSolverLoadAndSolveWithPenalty().
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 interface solver structure |
success | pointer to store, whether the instability could be ignored |
Definition at line 1617 of file sdpisolver_sdpa.cpp.
SCIP_RETCODE SCIPsdpiSolverGetObjval | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real * | objval | ||
) |
gets objective value of solution
sdpisolver | pointer to an SDP interface solver structure |
objval | pointer to store the objective value |
Definition at line 1629 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED.
Referenced by SCIPsdpiGetObjval(), and SCIPsdpiSolve().
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 interface solver structure |
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 1659 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED.
Referenced by SCIPsdpiGetSol().
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 interface solver structure |
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 1734 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED.
Referenced by SCIPsdpiGetPrimalBoundVars().
SCIP_RETCODE SCIPsdpiSolverGetIterations | ( | SCIP_SDPISOLVER * | sdpisolver, |
int * | iterations | ||
) |
gets the number of SDP iterations of the last solve call
sdpisolver | pointer to an SDP interface solver structure |
iterations | pointer to store the number of iterations of the last solve call |
Definition at line 1808 of file sdpisolver_sdpa.cpp.
References CHECK_IF_SOLVED.
Referenced by SCIPsdpiGetIterations(), and SCIPsdpiSolve().
SCIP_Real SCIPsdpiSolverInfinity | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns value treated as infinity in the SDP solver
sdpisolver | pointer to an SDP interface solver structure |
Definition at line 1835 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiInfinity(), SCIPsdpiSolverCreate(), SCIPsdpiSolverIsInfinity(), and SCIPsdpiSolverLoadAndSolveWithPenalty().
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 interface solver structure |
val | value to be checked for infinity |
Definition at line 1843 of file sdpisolver_sdpa.cpp.
References SCIPsdpiSolverInfinity().
Referenced by SCIPsdpiSolverLoadAndSolveWithPenalty().
SCIP_Real SCIPsdpiSolverMaxPenParam | ( | SCIP_SDPISOLVER * | sdpisolver | ) |
returns highest penalty parameter to be used
sdpisolver | pointer to an SDP interface solver structure |
Definition at line 1852 of file sdpisolver_sdpa.cpp.
Referenced by SCIPsdpiMaxPenParam(), and SCIPsdpiSolverIsGEMaxPenParam().
SCIP_Bool SCIPsdpiSolverIsGEMaxPenParam | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_Real | val | ||
) |
checks if given value is greater or equal to the highest penalty parameter to be used
sdpisolver | pointer to an SDP interface solver structure |
val | value to be compared to maximum penalty parameter |
Definition at line 1860 of file sdpisolver_sdpa.cpp.
References SCIPsdpiSolverMaxPenParam().
Referenced by SCIPsdpiSolve().
SCIP_RETCODE SCIPsdpiSolverGetRealpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
SCIP_Real * | dval | ||
) |
gets floating point parameter of SDP-Solver
sdpisolver | pointer to an SDP interface solver structure |
type | parameter number |
dval | buffer to store the parameter value |
Definition at line 1869 of file sdpisolver_sdpa.cpp.
References SCIP_SDPPAR_EPSILON, SCIP_SDPPAR_FEASTOL, and SCIP_SDPPAR_OBJLIMIT.
Referenced by SCIPsdpiGetRealpar(), and SCIPsdpiSetRealpar().
SCIP_RETCODE SCIPsdpiSolverSetRealpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
SCIP_Real | dval | ||
) |
sets floating point parameter of SDP-Solver
sdpisolver | pointer to an SDP interface solver structure |
type | parameter number |
dval | parameter value |
Definition at line 1897 of file sdpisolver_sdpa.cpp.
References SCIP_SDPPAR_EPSILON, SCIP_SDPPAR_FEASTOL, and SCIP_SDPPAR_OBJLIMIT.
Referenced by SCIPsdpiSetRealpar().
SCIP_RETCODE SCIPsdpiSolverGetIntpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
int * | ival | ||
) |
gets integer parameter of SDP-Solver
sdpisolver | pointer to an SDP interface solver structure |
type | parameter number |
ival | parameter value |
Definition at line 1927 of file sdpisolver_sdpa.cpp.
References SCIP_SDPPAR_SDPINFO.
Referenced by SCIPsdpiGetIntpar(), and SCIPsdpiSetIntpar().
SCIP_RETCODE SCIPsdpiSolverSetIntpar | ( | SCIP_SDPISOLVER * | sdpisolver, |
SCIP_SDPPARAM | type, | ||
int | ival | ||
) |
sets integer parameter of SDP-Solver
sdpisolver | pointer to an SDP interface solver structure |
type | parameter number |
ival | parameter value |
Definition at line 1955 of file sdpisolver_sdpa.cpp.
References SCIP_SDPPAR_SDPINFO.
Referenced by SCIPsdpiSetIntpar().
SCIP_RETCODE SCIPsdpiSolverReadSDP | ( | SCIP_SDPISOLVER * | sdpisolver, |
const char * | fname | ||
) |
reads SDP from a file
sdpisolver | pointer to an SDP interface solver structure |
fname | file name |
Definition at line 1995 of file sdpisolver_sdpa.cpp.
SCIP_RETCODE SCIPsdpiSolverWriteSDP | ( | SCIP_SDPISOLVER * | sdpisolver, |
const char * | fname | ||
) |
writes SDP to a file
sdpisolver | pointer to an SDP interface solver structure |
fname | file name |
Definition at line 2005 of file sdpisolver_sdpa.cpp.