methods to initiate and conduct LP diving
SCIP_RETCODE SCIPstartDive | ( | SCIP * | scip | ) |
initiates LP diving, making methods SCIPchgVarObjDive(), SCIPchgVarLbDive(), and SCIPchgVarUbDive() available
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
Definition at line 2242 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPgetCurrentNode(), SCIPisRelaxSolValid(), SCIPlpDiving(), SCIPlpStartDive(), SCIPnodeGetType(), SCIPtreeHasCurrentNodeLP(), SCIPtreeIsFocusNodeLPConstructed(), SCIPtreeProbing(), SCIPtreeStoreRelaxSol(), and TRUE.
Referenced by createLPWithSoftCuts(), if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), and solveLp().
SCIP_RETCODE SCIPendDive | ( | SCIP * | scip | ) |
quits LP diving and resets bounds and objective values of columns to the current node's values
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
Definition at line 2291 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPlpEndDive(), SCIPlpIsRelax(), SCIPlpIsSolved(), SCIPlpSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), SCIPtreeCutoff(), SCIPtreeIsFocusNodeLPConstructed(), SCIPtreeRestoreRelaxSol(), and TRUE.
SCIP_RETCODE SCIPchgCutoffboundDive | ( | SCIP * | scip, |
SCIP_Real | newcutoffbound ) |
changes cutoffbound in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
newcutoffbound | new cutoffbound |
Definition at line 2348 of file scip_lp.c.
References assert(), FALSE, i, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPlpSetCutoffbound(), and TRUE.
SCIP_RETCODE SCIPchgVarObjDive | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_Real | newobj ) |
changes variable's objective value in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
var | variable to change the objective value for |
newobj | new objective value |
Definition at line 2378 of file scip_lp.c.
References assert(), FALSE, newobj, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPlpMarkDivingObjChanged(), SCIPlpSetCutoffbound(), SCIPsetInfinity(), SCIPvarChgObjDive(), TRUE, and var.
Referenced by SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), updateObjectiveVector(), and updateVariableRounding().
SCIP_RETCODE SCIPchgVarLbDive | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_Real | newbound ) |
changes variable's lower bound in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
var | variable to change the bound for |
newbound | new value for bound |
Definition at line 2419 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPvarChgLbDive(), TRUE, and var.
Referenced by if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), and solveLp().
SCIP_RETCODE SCIPchgVarUbDive | ( | SCIP * | scip, |
SCIP_VAR * | var, | ||
SCIP_Real | newbound ) |
changes variable's upper bound in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
var | variable to change the bound for |
newbound | new value for bound |
Definition at line 2451 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPvarChgUbDive(), TRUE, and var.
Referenced by if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), and solveLp().
SCIP_RETCODE SCIPaddRowDive | ( | SCIP * | scip, |
SCIP_ROW * | row ) |
adds a row to the LP in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
row | row to be added |
Definition at line 2483 of file scip_lp.c.
References assert(), depth, FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPlpAddRow(), SCIPlpDiving(), SCIPnodeGetDepth(), SCIPtreeGetCurrentNode(), and TRUE.
SCIP_RETCODE SCIPchgRowLhsDive | ( | SCIP * | scip, |
SCIP_ROW * | row, | ||
SCIP_Real | newlhs ) |
changes row lhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowLhs()
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
row | row to change the lhs for |
newlhs | new value for lhs |
Definition at line 2522 of file scip_lp.c.
References assert(), FALSE, i, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_SIDETYPE_LEFT, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPlpRecordOldRowSideDive(), SCIProwChgLhs(), and TRUE.
Referenced by SCIP_DECL_BRANCHEXECLP().
SCIP_RETCODE SCIPchgRowRhsDive | ( | SCIP * | scip, |
SCIP_ROW * | row, | ||
SCIP_Real | newrhs ) |
changes row rhs in current dive, change will be undone after diving ends, for permanent changes use SCIPchgRowRhs()
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
row | row to change the lhs for |
newrhs | new value for rhs |
Definition at line 2555 of file scip_lp.c.
References assert(), FALSE, i, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_SIDETYPE_RIGHT, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPlpRecordOldRowSideDive(), SCIProwChgRhs(), and TRUE.
Referenced by SCIP_DECL_BRANCHEXECLP().
gets variable's objective value in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
var | variable to get the bound for |
Definition at line 2587 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIPABORT, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPvarGetObjLP(), TRUE, and var.
Referenced by updateObjectiveVector().
gets variable's lower bound in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
var | variable to get the bound for |
Definition at line 2616 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIPABORT, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPvarGetLbLP(), TRUE, and var.
Referenced by SCIP_DECL_HEUREXEC().
gets variable's upper bound in current dive
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
var | variable to get the bound for |
Definition at line 2645 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIPABORT, SCIPcheckStage(), SCIPerrorMessage, SCIPlpDiving(), SCIPvarGetUbLP(), TRUE, and var.
Referenced by SCIP_DECL_HEUREXEC().
SCIP_RETCODE SCIPsolveDiveLP | ( | SCIP * | scip, |
int | itlim, | ||
SCIP_Bool * | lperror, | ||
SCIP_Bool * | cutoff ) |
solves the LP of the current dive; no separation or pricing is applied
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
itlim | maximal number of LP iterations to perform, or -1 for no limit |
lperror | pointer to store whether an unresolved LP error occurred |
cutoff | pointer to store whether the diving LP was infeasible or the objective limit was reached (or NULL, if not needed) |
Definition at line 2678 of file scip_lp.c.
References assert(), cutoff, FALSE, i, lperror, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPcheckStage(), SCIPconflictAnalyzeLP(), SCIPerrorMessage, SCIPgetCutoffbound(), SCIPgetLPObjval(), SCIPisGE(), SCIPlpDiving(), SCIPlpDivingObjChanged(), SCIPlpDivingRowsChanged(), SCIPlpGetSolstat(), SCIPlpSolveAndEval(), SCIPprobAllColsInLP(), and TRUE.
Referenced by if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), solveLagromoryLP(), and solveLp().
SCIP_Longint SCIPgetLastDivenode | ( | SCIP * | scip | ) |
returns the number of the node in the current branch and bound run, where the last LP was solved in diving or probing mode
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
Definition at line 2745 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), and TRUE.
Referenced by SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), and SCIPperformGenericDivingAlgorithm().
returns whether we are in diving mode
scip
is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
scip | SCIP data structure |
Definition at line 2775 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpDiving(), and TRUE.
Referenced by SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_PROPEXEC(), SCIP_DECL_RELAXEXEC(), SCIPtightenVarLb(), SCIPtightenVarUb(), and updateSubproblemLowerbound().
SCIP_RETCODE SCIPgetLPDualDegeneracy | ( | SCIP * | scip, |
SCIP_Real * | degeneracy, | ||
SCIP_Real * | varconsratio ) |
computes two measures for dual degeneracy (dual degeneracy rate and variable-constraint ratio) based on the changes applied when reducing the problem to the optimal face
returns the dual degeneracy rate, i.e., the share of nonbasic variables with reduced cost 0 and the variable-constraint ratio, i.e., the number of unfixed variables in relation to the basis size
scip | SCIP data structure |
degeneracy | pointer to store the dual degeneracy rate |
varconsratio | pointer to store the variable-constraint ratio |
Definition at line 2792 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPlpGetDualDegeneracy(), and TRUE.
Referenced by checkExec(), execRelpscost(), and SCIP_DECL_SEPAEXECLP().