data structures and methods for collecting reoptimization information
Definition in file reopt.c.
#include "scip/def.h"#include "scip/mem.h"#include "scip/event.h"#include "scip/scip.h"#include "scip/set.h"#include "scip/sol.h"#include "scip/var.h"#include "scip/lp.h"#include "scip/misc.h"#include "scip/reopt.h"#include "scip/tree.h"#include "scip/primal.h"#include "scip/sepastore.h"#include "scip/cutpool.h"#include "scip/prob.h"#include "scip/cons.h"#include "scip/cons_bounddisjunction.h"#include "scip/cons_linear.h"#include "scip/cons_logicor.h"#include "scip/cons_setppc.h"#include "scip/clock.h"#include "scip/history.h"#include "blockmemshell/memory.h"Go to the source code of this file.
Macros | |
| #define | DEFAULT_MEM_VARAFTERDUAL 10 |
| #define | DEFAULT_MEM_VAR 10 |
| #define | DEFAULT_MEM_NODES 1000 |
| #define | DEFAULT_MEM_RUN 200 |
| #define | DEFAULT_MEM_DUALCONS 10 |
| #define | DEFAULT_RANDSEED 67 |
| #define | EVENTHDLR_NAME "Reopt" |
| #define | EVENTHDLR_DESC "node event handler for reoptimization" |
| #define DEFAULT_MEM_VARAFTERDUAL 10 |
Definition at line 58 of file reopt.c.
Referenced by saveAfterDualBranchings().
| #define DEFAULT_MEM_VAR 10 |
Definition at line 59 of file reopt.c.
Referenced by saveAncestorBranchings().
| #define DEFAULT_MEM_NODES 1000 |
Definition at line 60 of file reopt.c.
Referenced by createReopttree().
| #define DEFAULT_MEM_RUN 200 |
Definition at line 61 of file reopt.c.
Referenced by createSolTree(), and SCIPreoptCreate().
| #define DEFAULT_MEM_DUALCONS 10 |
Definition at line 62 of file reopt.c.
Referenced by SCIPreoptAddDualBndchg().
| #define EVENTHDLR_DESC "node event handler for reoptimization" |
|
static |
exec the event handler
Definition at line 74 of file reopt.c.
References assert(), EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_EVENTEXEC, SCIP_INVALIDCALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_STRINGEQ, SCIPaddReoptDualBndchg(), SCIPdebugMsg, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetCurrentNode(), SCIPgetEffectiveRootDepth(), SCIPgetStage(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPvarGetName(), and SCIPvarIsIntegral().
|
static |
solving process initialization method of event handler (called when branch and bound process is about to begin)
Definition at line 113 of file reopt.c.
References assert(), EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_EVENTINITSOL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STRINGEQ, SCIPcatchVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), SCIPvarIsIntegral(), and vars.
|
static |
solving process deinitialization method of event handler (called before branch and bound process data is freed)
Definition at line 139 of file reopt.c.
References assert(), EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_EVENTEXITSOL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STRINGEQ, SCIP_VARTYPE_BINARY, SCIPdropVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), SCIPvarGetType(), and vars.
|
static |
ensures size for activeconss
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| num | minimum number of entries to store |
Definition at line 171 of file reopt.c.
References SCIP_Reopt::activeconss, assert(), BMSreallocBlockMemoryArray, ensureActiveconssSize(), SCIP_Reopt::nmaxactiveconss, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by ensureActiveconssSize(), SCIPreoptApplyGlbConss(), and SCIPreoptSaveActiveConss().
|
static |
ensures, that sols[pos] array can store at least num entries
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| num | minimum number of entries to store |
| runidx | run index for which the memory should checked |
Definition at line 192 of file reopt.c.
References assert(), BMSreallocBlockMemoryArray, ensureSolsSize(), SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree.
|
static |
ensures, that sols array can store at least num entries
| reopt | reoptimization data structure |
| set | gloabl SCIP settings |
| num | minimum number of entries to store |
| blkmem | block memory |
Definition at line 219 of file reopt.c.
References assert(), BMSreallocBlockMemoryArray, BMSreallocMemoryArray, ensureRunSize(), SCIP_SolTree::nsols, NULL, SCIP_Reopt::objs, SCIP_Reopt::prevbestsols, SCIP_Reopt::runsize, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_Reopt::soltree, and SCIP_Reopt::varhistory.
Referenced by ensureRunSize(), reoptSaveNewObj(), and SCIPreoptAddRun().
|
static |
check the memory of the reoptimization tree and if necessary reallocate
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 255 of file reopt.c.
References assert(), BMSreallocBlockMemoryArray, SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, reopttreeCheckMemory(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPqueueInsertUInt(), SCIPqueueIsEmpty(), and SCIPsetCalcMemGrowSize().
Referenced by addNode(), reopttreeCheckMemory(), and SCIPreoptSplitRoot().
|
static |
check allocated memory of a node within the reoptimization tree and if necessary reallocate
| reoptnode | node of the reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| var_mem | memory for variables |
| child_mem | memory for child nodes |
| conss_mem | memory for constraints |
Definition at line 287 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, assert(), BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, reoptnodeCheckMemory(), SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode(), changeAncestorBranchings(), dryBranch(), fixBounds(), moveChildrenUp(), reoptAddChild(), reoptMoveIDs(), reoptnodeCheckMemory(), saveAncestorBranchings(), saveLocalConssData(), SCIPreoptnodeAddBndchg(), SCIPreoptnodeAddCons(), SCIPreoptSplitRoot(), and updatePropagation().
|
static |
returns the number of stored solutions in the subtree induced by solnode
| solnode | node within the solution tree |
Definition at line 367 of file reopt.c.
References assert(), SCIP_SolNode::child, NULL, SCIP_SolNode::sibling, SCIP_SolNode::sol, and soltreeNInducedSols().
Referenced by SCIPreoptGetNSavedSols(), solnodeAddChild(), and soltreeNInducedSols().
|
static |
returns the similarity of the objective functions of two given iterations
| reopt | reoptimization data |
| set | global SCIP settings |
| obj1_id | id of one objective function |
| obj2_id | id of the other objective function |
| vars | problem variables |
| nvars | number of problem variables |
Definition at line 396 of file reopt.c.
References assert(), MAX, MIN, NULL, nvars, SCIP_Reopt::objs, reoptSimilarity(), SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPsetIsFeasLT(), SCIPsetIsZero(), SCIPvarGetIndex(), SCIPvarGetLbLocal(), SCIPvarGetOrigvarSum(), SCIPvarGetTransVar(), SCIPvarGetUbLocal(), SCIPvarIsOriginal(), SQR, and vars.
Referenced by reoptSaveNewObj(), reoptSimilarity(), SCIPreoptCheckRestart(), SCIPreoptGetSimilarity(), and SCIPreoptMergeVarHistory().
|
static |
delete the given reoptimization node
| reoptnode | node of the reoptimization tree |
| blkmem | block memory |
Definition at line 483 of file reopt.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, c, NULL, reoptnodeDelete(), and SCIP_OKAY.
Referenced by reoptnodeDelete(), reopttreeDeleteNode(), and SCIPreoptnodeDelete().
|
static |
reset the given reoptimization node
| reoptnode | reoptimization node |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 604 of file reopt.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, c, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, reoptnodeReset(), SCIP_ReoptNode::reopttype, SCIP_OKAY, SCIP_REOPTTYPE_NONE, and SCIPsetInfinity().
Referenced by reoptnodeReset(), reopttreeDeleteNode(), and SCIPreoptnodeReset().
|
static |
delete the node stored at position nodeID of the reoptimization tree
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| id | id of a node |
| softreset | delete at the end of the solving process |
Definition at line 680 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, reoptnodeDelete(), reoptnodeReset(), SCIP_ReoptTree::reoptnodes, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, and SCIP_OKAY.
Referenced by clearReoptnodes(), deleteChildrenBelow(), dryBranch(), reopttreeDeleteNode(), SCIPreoptDeleteNode(), and shrinkNode().
|
static |
constructor of the solution tree
| soltree | solution tree |
| blkmem | block memory |
Definition at line 712 of file reopt.c.
References assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, SCIP_SolNode::child, createSolTree(), DEFAULT_MEM_RUN, FALSE, SCIP_SolNode::father, SCIP_SolTree::nsols, NULL, SCIP_SolTree::root, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, SCIP_SolNode::sibling, SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_SolNode::updated, and SCIP_SolNode::value.
Referenced by createSolTree(), and SCIPreoptCreate().
|
static |
free the given solution node
| reopt | reoptimization data |
| set | global SCIP settings |
| primal | the primal |
| blkmem | block memory |
| solnode | node within the solution tree |
Definition at line 744 of file reopt.c.
References assert(), BMSfreeBlockMemoryNull, SCIP_SolNode::child, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPsolFree(), SCIP_SolNode::sibling, and soltreefreeNode().
Referenced by freeSolTree(), and soltreefreeNode().
|
static |
free the solution tree
| reopt | reoptimization data |
| set | global SCIP settings |
| origprimal | the origprimal |
| blkmem | block memory |
Definition at line 786 of file reopt.c.
References assert(), BMSfreeBlockMemoryArray, BMSfreeBlockMemoryNull, BMSfreeMemory, freeSolTree(), SCIP_SolTree::nsols, NULL, SCIP_SolTree::root, SCIP_Reopt::runsize, SCIP_CALL, SCIP_OKAY, SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_Reopt::soltree, and soltreefreeNode().
Referenced by freeSolTree(), and SCIPreoptFree().
|
static |
creates and adds a solution node to the solution tree
| set | global SCIP settings |
| blkmem | block memory |
| curnode | current node in the solution tree |
| child | pointer to store the node representing the solution value |
| var | variable represented by this node |
| val | value the child shell represent |
| added | TRUE iff we created a new node, i.e, we have not seen this solution so far |
Definition at line 814 of file reopt.c.
References assert(), BMSallocBlockMemory, SCIP_SolNode::child, FALSE, SCIP_SolNode::father, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_OKAY, SCIP_Real, SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIP_SolNode::sibling, SCIP_SolNode::sol, solnodeAddChild(), soltreeNInducedSols(), TRUE, SCIP_SolNode::updated, SCIP_SolNode::value, SCIP_SolNode::var, and var.
Referenced by solnodeAddChild(), and soltreeAddSol().
|
static |
add a solution to the solution tree
| reopt | reoptimization data |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| origprimal | orig primal |
| blkmem | block memory |
| vars | array of original variables |
| sol | solution to add |
| solnode | current solution node |
| nvars | number of variables |
| bestsol | is the solution an optimal (best found) solution |
| added | pointer to store the result |
Definition at line 995 of file reopt.c.
References assert(), SCIP_SolNode::child, FALSE, NULL, nvars, SCIP_Reopt::prevbestsols, SCIP_SolTree::root, SCIP_Reopt::run, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), SCIPsetDebugMsg, SCIPsolCopy(), SCIPsolGetHeur(), SCIPsolGetVal(), SCIPvarIsIntegral(), SCIP_SolNode::sol, sol, solnodeAddChild(), SCIP_Reopt::soltree, soltreeAddSol(), TRUE, and vars.
Referenced by SCIPreoptAddSol(), and soltreeAddSol().
|
static |
reset all marks 'updated' to FALSE
| node | node within the solution tree |
Definition at line 1082 of file reopt.c.
References assert(), SCIP_SolNode::child, FALSE, SCIP_SolNode::father, NULL, SCIP_SolNode::sibling, SCIP_SolNode::sol, soltreeResetMarks(), and SCIP_SolNode::updated.
Referenced by SCIPreoptResetSolMarks(), and soltreeResetMarks().
|
static |
allocate memory for a node within the reoptimization tree
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| id | id of the node to create |
Definition at line 1116 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, SCIP_ReoptNode::allocchildmem, assert(), BMSallocBlockMemory, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, createReoptnode(), SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ReoptNode::reopttype, SCIP_ALLOC, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPqueueNElems(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode(), createReoptnode(), createReopttree(), reoptRestart(), SCIPreoptApplyCompression(), and SCIPreoptSplitRoot().
|
static |
constructor of the reoptimization tree
| reopttree | pointer to the reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 1173 of file reopt.c.
References assert(), BMSallocBlockMemoryArray, createReoptnode(), createReopttree(), DEFAULT_MEM_NODES, SCIP_ReoptTree::ncutoffreoptnodes, SCIP_ReoptTree::nfeasnodes, SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::nprunednodes, SCIP_ReoptTree::nreoptnodes, SCIP_ReoptTree::ntotalcutoffreoptnodes, SCIP_ReoptTree::ntotalfeasnodes, SCIP_ReoptTree::ntotalinfnodes, SCIP_ReoptTree::ntotalprunednodes, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPqueueCreate(), SCIPqueueInsertUInt(), and SCIPqueueNElems().
Referenced by createReopttree(), and SCIPreoptCreate().
|
static |
clears the reopttree, e.g., to restart and solve the next problem from scratch
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| softreset | delete nodes before exit the solving process |
Definition at line 1217 of file reopt.c.
References assert(), clearReoptnodes(), SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPqueueClear(), SCIPqueueInsertUInt(), and SCIPqueueNElems().
Referenced by clearReoptnodes(), freeReoptTree(), and reoptResetTree().
|
static |
free the reoptimization tree
| reopttree | reoptimization tree data |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 1253 of file reopt.c.
References assert(), BMSfreeBlockMemoryArray, BMSfreeMemory, clearReoptnodes(), FALSE, freeReoptTree(), NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPqueueFree().
Referenced by freeReoptTree(), and SCIPreoptFree().
|
static |
check memory for the constraint to handle bound changes based on dual information
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| size | size which need to be allocated |
Definition at line 1277 of file reopt.c.
References assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, checkMemDualCons(), SCIP_Reopt::dualreds, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by checkMemDualCons(), collectDualInformation(), and SCIPreoptAddDualBndchg().
|
static |
check the memory to store global constraints
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| mem | memory which has to be allocated |
Definition at line 1311 of file reopt.c.
References SCIP_Reopt::allocmemglbconss, assert(), BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, c, checkMemGlbCons(), SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by addGlobalCut(), and checkMemGlbCons().
|
static |
reactivate globally valid constraints that were deactivated and necessary to ensure correctness
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 1351 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Reopt::activeconssset, assert(), cleanActiveConss(), i, SCIP_Reopt::nactiveconss, SCIP_Reopt::nmaxactiveconss, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsRelease(), SCIPhashsetExists(), SCIPhashsetRemoveAll(), and SCIPsetDebugMsg.
Referenced by cleanActiveConss(), and SCIPreoptReleaseData().
|
static |
update the bound changes made by propagations during current iteration; stop saving the bound changes if we reach a branching decision based on a dual information
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| id | id of the node |
| transintoorig | transform variables into originals |
Definition at line 1387 of file reopt.c.
References assert(), NULL, nvars, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeGetNDomchg(), SCIPnodeGetPropsBeforeDual(), TRUE, updatePropagation(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode(), and updatePropagation().
|
static |
save bound changes made after the first bound change based on dual information, e.g., mode by strong branching
This method can be used during reoptimization. If we want to reconstruct a node containing dual bound changes we have to split the node into the original one and at least one node representing the pruned part. All bound changes, i.e., (constraint) propagation, made after the first bound change based on dual information are still valid for the original node after changing the objective function. thus, we can store them for the following iterations.
It should be noted, that these bound changes will be found by (constraint) propagation methods anyway after changing the objective function. do not saving these information and find them again might be useful for conflict analysis.
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| id | id of the node |
| transintoorig | transform variables into originals |
Definition at line 1444 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, assert(), BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, DEFAULT_MEM_VARAFTERDUAL, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, saveAfterDualBranchings(), SCIP_ALLOC, SCIP_Bool, SCIP_OKAY, SCIPnodeGetPropsAfterDual(), SCIPsetCalcMemGrowSize(), SCIPsetDebugMsg, and TRUE.
Referenced by addNode(), and saveAfterDualBranchings().
|
static |
store cuts that are active in the current LP
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| lp | current LP |
| id | id in the reopttree |
Definition at line 1524 of file reopt.c.
References assert(), c, FALSE, lprows, nlprows, NULL, r, REOPT_CONSTYPE_CUT, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_ROWORIGINTYPE_SEPA, SCIPcolGetVar(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPreoptnodeAddCons(), SCIProwGetAge(), SCIProwGetCols(), SCIProwGetConstant(), SCIProwGetLhs(), SCIProwGetLPPos(), SCIProwGetNLPNonz(), SCIProwGetOrigintype(), SCIProwGetRhs(), SCIProwGetVals(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetOrigvarSum(), storeCuts(), and TRUE.
Referenced by addNode(), and storeCuts().
|
static |
transform variable and bounds back to the original space
| reopt | reoptimization data structure |
| id | id of the node |
Definition at line 1624 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvars, assert(), SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), transformIntoOrig(), SCIP_ReoptNode::varbounds, and SCIP_ReoptNode::vars.
Referenced by addNode(), and transformIntoOrig().
|
static |
search the next node along the root path that was saved by reoptimization
| reopt | reoptimization data structure |
| set | global SCIP settings |
| node | node of the search tree |
| parent | parent node within the search tree |
| parentid | id of the parent node |
| nbndchgs | number of bound changes |
Definition at line 1667 of file reopt.c.
References assert(), getLastSavedNode(), NULL, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_Reopt::reopttree, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIP_REOPTTYPE_TRANSIT, SCIPnodeGetDepth(), SCIPnodeGetNDomchg(), SCIPnodeGetParent(), SCIPnodeGetReoptID(), SCIPnodeGetReopttype(), SCIPnodeSetReoptID(), and SCIPnodeSetReopttype().
Referenced by addNode(), getLastSavedNode(), and shrinkNode().
|
static |
adds the id childid to the array of child nodes of parentid
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| parentid | id of the parent node |
| childid | id of the child node |
Definition at line 1729 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, assert(), SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptAddChild(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by addNode(), moveChildrenUp(), reoptAddChild(), SCIPreoptApplyCompression(), and SCIPreoptSplitRoot().
|
static |
move all children to the next node (along the root path) stored in the reoptimization tree
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| nodeid | id of the node |
| parentid | id of the parent node |
Definition at line 1762 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, moveChildrenUp(), SCIP_ReoptNode::nchilds, NULL, nvars, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, reoptAddChild(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by moveChildrenUp(), and shrinkNode().
|
static |
delete all nodes in the subtree induced by nodeID
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| id | id of the node |
| delnodeitself | should the node be deleted after deleting the induced subtree? |
| exitsolve | will the solving process end after deletion |
Definition at line 1822 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, deleteChildrenBelow(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPqueueInsertUInt(), SCIPsetDebugMsg, and TRUE.
Referenced by addNode(), deleteChildrenBelow(), dryBranch(), and reoptCheckLocalRestart().
|
static |
replaces a reoptimization nodes by its stored child nodes
| reopt | reoptimization data structure |
| set | global SCIP settings |
| node | node of the search tree |
| id | id of the node |
| shrank | pointer to store if the node was shrank |
| blkmem | block memory |
Definition at line 1868 of file reopt.c.
References assert(), c, SCIP_ReoptNode::childids, getLastSavedNode(), moveChildrenUp(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPnodeGetNumber(), SCIPnodeSetReopttype(), SCIPqueueInsertUInt(), SCIPsetDebugMsg, shrinkNode(), and TRUE.
Referenced by addNode(), and shrinkNode().
|
static |
change all reopttypes in the subtree induced by nodeID
| reopttree | reopttree |
| id | id of the node |
| reopttype | reopttype |
Definition at line 1946 of file reopt.c.
References assert(), changeReopttypeOfSubtree(), SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_ReoptNode::reopttype, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_INFSUBTREE, and SCIP_REOPTTYPE_STRBRANCHED.
Referenced by addNode(), and changeReopttypeOfSubtree().
|
static |
delete the constraint handling dual information for the current iteration and replace it with the dual constraint for the next iteration
| reoptnode | reoptimization node |
| blkmem | block memory |
Definition at line 1992 of file reopt.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, NULL, reoptnodeUpdateDualConss(), SCIP_OKAY, SCIPdebugMessage, and TRUE.
Referenced by fixBounds(), reoptCheckLocalRestart(), reoptnodeUpdateDualConss(), SCIPreoptApply(), and SCIPreoptSplitRoot().
|
static |
calculates a (local) similarity of a given node and returns if the subproblem should be solved from scratch
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| transvars | transformed variables |
| ntransvars | number of transformed variables |
| localrestart | pointer to store if we want to restart solving the (sub)problem |
Definition at line 2025 of file reopt.c.
References assert(), deleteChildrenBelow(), FALSE, SCIP_Reopt::nlocrestarts, SCIP_Reopt::ntotallocrestarts, NULL, reoptCheckLocalRestart(), SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPreoptGetOldObjCoef(), SCIPsetDebugMsg, SCIPsetIsFeasLT(), SCIPsetIsLT(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetUbLocal(), and TRUE.
Referenced by reoptCheckLocalRestart(), and SCIPreoptCheckRestart().
|
static |
save ancestor branching information up to the next stored node
| reopttree | reoptimization tree |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the branch and bound tree |
| parent | parent node |
| id | id of the node |
| parentid | id of the parent node |
Definition at line 2113 of file reopt.c.
References assert(), DEFAULT_MEM_VAR, NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, saveAncestorBranchings(), SCIP_CALL, SCIP_OKAY, SCIPnodeGetAncestorBranchingsPart(), SCIPsetDebugMsg, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode(), and saveAncestorBranchings().
|
static |
transform a constraint with linear representation into reoptimization constraint data
| reoptconsdata | reoptimization constraint data |
| set | global SCIP settings |
| blkmem | block memory |
| cons | linear constraint that should be stored |
| success | pointer to store the success |
Definition at line 2182 of file reopt.c.
References assert(), BMSallocBlockMemoryArray, FALSE, NULL, REALABS, saveConsLinear(), SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPconsGetHdlr(), SCIPconsGetNVars(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPgetLhsLinear(), SCIPgetRhsLinear(), SCIPgetTypeSetppc(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPgetVarsLogicor(), SCIPgetVarsSetppc(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetOrigvarSum(), TRUE, and vars.
Referenced by saveConsLinear(), and saveLocalConssData().
|
static |
transform a bounddisjunction constraint into reoptimization constraint data
| reoptconsdata | reoptimization constraint data |
| set | global SCIP settings |
| blkmem | block memory |
| cons | bounddisjuction constraint that should be stored |
| success | pointer to store the success |
Definition at line 2314 of file reopt.c.
References assert(), BMSduplicateBlockMemoryArray, FALSE, NULL, REALABS, saveConsBounddisjuction(), SCIP_ALLOC, SCIP_Bool, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_STRINGEQ, SCIP_UNKNOWN, SCIPconsGetHdlr(), SCIPconsGetNVars(), SCIPconshdlrGetName(), SCIPgetBoundsBounddisjunction(), SCIPgetBoundtypesBounddisjunction(), SCIPgetVarsBounddisjunction(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsZero(), SCIPvarGetOrigvarSum(), and vars.
Referenced by saveConsBounddisjuction(), and saveLocalConssData().
|
static |
save additional all constraints that were additionally added to node
| reopttree | reopttree |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the branch and bound tree |
| id | id of the node |
Definition at line 2373 of file reopt.c.
References assert(), BMSallocBlockMemory, c, SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_UNKNOWN, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, saveConsBounddisjuction(), saveConsLinear(), saveLocalConssData(), SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STRINGEQ, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPnodeGetAddedConss(), SCIPnodeGetNAddedConss(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, and SCIPsetFreeBufferArray.
Referenced by addNode(), and saveLocalConssData().
|
static |
collect all bound changes based on dual information
If the bound changes are global, all information are already stored because they were caught by the event handler. otherwise, we have to use SCIPnodeGetDualBoundchgs.
Afterwards, we check if the constraint will be added in the next iteration or after splitting the node.
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| id | id of the node |
| reopttype | reopttype |
Definition at line 2468 of file reopt.c.
References assert(), BMSallocBlockMemory, BMSduplicateBlockMemoryArray, checkMemDualCons(), collectDualInformation(), SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_STRBRANCHED, SCIPnodeGetDualBoundchgs(), SCIPnodeGetNDualBndchgs(), SCIPnodeGetNumber(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), and TRUE.
Referenced by addNode(), and collectDualInformation().
|
static |
adds a node of the branch and bound tree to the reoptimization tree
| reopt | reoptimization data structure |
| set | global SCIP settings |
| lp | current LP |
| blkmem | block memory |
| node | current node |
| reopttype | reason for storing the node |
| saveafterdual | save branching decisions after the first dual |
| isrootnode | node is the root node |
| lowerbound | lower bound of the node |
Definition at line 2594 of file reopt.c.
References addNode(), SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::allocchildmem, assert(), changeReopttypeOfSubtree(), SCIP_ReoptNode::childids, collectDualInformation(), createReoptnode(), SCIP_Reopt::currentnode, deleteChildrenBelow(), SCIP_Reopt::dualreds, SCIP_ReoptNode::dualreds, FALSE, getLastSavedNode(), SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::ncutoffreoptnodes, SCIP_ReoptTree::nfeasnodes, SCIP_ReoptTree::nprunednodes, SCIP_ReoptTree::ntotalcutoffreoptnodes, SCIP_ReoptTree::ntotalfeasnodes, SCIP_ReoptTree::ntotalprunednodes, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, REALABS, reoptAddChild(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeCheckMemory(), SCIP_ReoptNode::reopttype, saveAfterDualBranchings(), saveAncestorBranchings(), saveLocalConssData(), SCIP_Reopt::savingtime, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_FEASIBLE, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LEAF, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_NONE, SCIP_REOPTTYPE_PRUNED, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIPclockStart(), SCIPclockStop(), SCIPnodeGetDepth(), SCIPnodeGetNAddedConss(), SCIPnodeGetNumber(), SCIPnodeGetParent(), SCIPnodeGetReoptID(), SCIPnodeSetReoptID(), SCIPnodeSetReopttype(), SCIPqueueRemoveUInt(), SCIPreoptResetDualBndchgs(), SCIPsetDebugMsg, SCIPsetIsInfinity(), SCIPvarGetName(), shrinkNode(), storeCuts(), transformIntoOrig(), TRUE, updatePropagation(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by addNode(), SCIPreoptApply(), SCIPreoptCheckCutoff(), and SCIPreoptSaveOpenNodes().
|
static |
delete the stored information about dual bound changes of the last focused node
| reopt | reoptimization data structure |
Definition at line 3145 of file reopt.c.
References assert(), SCIP_Reopt::currentnode, deleteLastDualBndchgs(), SCIP_Reopt::dualreds, NULL, and SCIPdebugMessage.
Referenced by deleteLastDualBndchgs(), and SCIPreoptCheckCutoff().
|
static |
delete the stored constraints that dual information at the given reoptimization node
| reoptnode | reoptimization node |
| blkmem | block memory |
Definition at line 3162 of file reopt.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, NULL, reoptnodeResetDualConss(), SCIP_OKAY, and SCIPdebugMessage.
Referenced by reoptnodeResetDualConss(), and SCIPreoptResetDualBndchgs().
|
static |
transform given set of variables, bounds and boundtypes into a global cut.
| reopt | reoptimization data structure |
| blkmem | block memory |
| set | global SCIP settings |
| vars | variables of the cut |
| vals | values of the cut |
| boundtypes | bounds of the cut |
| nvars | number of variables in the cut |
| nbinvars | number of binary variables |
| nintvars | number of integer variables |
Definition at line 3212 of file reopt.c.
References addGlobalCut(), assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, checkMemGlbCons(), FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, nvars, REOPT_CONSTYPE_CUT, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsIntegral(), SCIPsetRound(), SCIPvarGetLbGlobal(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsImpliedIntegral(), SCIPvarIsIntegral(), SCIPvarIsOriginal(), and vars.
Referenced by addGlobalCut(), saveGlobalCons(), and separateSolution().
|
static |
generate a global constraint to separate an infeasible subtree
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| consttype | reopttype of the constraint |
Definition at line 3409 of file reopt.c.
References addGlobalCut(), assert(), SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, REOPT_CONSTYPE_INFSUBTREE, saveGlobalCons(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPnodeGetAncestorBranchings(), SCIPnodeGetDepth(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetReallocBufferArray, SCIPvarGetType(), SCIPvarIsImpliedIntegral(), and vars.
Referenced by saveGlobalCons(), and SCIPreoptAddInfNode().
|
static |
move all id of child nodes from reoptimization node stored at id1 to the node stored at id2
| reopttree | reopttree |
| set | global SCIP settings |
| blkmem | block memory |
| id1 | source id |
| id2 | target id |
Definition at line 3476 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, assert(), c, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptMoveIDs(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by reoptMoveIDs(), and SCIPreoptSplitRoot().
|
static |
change all bound changes along the root path
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| transprob | transformed problem |
| origprob | original problem |
| tree | search tree |
| lp | current LP |
| branchcand | branching candidates |
| eventqueue | event queue |
| eventfilter | global event filter |
| cliquetable | clique table |
| blkmem | block memory |
| node | node of the branch and bound tree |
| id | id of stored node |
| afterdualbranching | convert all bound changes made directly after the first bound changes based on dual information into normal branchings |
Definition at line 3526 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, assert(), BMSfreeBlockMemoryArray, changeAncestorBranchings(), FALSE, SCIP_ReoptNode::nafterdualvars, NULL, nvars, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPnodeAddBoundchg(), SCIPsetDebugMsg, SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsOriginal(), SCIPvarIsTransformed(), TRUE, var, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by changeAncestorBranchings(), and SCIPreoptApply().
|
static |
add a constraint to ensure that at least one variable bound gets different
| reopt | reoptimization data structure |
| scip | SCIP data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| blkmem | block memory |
| transprob | transformed problem |
| origprob | original problem |
| tree | search tree |
| lp | current LP |
| branchcand | branching candidates |
| eventqueue | event queue |
| eventfilter | global event filter |
| cliquetable | clique table data structure |
| node | node corresponding to the pruned part |
| id | id of stored node |
Definition at line 3701 of file reopt.c.
References addSplitcons(), assert(), SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPaddConsNode(), SCIPallocBufferArray, SCIPcreateConsBounddisjunctionRedundant(), SCIPcreateConsLogicor(), SCIPdebugPrintCons, SCIPfreeBufferArray, SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPisLT(), SCIPnodeAddBoundchg(), SCIPnodeGetNumber(), SCIPreleaseCons(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsnprintf(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), SCIPvarIsNegated(), SCIPvarIsOriginal(), SCIPvarIsTransformed(), SCIPvarNegate(), TRUE, and var.
Referenced by addSplitcons(), and SCIPreoptApply().
|
static |
fix all bounds ad stored in dualredscur at the given node node_fix
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| transprob | transformed problem |
| origprob | original problem |
| tree | search tree |
| lp | current LP |
| branchcand | branching candidates |
| eventqueue | event queue |
| eventfilter | global event filter |
| cliquetable | clique table |
| blkmem | block memory |
| node | node corresponding to the fixed part |
| id | id of stored node |
| updatedualconss | update constraint representing dual bound changes |
Definition at line 3958 of file reopt.c.
References assert(), SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, fixBounds(), NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetOrigvarSum(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), SCIPvarIsOriginal(), SCIPvarIsTransformedOrigvar(), TRUE, var, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by fixBounds(), and SCIPreoptApply().
|
static |
fix all bounds corresponding to dual bound changes in a previous iteration in the fashion of interdiction branching; keep the first negbndchg-1 bound changes as stored in dualredscur and negate the negbndchg-th bound.
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| transprob | transformed problem |
| origprob | original problem |
| tree | search tree |
| lp | current LP |
| branchcand | branching candidates |
| eventqueue | event queue |
| eventfilter | global event filter |
| cliquetable | clique table |
| blkmem | block memory |
| node | child node |
| id | id of the node |
| perm | array of permuted indices |
| vars | variables |
| vals | bounds |
| boundtypes | boundtypes |
| nvars | number of variables |
| negbndchg | index of the variable that should negated |
Definition at line 4080 of file reopt.c.
References assert(), SCIP_ReoptNode::dualreds, FALSE, fixInterdiction(), MIN, NULL, nvars, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPsetDebugMsg, SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), SCIPvarIsTransformedOrigvar(), var, and vars.
Referenced by fixInterdiction(), and SCIPreoptApply().
|
static |
add all constraints stored at id to the given nodes node_fix and node_cons
| scip | SCIP data structure |
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| blkmem | block memory |
| node | node of the branch and bound tree |
| id | id of stored node |
Definition at line 4192 of file reopt.c.
References addLocalConss(), assert(), c, SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, NULL, REOPT_CONSTYPE_CUT, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddConsNode(), SCIPcreateConsBounddisjunctionRedundant(), SCIPcreateConsLinear(), SCIPdebugPrintCons, SCIPnodeGetNumber(), SCIPreleaseCons(), SCIPsetDebugMsg, SCIPsnprintf(), and TRUE.
Referenced by addLocalConss(), and SCIPreoptApply().
|
static |
reset the internal statistics at the beginning of a new iteration
| reopt | reoptimization data structure |
Definition at line 4262 of file reopt.c.
References assert(), SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, SCIP_ReoptTree::ncutoffreoptnodes, SCIP_ReoptTree::nfeasnodes, SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::nprunednodes, NULL, SCIP_Reopt::reopttree, and resetStats().
Referenced by resetStats(), and SCIPreoptAddRun().
|
static |
check the stored bound changes of all child nodes for redundancy and infeasibility
Due to strongbranching initialization at node stored at id it can happen, that some bound changes stored in the child nodes of the reoptimization node stored at id become redundant or make the subproblem infeasible. in this method we remove all redundant bound changes and delete infeasible child nodes.
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| runagain | pointer to store of this method should run again |
| id | id of stored node |
Definition at line 4287 of file reopt.c.
References assert(), c, SCIP_ReoptNode::childids, cutoff, deleteChildrenBelow(), dryBranch(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPqueueInsertUInt(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by dryBranch(), and SCIPreoptGetChildIDs().
|
static |
return the number of all nodes in the subtree induced by the reoptimization node stored at id
| reopttree | reopttree |
| id | id of stored node |
Definition at line 4502 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, i, SCIP_ReoptNode::nchilds, nnodes, NULL, SCIP_ReoptTree::reoptnodes, and reopttreeGetNNodes().
Referenced by reopttreeGetNNodes(), and SCIPreoptGetNNodes().
|
static |
returns the number of leaf nodes of the induced subtree
| reopt | reoptimization data structure |
| id | id of stored node |
Definition at line 4520 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, i, SCIP_ReoptNode::nchilds, NULL, reoptGetNLeaves(), SCIP_ReoptTree::reoptnodes, and SCIP_Reopt::reopttree.
Referenced by reoptGetNLeaves(), and SCIPreoptGetNLeaves().
|
static |
returns all leaves of the subtree induced by the node stored at id
| reopt | reoptimization data structure |
| id | id of stored node |
| leaves | array of leave nodes |
| leavessize | size of leaves array |
| nleaves | pointer to store the number of leave nodes |
Definition at line 4550 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, i, SCIP_ReoptNode::nchilds, NULL, reoptGetLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, and SCIP_OKAY.
Referenced by reoptGetLeaves(), and SCIPreoptGetLeaves().
|
static |
after restarting the reoptimization and an after compressing the search tree we have to delete all stored information
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| softreset | mark the nodes to overwriteable (TRUE) or delete them completely (FALSE) |
Definition at line 4594 of file reopt.c.
References assert(), clearReoptnodes(), SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, SCIP_ReoptTree::nreoptnodes, NULL, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, and SCIP_OKAY.
Referenced by reoptResetTree(), reoptRestart(), and SCIPreoptApplyCompression().
|
static |
restart the reoptimization by removing all stored information about nodes and increase the number of restarts
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 4620 of file reopt.c.
References assert(), createReoptnode(), FALSE, SCIP_Reopt::firstrestart, SCIP_Reopt::lastrestart, SCIP_Reopt::nglbrestarts, SCIP_ReoptTree::nreoptnodes, NULL, reoptResetTree(), reoptRestart(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, and SCIP_OKAY.
Referenced by reoptRestart(), and SCIPreoptCheckRestart().
|
static |
save the new objective function
| reopt | reoptimization data |
| set | global SCIP settings |
| blkmem | block memory |
| origvars | original problem variables |
| norigvars | number of original problem variables |
Definition at line 4650 of file reopt.c.
References assert(), BMSallocClearMemoryArray, BMSreallocMemoryArray, ensureRunSize(), SCIP_Reopt::firstobj, i, SCIP_Reopt::nobjvars, NULL, SCIP_Reopt::objhaschanged, SCIP_Reopt::objs, reoptSaveNewObj(), reoptSimilarity(), SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, SCIPsetCalcMemGrowSize(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPvarGetIndex(), SCIPvarGetObj(), SCIPvarIsOriginal(), SCIPverbMessage(), SCIP_Reopt::simtolastobj, and TRUE.
Referenced by reoptSaveNewObj(), and SCIPreoptAddRun().
|
static |
orders the variable by inference score
| set | global SCIP settings |
| stat | dynamic problem statistics |
| perm | array of indices that need to be permuted |
| vars | variable array to permute |
| bounds | bound array to permute in the same order |
| boundtypes | boundtype array to permute in the same order |
| nvars | number of variables |
Definition at line 4737 of file reopt.c.
References assert(), getInferenceOrder(), NULL, nvars, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsortDownRealInt(), SCIPvarGetAvgInferences(), and vars.
Referenced by getInferenceOrder(), SCIPreoptApply(), and SCIPreoptSplitRoot().
|
static |
create a global constraint to separate the given solution
| reopt | reoptimization data structure |
| blkmem | block memory |
| set | global SCIP settings |
| stat | dynamic SCIP statistics |
| sol | solution to separate |
| vars | array of original problem variables |
| nvars | number of original problem variables |
Definition at line 4784 of file reopt.c.
References addGlobalCut(), assert(), NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPvarGetType(), SCIPvarIsImpliedIntegral(), SCIPvarIsIntegral(), SCIPvarIsOriginal(), separateSolution(), sol, vars, and w.
Referenced by SCIPreoptAddOptSol(), and separateSolution().
| int SCIPreoptGetNRestartsGlobal | ( | SCIP_REOPT * | reopt | ) |
returns the number of global restarts
| reopt | reoptimization data structure |
Definition at line 4878 of file reopt.c.
References assert(), SCIP_Reopt::nglbrestarts, NULL, and SCIPreoptGetNRestartsGlobal().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetNRestartsGlobal().
| int SCIPreoptGetNRestartsLocal | ( | SCIP_REOPT * | reopt | ) |
returns the number of local restarts in the current run
| reopt | reoptimization data structure |
Definition at line 4888 of file reopt.c.
References assert(), SCIP_Reopt::nlocrestarts, NULL, and SCIPreoptGetNRestartsLocal().
Referenced by SCIPreoptGetNRestartsLocal().
| int SCIPreoptGetNTotalRestartsLocal | ( | SCIP_REOPT * | reopt | ) |
returns the number of local restarts over all runs
| reopt | reoptimization data structure |
Definition at line 4898 of file reopt.c.
References assert(), SCIP_Reopt::ntotallocrestarts, NULL, and SCIPreoptGetNTotalRestartsLocal().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetNTotalRestartsLocal().
| int SCIPreoptGetFirstRestarts | ( | SCIP_REOPT * | reopt | ) |
returns the number of iteration with the first global restarts
| reopt | reoptimization data structure |
Definition at line 4908 of file reopt.c.
References assert(), SCIP_Reopt::firstrestart, NULL, and SCIPreoptGetFirstRestarts().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetFirstRestarts().
| int SCIPreoptGetLastRestarts | ( | SCIP_REOPT * | reopt | ) |
returns the number of iteration with the last global restarts
| reopt | reoptimization data structure |
Definition at line 4918 of file reopt.c.
References assert(), SCIP_Reopt::lastrestart, NULL, and SCIPreoptGetLastRestarts().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetLastRestarts().
| int SCIPreoptGetNFeasNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes providing an improving feasible LP solution in the current run
returns the number of nodes providing an improving feasible LP solution in the current run
| reopt | reoptimization data structure |
Definition at line 4928 of file reopt.c.
References assert(), SCIP_ReoptTree::nfeasnodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNFeasNodes().
Referenced by SCIPreoptGetNFeasNodes().
| int SCIPreoptGetNTotalFeasNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes providing an improving feasible LP solution over all runs
returns the number of nodes providing an improving feasible LP solution over all runs
| reopt | reoptimization data structure |
Definition at line 4938 of file reopt.c.
References assert(), SCIP_ReoptTree::ntotalfeasnodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNTotalFeasNodes().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetNTotalFeasNodes().
| int SCIPreoptGetNPrunedNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes that exceeded the cutoff bound in the current run
returns the number of nodes that exceeded the cutoff bound in the current run
| reopt | reoptimization data structure |
Definition at line 4948 of file reopt.c.
References assert(), SCIP_ReoptTree::nprunednodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNPrunedNodes().
Referenced by SCIPreoptGetNPrunedNodes().
| int SCIPreoptGetNTotalPrunedNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes that exceeded the cutoff bound over all runs
returns the number of nodes that exceeded the cutoff bound over all runs
| reopt | reoptimization data structure |
Definition at line 4958 of file reopt.c.
References assert(), SCIP_ReoptTree::ntotalprunednodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNTotalPrunedNodes().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetNTotalPrunedNodes().
| int SCIPreoptGetNCutoffReoptnodes | ( | SCIP_REOPT * | reopt | ) |
rerturns the number of reoptimized nodes that were cutoff in the same iteration in the current run
returns the number of reoptimized nodes that were cut off in the current run
| reopt | reoptimization data structure |
Definition at line 4968 of file reopt.c.
References assert(), SCIP_ReoptTree::ncutoffreoptnodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNCutoffReoptnodes().
Referenced by SCIPreoptGetNCutoffReoptnodes().
| int SCIPreoptGetNTotalCutoffReoptnodes | ( | SCIP_REOPT * | reopt | ) |
rerturns the number of reoptimized nodes that were cutoff in the same iteration over all runs
returns the number of reoptimized nodes that were cut off over all runs
| reopt | reoptimization data structure |
Definition at line 4978 of file reopt.c.
References assert(), SCIP_ReoptTree::ntotalcutoffreoptnodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNTotalCutoffReoptnodes().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetNTotalCutoffReoptnodes().
| int SCIPreoptGetNInfNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes with an infeasible LP in the current run
| reopt | reoptimization data structure |
Definition at line 4988 of file reopt.c.
References assert(), SCIP_ReoptTree::ninfnodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNInfNodes().
Referenced by SCIPreoptGetNInfNodes().
| int SCIPreoptGetNTotalInfNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes with an infeasible LP over all runs
| reopt | reoptimization data structure |
Definition at line 4998 of file reopt.c.
References assert(), SCIP_ReoptTree::ntotalinfnodes, NULL, SCIP_Reopt::reopttree, and SCIPreoptGetNTotalInfNodes().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetNTotalInfNodes().
| SCIP_RETCODE SCIPreoptCreate | ( | SCIP_REOPT ** | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem ) |
constructor for the reoptimization data
creates reopt data
| reopt | pointer to reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 5008 of file reopt.c.
References assert(), BMSallocBlockMemoryArray, BMSallocMemory, BMSallocMemoryArray, createReopttree(), createSolTree(), DEFAULT_MEM_RUN, DEFAULT_RANDSEED, EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, i, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPeventhdlrCreate(), SCIPrandomCreate(), SCIPreoptCreate(), SCIPsetIncludeEventhdlr(), and SCIPsetInitializeRandomSeed().
Referenced by SCIPenableReoptimization(), and SCIPreoptCreate().
| SCIP_RETCODE SCIPreoptReleaseData | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem ) |
| reopt | pointer to reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 5089 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::addedconsssize, assert(), BMSfreeBlockMemoryArray, c, cleanActiveConss(), SCIP_Reopt::naddedconss, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsRelease(), and SCIPreoptReleaseData().
Referenced by SCIPfreeTransform(), and SCIPreoptReleaseData().
| SCIP_RETCODE SCIPreoptFree | ( | SCIP_REOPT ** | reopt, |
| SCIP_SET * | set, | ||
| SCIP_PRIMAL * | origprimal, | ||
| BMS_BLKMEM * | blkmem ) |
frees reoptimization data
frees reopt data
| reopt | reoptimization data structure |
| set | global SCIP settings |
| origprimal | original primal |
| blkmem | block memory |
Definition at line 5116 of file reopt.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeMemory, BMSfreeMemoryArray, c, freeReoptTree(), freeSolTree(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPclockFree(), SCIPgetNOrigVars(), SCIPhashmapFree(), SCIPhashsetFree(), SCIPhistoryFree(), SCIPrandomFree(), SCIPreoptFree(), and SCIPsolFree().
Referenced by SCIPenableReoptimization(), SCIPfreeProb(), and SCIPreoptFree().
| int SCIPreoptGetNAddedConss | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node ) |
returns the number of constraints added by the reoptimization plug-in
| reopt | reoptimization data structure |
| node | node of the search tree |
Definition at line 5242 of file reopt.c.
References assert(), MAX, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), SCIPnodeGetNAddedConss(), SCIPnodeGetReoptID(), and SCIPreoptGetNAddedConss().
Referenced by SCIPreoptCheckCutoff(), and SCIPreoptGetNAddedConss().
| SCIP_RETCODE SCIPreoptAddSol | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PRIMAL * | origprimal, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SOL * | sol, | ||
| SCIP_Bool | bestsol, | ||
| SCIP_Bool * | added, | ||
| SCIP_VAR ** | vars, | ||
| int | nvars, | ||
| int | run ) |
add a solution to the solution tree
| reopt | reoptimization data |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| origprimal | original primal |
| blkmem | block memory |
| sol | solution to add |
| bestsol | is the current solution an optimal solution? |
| added | pointer to store the information if the soltion was added |
| vars | variable array |
| nvars | number of variables |
| run | number of the current run (1,2,...) |
Definition at line 5266 of file reopt.c.
References assert(), ensureSolsSize(), SCIP_Reopt::noptsolsbyreoptsol, SCIP_SolTree::nsols, NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), SCIPreoptAddSol(), SCIPsolGetHeur(), sol, SCIP_SolTree::sols, SCIP_Reopt::soltree, soltreeAddSol(), and vars.
Referenced by SCIPreoptAddSol(), and SCIPsolve().
| SCIP_RETCODE SCIPreoptAddOptSol | ( | SCIP_REOPT * | reopt, |
| SCIP_SOL * | sol, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PRIMAL * | origprimal, | ||
| SCIP_VAR ** | vars, | ||
| int | nvars ) |
we want to store the optimal solution of each run in a separate array
add optimal solution
| reopt | reoptimization data structure |
| sol | solution to add |
| blkmem | block memory |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| origprimal | original primal |
| vars | original problem variables |
| nvars | number of original problem variables |
Definition at line 5319 of file reopt.c.
References assert(), NULL, nvars, SCIP_Reopt::prevbestsols, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, SCIPreoptAddOptSol(), SCIPsolCopy(), separateSolution(), sol, and vars.
Referenced by SCIPreoptAddOptSol(), and SCIPsolve().
| SCIP_RETCODE SCIPreoptAddRun | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_VAR ** | origvars, | ||
| int | norigvars, | ||
| int | size ) |
add a new iteration after changing the objective function
add a run
| reopt | reoptimization data sturcture |
| set | global SCIP settings |
| blkmem | block memory |
| origvars | original problem variables |
| norigvars | number of original variables |
| size | number of expected solutions |
Definition at line 5353 of file reopt.c.
References assert(), BMSallocBlockMemoryArray, ensureRunSize(), FALSE, NULL, SCIP_Reopt::objhaschanged, reoptSaveNewObj(), resetStats(), SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPreoptAddRun(), SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree.
Referenced by prepareReoptimization(), and SCIPreoptAddRun().
| int SCIPreoptGetNCheckedSols | ( | SCIP_REOPT * | reopt | ) |
get the number of checked solutions during the reoptimization process
| reopt | reoptimization data structure |
Definition at line 5389 of file reopt.c.
References assert(), SCIP_Reopt::ncheckedsols, NULL, and SCIPreoptGetNCheckedSols().
Referenced by SCIPreoptGetNCheckedSols().
| void SCIPreoptAddNCheckedSols | ( | SCIP_REOPT * | reopt, |
| int | ncheckedsols ) |
update the number of checked solutions during the reoptimization process
| reopt | reoptimization data structure |
| ncheckedsols | number of updated solutions |
Definition at line 5399 of file reopt.c.
References assert(), SCIP_Reopt::ncheckedsols, NULL, and SCIPreoptAddNCheckedSols().
Referenced by SCIPreoptAddNCheckedSols().
| int SCIPreoptGetNImprovingSols | ( | SCIP_REOPT * | reopt | ) |
get the number of checked solutions during the reoptimization process
| reopt | reoptimization data structure |
Definition at line 5410 of file reopt.c.
References assert(), SCIP_Reopt::nimprovingsols, NULL, and SCIPreoptGetNImprovingSols().
Referenced by SCIPreoptGetNImprovingSols().
| void SCIPreoptAddNImprovingSols | ( | SCIP_REOPT * | reopt, |
| int | nimprovingsols ) |
update the number of checked solutions during the reoptimization process
| reopt | reoptimization data structure |
| nimprovingsols | number of improving solutions |
Definition at line 5420 of file reopt.c.
References assert(), SCIP_Reopt::nimprovingsols, NULL, and SCIPreoptAddNImprovingSols().
Referenced by SCIPreoptAddNImprovingSols().
| int SCIPreoptGetNSolsRun | ( | SCIP_REOPT * | reopt, |
| int | run ) |
returns number of solutions stored in the solution tree of a given run
| reopt | reoptimization data structure |
| run | number of the run (1,2,..) |
Definition at line 5431 of file reopt.c.
References assert(), SCIP_SolTree::nsols, NULL, SCIPreoptGetNSolsRun(), SCIP_SolTree::sols, and SCIP_Reopt::soltree.
Referenced by SCIPreoptGetNSolsRun().
| int SCIPreoptGetNSols | ( | SCIP_REOPT * | reopt | ) |
returns number of all solutions of all runs
| reopt | reoptimization data structure |
Definition at line 5446 of file reopt.c.
References assert(), SCIP_SolTree::nsols, NULL, r, SCIP_Reopt::run, SCIPreoptGetNSols(), and SCIP_Reopt::soltree.
Referenced by SCIPreoptGetNSols().
| SCIP_RETCODE SCIPreoptGetSolsRun | ( | SCIP_REOPT * | reopt, |
| int | run, | ||
| SCIP_SOL ** | sols, | ||
| int | solssize, | ||
| int * | nsols ) |
return the stored solutions of a given run
| reopt | reoptimization data structure |
| run | number of the run (1,2,...) |
| sols | array of solutions to fill |
| solssize | length of the array |
| nsols | pointer to store the number of added solutions |
Definition at line 5461 of file reopt.c.
References assert(), SCIP_SolTree::nsols, NULL, SCIP_OKAY, SCIPreoptGetSolsRun(), SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_Reopt::soltree, TRUE, and SCIP_SolNode::updated.
Referenced by SCIPgetReoptSolsRun(), and SCIPreoptGetSolsRun().
| int SCIPreoptGetNSavedSols | ( | SCIP_REOPT * | reopt | ) |
returns the number of saved solutions overall runs
| reopt | reoptimization data structure |
Definition at line 5501 of file reopt.c.
References assert(), SCIP_SolNode::child, NULL, SCIP_SolTree::root, SCIPreoptGetNSavedSols(), SCIP_Reopt::soltree, and soltreeNInducedSols().
Referenced by SCIPreoptGetNSavedSols().
| SCIP_RETCODE SCIPreoptCheckRestart | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_NODE * | node, | ||
| SCIP_VAR ** | transvars, | ||
| int | ntransvars, | ||
| SCIP_Bool * | restart ) |
check if the reoptimization process should be (locally) restarted.
First, we check whether the current node is the root node, e.g., node == NULL. in this case, we do not need to calculate the similarity again. we trigger a restart if
If the current node is different to the root node we calculate the local similarity, i.e., exclude all variable that are already fixed by bounding.
Check if the reoptimization process should be (locally) restarted.
First, we check whether the current node is the root node, e.g., node == NULL. In this case, we do not need to calculate the similarity again. We trigger a restart if
If the current node is different to the root node we calculate the local similarity, i.e., exclude all variables that are already fixed at the given node.
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | current node of the branch and bound tree (or NULL) |
| transvars | transformed problem variables |
| ntransvars | number of transformed problem variables |
| restart | pointer to store if the reoptimization process should be restarted |
Definition at line 5528 of file reopt.c.
References assert(), FALSE, SCIP_Reopt::lastrestart, MAX, SCIP_Reopt::noptsolsbyreoptsol, SCIP_ReoptTree::nreoptnodes, NULL, reoptCheckLocalRestart(), reoptRestart(), reoptSimilarity(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_Real, SCIPreoptCheckRestart(), SCIPsetDebugMsg, SCIPsetIsFeasLT(), and TRUE.
Referenced by prepareReoptimization(), SCIPcheckReoptRestart(), and SCIPreoptCheckRestart().
| SCIP_Real SCIPreoptGetSimToPrevious | ( | SCIP_REOPT * | reopt | ) |
returns the similarity to the previous objective function, if no exist return -2.0
returns the similarity to the previous objective function
| reopt | reoptimization data structure |
Definition at line 5597 of file reopt.c.
References assert(), NULL, SCIP_Real, SCIPreoptGetSimToPrevious(), and SCIP_Reopt::simtolastobj.
Referenced by SCIPgetReoptSimilarity(), and SCIPreoptGetSimToPrevious().
| SCIP_Real SCIPreoptGetSimToFirst | ( | SCIP_REOPT * | reopt | ) |
returns the similarity to the first objective different to the zero-function function, if no exist return -2.0
returns the similarity to the first objective functions
| reopt | reoptimization data structure |
Definition at line 5606 of file reopt.c.
References assert(), NULL, SCIP_Real, SCIPreoptGetSimToFirst(), and SCIP_Reopt::simtofirstobj.
Referenced by SCIPreoptGetSimToFirst().
| SCIP_Real SCIPreoptGetSimilarity | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| int | run1, | ||
| int | run2, | ||
| SCIP_VAR ** | origvars, | ||
| int | norigvars ) |
return the similarity between two of objective functions of two given runs
| reopt | reoptimization data structure |
| set | global SCIP settings |
| run1 | number of the first run |
| run2 | number of the second run |
| origvars | original problem variables |
| norigvars | number of original problem variables |
Definition at line 5615 of file reopt.c.
References assert(), NULL, reoptSimilarity(), SCIP_Real, and SCIPreoptGetSimilarity().
Referenced by SCIPgetReoptSimilarity(), and SCIPreoptGetSimilarity().
| SCIP_SOL * SCIPreoptGetLastBestSol | ( | SCIP_REOPT * | reopt | ) |
returns the best solution of the last run
| reopt | reoptimization data structure |
Definition at line 5634 of file reopt.c.
References assert(), NULL, SCIP_Reopt::prevbestsols, SCIP_Reopt::run, and SCIPreoptGetLastBestSol().
Referenced by SCIPgetReoptLastOptSol(), and SCIPreoptGetLastBestSol().
| SCIP_REOPTNODE * SCIPreoptGetReoptnode | ( | SCIP_REOPT * | reopt, |
| unsigned int | id ) |
returns the node of the reoptimization tree corresponding to the unique id
| reopt | reoptimization data structure |
| id | unique id |
Definition at line 5648 of file reopt.c.
References assert(), NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, and SCIPreoptGetReoptnode().
Referenced by SCIPgetReoptnode(), and SCIPreoptGetReoptnode().
| SCIP_Real SCIPreoptGetOldObjCoef | ( | SCIP_REOPT * | reopt, |
| int | run, | ||
| int | idx ) |
returns the coefficient of variable with index idx in run run
returns the coefficent of variable with index idx in run run
| reopt | reoptimization data structure |
| run | number of the run (1,2,...) |
| idx | index of original variable |
Definition at line 5662 of file reopt.c.
References assert(), NULL, SCIP_Reopt::objs, SCIP_Real, and SCIPreoptGetOldObjCoef().
Referenced by reoptCheckLocalRestart(), SCIPgetReoptOldObjCoef(), and SCIPreoptGetOldObjCoef().
| SCIP_SOL * SCIPreoptGetBestSolRun | ( | SCIP_REOPT * | reopt, |
| int | run ) |
return the best solution of a given run.
return the best solution of a given run
| reopt | reoptimization data structure |
| run | number of the run (1,2,...) |
Definition at line 5678 of file reopt.c.
References assert(), NULL, SCIP_Reopt::prevbestsols, and SCIPreoptGetBestSolRun().
Referenced by SCIPreoptGetBestSolRun().
| SCIP_RETCODE SCIPreoptReset | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem ) |
reset solving specific parameters
reset solving specific paramters
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 5690 of file reopt.c.
References SCIP_Reopt::addedconss, assert(), c, SCIP_Reopt::consadded, FALSE, SCIP_Reopt::naddedconss, NULL, SCIP_Reopt::objhaschanged, SCIP_CALL, SCIP_OKAY, SCIPconsGetName(), SCIPconsRelease(), SCIPreoptReset(), and SCIPsetDebugMsg.
Referenced by freeReoptSolve(), freeTransform(), and SCIPreoptReset().
| void SCIPreoptResetSolMarks | ( | SCIP_REOPT * | reopt | ) |
reset marks of stored solutions to not updated
| reopt | reoptimization data structure |
Definition at line 5724 of file reopt.c.
References assert(), SCIP_SolNode::child, NULL, SCIP_SolTree::root, SCIPreoptResetSolMarks(), SCIP_SolNode::sibling, SCIP_Reopt::soltree, and soltreeResetMarks().
Referenced by SCIPreoptResetSolMarks(), and SCIPresetReoptSolMarks().
| int SCIPreoptGetNNodes | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node ) |
returns the number of stored nodes in the subtree induced by node
returns the number of stored nodes
| reopt | reoptimization data structure |
| node | node of the search tree |
Definition at line 5745 of file reopt.c.
References assert(), SCIP_ReoptTree::nreoptnodes, NULL, SCIP_Reopt::reopttree, reopttreeGetNNodes(), SCIPnodeGetDepth(), SCIPnodeGetReoptID(), and SCIPreoptGetNNodes().
Referenced by compressReoptTree(), SCIPgetNReoptnodes(), and SCIPreoptGetNNodes().
| int SCIPreoptnodeGetNVars | ( | SCIP_REOPTNODE * | reoptnode | ) |
In debug mode, the following methods are implemented as function calls to ensure type validity. In optimized mode, the methods are implemented as defines to improve performance. However, we want to have them in the library anyways, so we have to undef the defines. returns the number of bound changes stored in the reopttree at ID id
returns the number of bound changes stored in the reoptnode
| reoptnode | node of the reopttree |
Definition at line 5785 of file reopt.c.
References assert(), SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, and SCIPreoptnodeGetNVars().
Referenced by constructCompression(), constructCompression(), and SCIPreoptnodeGetNVars().
| int SCIPreoptnodeGetNConss | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the number of bound changes at the node stored at ID id
| reoptnode | node of the reoptimization tree |
Definition at line 5795 of file reopt.c.
References assert(), SCIP_ReoptNode::nconss, NULL, and SCIPreoptnodeGetNConss().
Referenced by constructCompression(), and SCIPreoptnodeGetNConss().
| int SCIPreoptnodeGetNDualBoundChgs | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the number of stored bound changes based on dual information in the reopttree at ID id
| reoptnode | node of the reoptimization tree |
Definition at line 5805 of file reopt.c.
References assert(), SCIP_ReoptNode::dualredscur, NULL, and SCIPreoptnodeGetNDualBoundChgs().
Referenced by SCIPreoptnodeGetNDualBoundChgs().
| int SCIPreoptnodeGetNChildren | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the number of child nodes of reoptnode
| reoptnode | node of the reoptimization tree |
Definition at line 5818 of file reopt.c.
References assert(), SCIP_ReoptNode::nchilds, NULL, and SCIPreoptnodeGetNChildren().
Referenced by Exec(), SCIPreoptimizeNode(), and SCIPreoptnodeGetNChildren().
| SCIP_Real SCIPreoptnodeGetLowerbound | ( | SCIP_REOPTNODE * | reoptnode | ) |
return the lower bound stored at ID id
| reoptnode | node of the reoptimization tree |
Definition at line 5828 of file reopt.c.
References assert(), SCIP_ReoptNode::lowerbound, NULL, SCIP_Real, and SCIPreoptnodeGetLowerbound().
Referenced by constructCompression(), constructCompression(), SCIPreoptnodeGetLowerbound(), and sortIDs().
| SCIP_REOPTTYPE SCIPreoptnodeGetType | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the type of the reoptnode
| reoptnode | node of the reoptimization tree |
Definition at line 5838 of file reopt.c.
References assert(), NULL, SCIP_ReoptNode::reopttype, and SCIPreoptnodeGetType().
Referenced by Exec(), and SCIPreoptnodeGetType().
| void SCIPreoptnodeGetConss | ( | SCIP_REOPTNODE * | reoptnode, |
| SCIP_VAR *** | vars, | ||
| SCIP_Real ** | bounds, | ||
| SCIP_BOUNDTYPE ** | boundtypes, | ||
| int | mem, | ||
| int * | nconss, | ||
| int * | nvars ) |
returns all added constraints at ID id
| reoptnode | node of the reoptimization tree |
| vars | 2-dim array of variables |
| bounds | 2-dim array of bounds |
| boundtypes | 2-dim array of boundtypes |
| mem | allocated memory for constraints |
| nconss | pointer to store the number of constraints |
| nvars | pointer to store the number of variables |
Definition at line 5848 of file reopt.c.
References assert(), c, SCIP_ReoptNode::conss, SCIP_ReoptNode::nconss, NULL, nvars, SCIP_Real, SCIPreoptnodeGetConss(), and vars.
Referenced by constructCompression(), and SCIPreoptnodeGetConss().
| void SCIPreoptnodeSetParentID | ( | SCIP_REOPTNODE * | reoptnode, |
| unsigned int | parentid ) |
set the parent id
| reoptnode | node of the reopttree |
| parentid | id of the parent node |
Definition at line 5883 of file reopt.c.
References assert(), NULL, SCIP_ReoptNode::parentID, and SCIPreoptnodeSetParentID().
Referenced by applyCompression(), applyCompression(), and SCIPreoptnodeSetParentID().
| int SCIPreoptGetNLeaves | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node ) |
returns the number of leaf nodes of the subtree induced by node (of the whole tree if node == NULL)
| reopt | reoptimization data structure |
| node | node of the search tree (or NULL) |
Definition at line 5895 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, i, SCIP_ReoptNode::nchilds, NULL, reoptGetNLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), and SCIPreoptGetNLeaves().
Referenced by SCIPcomprExec(), SCIPgetNReoptLeaves(), and SCIPreoptGetNLeaves().
| SCIP_RETCODE SCIPreoptAddInfNode | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_NODE * | node ) |
save information that given node is infeasible
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
Definition at line 5929 of file reopt.c.
References assert(), SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::ntotalinfnodes, NULL, REOPT_CONSTYPE_CUT, SCIP_Reopt::reopttree, saveGlobalCons(), SCIP_CALL, SCIP_OKAY, and SCIPreoptAddInfNode().
Referenced by SCIPreoptAddInfNode(), and SCIPreoptCheckCutoff().
| SCIP_RETCODE SCIPreoptCheckCutoff | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_NODE * | node, | ||
| SCIP_EVENTTYPE | eventtype, | ||
| SCIP_LP * | lp, | ||
| SCIP_LPSOLSTAT | lpsolstat, | ||
| SCIP_Bool | isrootnode, | ||
| SCIP_Bool | isfocusnode, | ||
| SCIP_Real | lowerbound, | ||
| int | effectiverootdepth ) |
check the reason for cut off a node and if necessary store the node
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| eventtype | eventtype |
| lp | LP data |
| lpsolstat | solution status of the LP |
| isrootnode | the node is the root |
| isfocusnode | the node is the current focus node |
| lowerbound | lower bound of the node |
| effectiverootdepth | effective root depth |
Definition at line 5953 of file reopt.c.
References addNode(), assert(), SCIP_Reopt::currentnode, deleteLastDualBndchgs(), SCIP_Reopt::dualreds, FALSE, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, lpsolstat, MIN, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_FEASIBLE, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_PRUNED, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIPlpGetCutoffbound(), SCIPlpGetSolstat(), SCIPnodeGetDepth(), SCIPnodeGetNDualBndchgs(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPreoptAddDualBndchg(), SCIPreoptAddInfNode(), SCIPreoptCheckCutoff(), SCIPreoptGetNAddedConss(), SCIPreoptGetNDualBndchgs(), SCIPreoptResetDualBndchgs(), SCIPsetDebugMsg, and TRUE.
Referenced by SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPreoptCheckCutoff(), SCIPsolveCIP(), and solveNodeLP().
| SCIP_RETCODE SCIPreoptAddDualBndchg | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_NODE * | node, | ||
| SCIP_VAR * | var, | ||
| SCIP_Real | newval, | ||
| SCIP_Real | oldval ) |
store bound change based on dual information
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| var | variable |
| newval | new bound |
| oldval | old bound |
Definition at line 6221 of file reopt.c.
References assert(), checkMemDualCons(), SCIP_Reopt::currentnode, DEFAULT_MEM_DUALCONS, SCIP_Reopt::dualreds, FALSE, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnodeGetNumber(), SCIPreoptAddDualBndchg(), SCIPsetDebugMsg, SCIPsetFindBranchrule(), SCIPsetGetIntParam(), SCIPsetIsEQ(), SCIPsetIsLT(), SCIPvarGetName(), SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), and var.
Referenced by SCIPaddReoptDualBndchg(), SCIPreoptAddDualBndchg(), and SCIPreoptCheckCutoff().
| int SCIPreoptGetNDualBndchgs | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node ) |
returns the number of bound changes based on dual information
| reopt | reoptimization data structure |
| node | node of the search tree |
Definition at line 6311 of file reopt.c.
References assert(), SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, NULL, SCIPnodeGetNumber(), and SCIPreoptGetNDualBndchgs().
Referenced by SCIPreoptCheckCutoff(), and SCIPreoptGetNDualBndchgs().
| SCIP_RETCODE SCIPreoptGetChildIDs | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_NODE * | node, | ||
| unsigned int * | childs, | ||
| int | childssize, | ||
| int * | nchilds ) |
returns the child nodes of node that need to be reoptimized next or NULL if node is a leaf
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| node | node of the search tree |
| childs | array to store the child ids |
| childssize | size of the childs array |
| nchilds | pointer to store the number of child nodes |
Definition at line 6331 of file reopt.c.
References assert(), c, SCIP_ReoptNode::childids, dryBranch(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPreoptGetChildIDs(), and TRUE.
Referenced by SCIPgetReoptChildIDs(), and SCIPreoptGetChildIDs().
| SCIP_RETCODE SCIPreoptGetLeaves | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node, | ||
| unsigned int * | leaves, | ||
| int | leavessize, | ||
| int * | nleaves ) |
returns all leaves of the subtree induced by node
| reopt | reoptimization data |
| node | node of the search tree |
| leaves | array to the the ids |
| leavessize | size of leaves array |
| nleaves | pointer to store the number of leave node |
Definition at line 6384 of file reopt.c.
References assert(), SCIP_ReoptNode::childids, i, SCIP_ReoptNode::nchilds, NULL, reoptGetLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetReoptID(), and SCIPreoptGetLeaves().
Referenced by SCIPgetReoptLeaveIDs(), and SCIPreoptGetLeaves().
| SCIP_RETCODE SCIPreoptSaveOpenNodes | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_LP * | lp, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_NODE ** | leaves, | ||
| int | nleaves, | ||
| SCIP_NODE ** | childs, | ||
| int | nchilds, | ||
| SCIP_NODE ** | siblings, | ||
| int | nsiblings ) |
add all unprocessed nodes to the reoptimization tree
| reopt | reoptimization data structure |
| set | global SCIP settings |
| lp | current LP |
| blkmem | block memory |
| leaves | array of open leave nodes |
| nleaves | number of open leave nodes |
| childs | array of open children nodes |
| nchilds | number of open leave nodes |
| siblings | array of open sibling nodes |
| nsiblings | number of open leave nodes |
Definition at line 6447 of file reopt.c.
References addNode(), assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_PRUNED, SCIPnodeGetLowerbound(), SCIPreoptSaveOpenNodes(), and SCIPsetDebugMsg.
Referenced by SCIPreoptSaveOpenNodes(), and SCIPsolve().
| SCIP_RETCODE SCIPreoptMergeVarHistory | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_VAR ** | vars, | ||
| int | nvars ) |
merges the variable history of the current run with the stored history
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| vars | original problem variables |
| nvars | number of original problem variables |
Definition at line 6497 of file reopt.c.
References assert(), SCIP_Var::history, NULL, nvars, SCIP_Reopt::objhaschanged, SCIP_History::pscostcount, SCIP_History::pscostvariance, SCIP_History::pscostweightedmean, r, reoptSimilarity(), SCIP_Reopt::run, SCIP_INVALID, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPhistoryGetAvgCutoffs(), SCIPhistoryGetAvgInferences(), SCIPhistoryIncCutoffSum(), SCIPhistoryIncInferenceSum(), SCIPhistoryIncNBranchings(), SCIPreoptMergeVarHistory(), SCIPsetDebugMsg, SCIPsetIsGT(), SCIPsetIsZero(), SCIPvarGetIndex(), SCIPvarGetName(), SCIPvarGetTransVar(), SCIPvarIsActive(), SCIPvarIsOriginal(), SCIPverbMessage(), SCIP_Reopt::simtolastobj, SCIP_Reopt::varhistory, and vars.
Referenced by prepareReoptimization(), and SCIPreoptMergeVarHistory().
| SCIP_RETCODE SCIPreoptUpdateVarHistory | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_VAR ** | vars, | ||
| int | nvars ) |
updates the variable history
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| blkmem | block memory |
| vars | original variable array |
| nvars | number of original variables |
Definition at line 6589 of file reopt.c.
References assert(), BMSallocBlockMemoryArray, FALSE, SCIP_Var::history, NULL, nvars, SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPhistoryCreate(), SCIPhistoryReset(), SCIPhistoryUnite(), SCIPreoptUpdateVarHistory(), SCIPsetDebugMsg, SCIPvarGetIndex(), SCIPvarGetTransVar(), SCIPvarIsActive(), SCIPvarIsOriginal(), SCIP_Reopt::varhistory, and vars.
Referenced by SCIPreoptUpdateVarHistory(), and SCIPsolve().
| SCIP_RETCODE SCIPreoptApplyCompression | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_REOPTNODE ** | representatives, | ||
| int | nrepresentatives, | ||
| SCIP_Bool * | success ) |
reset the complete tree and set the given search frontier
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| representatives | array of representatives |
| nrepresentatives | number of representatives |
| success | pointer to store if the method was successful |
Definition at line 6644 of file reopt.c.
References assert(), c, SCIP_ReoptNode::conss, createReoptnode(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, nvars, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, r, reoptAddChild(), SCIP_ReoptTree::reoptnodes, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_ReoptNode::reopttype, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_LEAF, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_TRANSIT, SCIPqueueRemoveUInt(), SCIPreoptApplyCompression(), SCIPreoptnodeAddBndchg(), SCIPreoptnodeAddCons(), SCIPsetDebugMsg, TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by SCIPreoptApplyCompression(), and SCIPsetReoptCompression().
|
static |
transforms a set of dual reductions into a linear constraint
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| consdata | reoptimization constraint data that should represent to set of solutions pruned by the dual reductions |
| dualreds | set of dual reductions |
Definition at line 6743 of file reopt.c.
References assert(), BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, NULL, REOPT_CONSTYPE_DUALREDS, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_OKAY, SCIPsetInfinity(), SCIPsetIsEQ(), transformDualredsToLinear(), and TRUE.
Referenced by SCIPreoptSplitRoot(), and transformDualredsToLinear().
|
static |
transforms a set of dual reductions into a bounddisjuction constraint
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| consdata | reoptimization constraint data that should represent to set of solutions pruned by the dual reductions |
| dualreds | set of dual reductions |
Definition at line 6803 of file reopt.c.
References assert(), BMSduplicateBlockMemoryArray, FALSE, MAX, MIN, NULL, REOPT_CONSTYPE_DUALREDS, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and transformDualredsToBounddisjunction().
Referenced by SCIPreoptSplitRoot(), and transformDualredsToBounddisjunction().
| SCIP_RETCODE SCIPreoptSplitRoot | ( | SCIP_REOPT * | reopt, |
| SCIP_TREE * | tree, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| BMS_BLKMEM * | blkmem, | ||
| int * | ncreatedchilds, | ||
| int * | naddedconss ) |
splits the root into several nodes and moves the child nodes of the root to one of the created nodes
| reopt | reoptimization data structure |
| tree | branch and bound tree |
| set | global SCIP settings |
| stat | dynamic SCIP statistics |
| blkmem | block memory |
| ncreatedchilds | pointer to store the number of created nodes |
| naddedconss | pointer to store the number added constraints |
Definition at line 6860 of file reopt.c.
References assert(), BMSallocBlockMemory, c, SCIP_ReoptNode::conss, createReoptnode(), SCIP_ReoptNode::dualredscur, getInferenceOrder(), SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, nvars, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, SCIP_Reopt::randnumgen, reoptAddChild(), reoptMoveIDs(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, reopttreeCheckMemory(), SCIP_ReoptNode::reopttype, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIP_VARTYPE_BINARY, SCIPnodeSetReopttype(), SCIPqueueRemoveUInt(), SCIPrandomPermuteIntArray(), SCIPreoptSplitRoot(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPtreeGetRootNode(), SCIPvarGetType(), SCIPvarIsImpliedIntegral(), SCIPvarIsIntegral(), transformDualredsToBounddisjunction(), transformDualredsToLinear(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and vars.
Referenced by SCIPreoptSplitRoot(), and SCIPsplitReoptRoot().
| SCIP_RETCODE SCIPreoptResetDualBndchgs | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node, | ||
| BMS_BLKMEM * | blkmem ) |
reset the stored information abound bound changes based on dual information
| reopt | reoptimization data structure |
| node | node of the search tree |
| blkmem | block memory |
Definition at line 7149 of file reopt.c.
References assert(), NULL, reoptnodeResetDualConss(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), and SCIPreoptResetDualBndchgs().
Referenced by addNode(), SCIPreoptCheckCutoff(), SCIPreoptResetDualBndchgs(), and SCIPresetReoptnodeDualcons().
| void SCIPreoptnodeGetPath | ( | SCIP_REOPT * | reopt, |
| SCIP_REOPTNODE * | reoptnode, | ||
| SCIP_VAR ** | vars, | ||
| SCIP_Real * | vals, | ||
| SCIP_BOUNDTYPE * | boundtypes, | ||
| int | varssize, | ||
| int * | nbndchgs, | ||
| int * | nbndchgsafterdual ) |
return the branching path stored of the given node in the reoptimization tree
return the branching path of the given node in the reoptimization tree
| reopt | reoptimization data structure |
| reoptnode | node of the reoptimization tree |
| vars | array for variables |
| vals | array for values |
| boundtypes | array for bound types |
| varssize | size of arrays vars, vals, and boundtypes |
| nbndchgs | pointer to store the number of bound changes |
| nbndchgsafterdual | pointer to store the number of bound changes applied after the first dual reduction at the given node |
Definition at line 7174 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, assert(), SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Real, SCIPreoptnodeGetPath(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and vars.
Referenced by SCIPgetReoptnodePath(), and SCIPreoptnodeGetPath().
| SCIP_RETCODE SCIPreoptDeleteNode | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| unsigned int | id, | ||
| BMS_BLKMEM * | blkmem ) |
delete a node stored in the reoptimization tree
| reopt | reoptimization data structure |
| set | global SCIP settings |
| id | id of a stored node |
| blkmem | block memory |
Definition at line 7233 of file reopt.c.
References assert(), NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIPqueueInsertUInt(), SCIPreoptDeleteNode(), and TRUE.
Referenced by SCIPreoptDeleteNode().
| SCIP_RETCODE SCIPreoptApply | ( | SCIP_REOPT * | reopt, |
| SCIP * | scip, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_LP * | lp, | ||
| SCIP_BRANCHCAND * | branchcand, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_CLIQUETABLE * | cliquetable, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_REOPTNODE * | reoptnode, | ||
| unsigned int | id, | ||
| SCIP_Real | estimate, | ||
| SCIP_NODE ** | childnodes, | ||
| int * | ncreatedchilds, | ||
| int * | naddedconss, | ||
| int | childnodessize, | ||
| SCIP_Bool * | success ) |
reactivate the given reoptnode and split them into several nodes if necessary
| reopt | reoptimization data structure |
| scip | SCIP data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| transprob | transformed problem |
| origprob | original problem |
| tree | branching tree |
| lp | current LP |
| branchcand | branching candidate |
| eventqueue | event queue |
| eventfilter | global event filter |
| cliquetable | clique table |
| blkmem | block memory |
| reoptnode | node of the reoptimization tree to reactivate |
| id | id of the node to reactivate |
| estimate | estimate of the child nodes that should be created |
| childnodes | array to store the created child nodes |
| ncreatedchilds | pointer to store number of created child nodes |
| naddedconss | pointer to store number of generated constraints |
| childnodessize | available size of childnodes array |
| success | pointer store the result |
Definition at line 7253 of file reopt.c.
References addLocalConss(), addNode(), addSplitcons(), assert(), c, changeAncestorBranchings(), SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, fixBounds(), fixInterdiction(), getInferenceOrder(), SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nconss, NULL, nvars, SCIP_Reopt::objhaschanged, SCIP_Reopt::randnumgen, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_ReoptNode::reopttype, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_NONE, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIPnodeCreateChild(), SCIPnodeGetNumber(), SCIPnodeSetEstimate(), SCIPnodeSetReoptID(), SCIPnodeSetReopttype(), SCIPrandomPermuteIntArray(), SCIPreoptApply(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsGT(), TRUE, and vars.
Referenced by SCIPapplyReopt(), and SCIPreoptApply().
| SCIP_Real SCIPreoptGetSavingtime | ( | SCIP_REOPT * | reopt | ) |
returns the time needed to store the nodes for reoptimization
| reopt | reoptimization data structure |
Definition at line 7556 of file reopt.c.
References assert(), NULL, SCIP_Reopt::savingtime, SCIP_Real, SCIPclockGetTime(), and SCIPreoptGetSavingtime().
Referenced by SCIPprintReoptStatistics(), and SCIPreoptGetSavingtime().
| SCIP_RETCODE SCIPreoptApplyGlbConss | ( | SCIP * | scip, |
| SCIP_REOPT * | reopt, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| BMS_BLKMEM * | blkmem ) |
add the stored constraints globally to the problem
| scip | SCIP data structure |
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| blkmem | block memory |
Definition at line 7566 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Reopt::activeconssset, assert(), c, ensureActiveconssSize(), FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nactiveconss, SCIP_Reopt::nglbconss, SCIP_Reopt::nmaxactiveconss, NULL, REOPT_CONSTYPE_CUT, SCIP_Reopt::run, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsBasicBounddisjunction(), SCIPcreateConsLogicor(), SCIPdebugPrintCons, SCIPerrorMessage, SCIPfreeBufferArray, SCIPhashsetExists(), SCIPhashsetInsert(), SCIPreoptApplyGlbConss(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarIsImpliedIntegral(), SCIPvarIsIntegral(), SCIPvarIsOriginal(), SCIPvarNegate(), and TRUE.
Referenced by prepareReoptimization(), and SCIPreoptApplyGlbConss().
| SCIP_RETCODE SCIPreoptApplyCuts | ( | SCIP_REOPT * | reopt, |
| SCIP_NODE * | node, | ||
| SCIP_SEPASTORE * | sepastore, | ||
| SCIP_CUTPOOL * | cutpool, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_LP * | lp, | ||
| SCIP_Bool | root ) |
add the stored cuts to the separation storage
| reopt | reoptimization data structure |
| node | current focus node |
| sepastore | separation storage |
| cutpool | global cutpool |
| blkmem | block memory |
| set | global SCIP settings |
| stat | dynamic problem statistics |
| eventqueue | event queue |
| eventfilter | event filter |
| lp | current LP |
| root | bool whether the current node is the root |
Definition at line 7688 of file reopt.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, c, SCIP_ReoptNode::conss, FALSE, i, SCIP_ReoptNode::nconss, NULL, REOPT_CONSTYPE_CUT, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_ROWORIGINTYPE_REOPT, SCIP_VARSTATUS_COLUMN, SCIPcutpoolAddRow(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetReoptID(), SCIPreoptApplyCuts(), SCIProwCreate(), SCIProwRelease(), SCIPsepastoreAddCut(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsnprintf(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarGetTransVar(), SCIPvarIsOriginal(), and TRUE.
Referenced by SCIPinitConssLP(), and SCIPreoptApplyCuts().
| SCIP_Bool SCIPreoptGetSolveLP | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_NODE * | node ) |
check if the LP of the given node should be solved or not
| reopt | reoptimization data structure |
| set | global SCIP settings |
| node | node of the current search tree |
Definition at line 7818 of file reopt.c.
References assert(), FALSE, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPnodeGetReopttype(), SCIPreoptGetSolveLP(), SCIPsetIsGE(), SCIP_Reopt::simtolastobj, and TRUE.
Referenced by SCIPreoptGetSolveLP(), and solveNode().
| void SCIPreoptnodeInit | ( | SCIP_REOPTNODE * | reoptnode, |
| SCIP_SET * | set ) |
initialize an empty node
| reoptnode | node of the reopttree |
| set | global SCIP settings |
Definition at line 7865 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, SCIP_ReoptNode::allocchildmem, assert(), SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptNode::reopttype, SCIP_REOPTTYPE_NONE, SCIPreoptnodeInit(), SCIPsetInfinity(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by SCIPinitRepresentation(), and SCIPreoptnodeInit().
| SCIP_RETCODE SCIPreoptnodeReset | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_REOPTNODE * | reoptnode ) |
reset the given reoptimization node
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| reoptnode | reoptimization node |
Definition at line 7898 of file reopt.c.
References assert(), NULL, reoptnodeReset(), SCIP_CALL, SCIP_OKAY, and SCIPreoptnodeReset().
Referenced by SCIPreoptnodeReset(), and SCIPresetRepresentation().
| SCIP_RETCODE SCIPreoptnodeDelete | ( | SCIP_REOPTNODE ** | reoptnode, |
| BMS_BLKMEM * | blkmem ) |
delete the given reoptimization node
| reoptnode | pointer of reoptnode |
| blkmem | block memory |
Definition at line 7916 of file reopt.c.
References assert(), NULL, reoptnodeDelete(), SCIP_CALL, SCIP_OKAY, and SCIPreoptnodeDelete().
Referenced by SCIPdeleteReoptnode(), SCIPfreeRepresentation(), and SCIPreoptnodeDelete().
| SCIP_RETCODE SCIPreoptnodeAddBndchg | ( | SCIP_REOPTNODE * | reoptnode, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_VAR * | var, | ||
| SCIP_Real | val, | ||
| SCIP_BOUNDTYPE | boundtype ) |
add a variable to a given reoptnode
| reoptnode | node of the reopttree |
| set | global SCIP settings |
| blkmem | block memory |
| var | variable to add |
| val | value of the variable |
| boundtype | boundtype of the variable |
Definition at line 7930 of file reopt.c.
References assert(), NULL, nvars, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPreoptnodeAddBndchg(), var, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by SCIPaddReoptnodeBndchg(), SCIPreoptApplyCompression(), SCIPreoptnodeAddBndchg(), and SCIPreoptnodeAddCons().
| SCIP_RETCODE SCIPreoptnodeAddCons | ( | SCIP_REOPTNODE * | reoptnode, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_VAR ** | vars, | ||
| SCIP_Real * | bounds, | ||
| SCIP_BOUNDTYPE * | boundtypes, | ||
| SCIP_Real | lhs, | ||
| SCIP_Real | rhs, | ||
| int | nvars, | ||
| REOPT_CONSTYPE | constype, | ||
| SCIP_Bool | linear ) |
add a constraint to a given reoptnode
| reoptnode | node of the reopttree |
| set | global SCIP settings |
| blkmem | block memory |
| vars | variables which are part of the constraint |
| bounds | bounds of the variables |
| boundtypes | boundtypes of the variables (or NULL is the constraint is a cut) |
| lhs | lhs of the constraint |
| rhs | rhs of the constraint |
| nvars | number of variables |
| constype | type of the constraint |
| linear | the given constraint has a linear representation |
Definition at line 7958 of file reopt.c.
References assert(), BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_ReoptNode::conss, SCIP_ReoptNode::nconss, NULL, nvars, REOPT_CONSTYPE_CUT, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, reoptnodeCheckMemory(), SCIP_ALLOC, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPreoptnodeAddBndchg(), SCIPreoptnodeAddCons(), SCIPsetDebugMsg, SCIPsetIsGE(), SCIPsetIsLE(), SCIPvarGetLbLocal(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarIsImpliedIntegral(), and vars.
Referenced by SCIPaddReoptnodeCons(), SCIPreoptApplyCompression(), SCIPreoptnodeAddCons(), and storeCuts().
| SCIP_RETCODE SCIPreoptAddCons | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_CONS * | cons ) |
add a constraint to the reoptimization data structure
| reopt | reoptimization data structure |
| set | global SCIP settings |
| blkmem | block memory |
| cons | constraint to add |
Definition at line 8051 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::addedconsssize, assert(), BMSallocClearBlockMemoryArray, BMSclearMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::consadded, SCIP_Reopt::naddedconss, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPconsCapture(), SCIPconsGetName(), SCIPreoptAddCons(), SCIPsetCalcMemGrowSize(), SCIPsetDebugMsg, and TRUE.
Referenced by SCIPaddCons(), and SCIPreoptAddCons().
| SCIP_RETCODE SCIPreoptSaveGlobalBounds | ( | SCIP_REOPT * | reopt, |
| SCIP_PROB * | transprob, | ||
| BMS_BLKMEM * | blkmem ) |
save global lower and upper bounds
save global lower and upper bounds
| reopt | reoptimization data structure |
| transprob | transformed problem data |
| blkmem | block memory |
Definition at line 8102 of file reopt.c.
References assert(), SCIP_Reopt::glblb, SCIP_Reopt::glbub, i, NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapInsertReal(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPreoptSaveGlobalBounds(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsRelaxationOnly(), and vars.
Referenced by prepareReoptimization(), and SCIPreoptSaveGlobalBounds().
| SCIP_RETCODE SCIPreoptSaveActiveConss | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_PROB * | transprob, | ||
| BMS_BLKMEM * | blkmem ) |
save active constraints
| reopt | reoptimization data structure |
| set | global SCIP settings |
| transprob | transformed problem data |
| blkmem | block memory |
Definition at line 8142 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Reopt::activeconssset, assert(), ensureActiveconssSize(), i, SCIP_Reopt::nactiveconss, SCIP_Reopt::nmaxactiveconss, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsCapture(), SCIPconsIsActive(), SCIPhashsetCreate(), SCIPhashsetExists(), SCIPhashsetInsert(), SCIPprobGetConss(), SCIPprobGetNConss(), SCIPreoptSaveActiveConss(), and SCIPsetDebugMsg.
Referenced by prepareReoptimization(), and SCIPreoptSaveActiveConss().
| SCIP_RETCODE SCIPreoptInstallBounds | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_LP * | lp, | ||
| SCIP_BRANCHCAND * | branchcand, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_CLIQUETABLE * | cliquetable, | ||
| BMS_BLKMEM * | blkmem ) |
installs global lower and upper bounds
| reopt | reoptimization data structure |
| set | global SCIP settings |
| stat | dynamic SCIP statistics |
| transprob | transformed problem data |
| lp | current LP data |
| branchcand | branching candidate storage |
| eventqueue | event queue |
| cliquetable | clique table data structure |
| blkmem | block memory |
Definition at line 8182 of file reopt.c.
References assert(), SCIP_Reopt::glblb, SCIP_Reopt::glbub, i, NULL, nvars, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageReal(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPprobIsTransformed(), SCIPreoptInstallBounds(), SCIPvarChgLbGlobal(), SCIPvarChgLbLocal(), SCIPvarChgUbGlobal(), SCIPvarChgUbLocal(), SCIPvarIsRelaxationOnly(), and vars.
Referenced by prepareReoptimization(), and SCIPreoptInstallBounds().
| SCIP_RETCODE SCIPreoptResetActiveConss | ( | SCIP_REOPT * | reopt, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat ) |
reactivate globally valid constraints that were deactivated and necessary to ensure correctness
Definition at line 8234 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Reopt::activeconssset, assert(), SCIP_Cons::deleted, FALSE, i, SCIP_Reopt::nactiveconss, SCIP_Reopt::nmaxactiveconss, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsActivate(), SCIPconsDeactivate(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPhashsetExists(), SCIPreoptResetActiveConss(), SCIPsetDebugMsg, and TRUE.
Referenced by prepareReoptimization(), and SCIPreoptResetActiveConss().
| SCIP_Bool SCIPreoptConsCanBeDeleted | ( | SCIP_REOPT * | reopt, |
| SCIP_CONS * | cons ) |
returns whether a constraint is necessary to ensure correctness and cannot be deleted
| reopt | reoptimization data structure |
| cons | problem constraint |
Definition at line 8275 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Reopt::activeconssset, assert(), NULL, SCIP_Bool, SCIPhashsetExists(), SCIPreoptConsCanBeDeleted(), and TRUE.
Referenced by SCIPconsDelete(), and SCIPreoptConsCanBeDeleted().