functions 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 2206 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(), SCIPstartExactDive(), 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 2255 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPisExact(), SCIPlpDiving(), SCIPlpEndDive(), SCIPlpExactDiving(), SCIPlpIsRelax(), SCIPlpIsSolved(), SCIPlpSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), SCIPtreeCutoff(), SCIPtreeIsFocusNodeLPConstructed(), SCIPtreeRestoreRelaxSol(), and TRUE.
Referenced by deleteLPWithSoftCuts(), if(), if(), if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIPendExactDive(), and solveLp().
| 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 2313 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, 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 2343 of file scip_lp.c.
References assert(), FALSE, newobj, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, 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 2384 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, SCIPcheckStage, SCIPerrorMessage, SCIPlpDiving(), SCIPvarChgLbDive(), TRUE, and var.
Referenced by if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONSCHECK(), 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 2416 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, SCIPcheckStage, SCIPerrorMessage, SCIPlpDiving(), SCIPvarChgUbDive(), TRUE, and var.
Referenced by if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONSCHECK(), 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 2448 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 2487 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, 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 2520 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, 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 2552 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIP_Real, 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 2581 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIP_Real, 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 2610 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIP_Real, 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 2643 of file scip_lp.c.
References assert(), cutoff, FALSE, lperror, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_Longint, 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 2710 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL_ABORT, SCIP_Longint, 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 2740 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL_ABORT, SCIPcheckStage, SCIPlpDiving(), and TRUE.
Referenced by if(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONSCHECK(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PROPEXEC(), SCIP_DECL_RELAXEXEC(), SCIPtightenVarLb(), SCIPtightenVarLbExact(), SCIPtightenVarUb(), SCIPtightenVarUbExact(), solveLp(), 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 2757 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcheckStage, SCIPlpGetDualDegeneracy(), and TRUE.
Referenced by checkExec(), execRelpscost(), and SCIP_DECL_SEPAEXECLP().