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 2246 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 2295 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 2352 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 2382 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 2423 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_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 2455 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_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 2487 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 2526 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 2559 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 2591 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 2620 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 2649 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 2682 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 2749 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 2779 of file scip_lp.c.
References assert(), FALSE, NULL, SCIP_Bool, 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 2796 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().