|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Detailed Descriptiondata structures and methods for collecting reoptimization information Definition in file reopt.c. #include <assert.h>#include <string.h>#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/misc.h"#include "scip/reopt.h"#include "scip/tree.h"#include "scip/primal.h"#include "scip/prob.h"#include "scip/cons.h"#include "scip/cons_logicor.h"#include "scip/clock.h"#include "scip/heur_reoptsols.h"#include "blockmemshell/memory.h"Go to the source code of this file.
Macro Definition Documentation
Definition at line 43 of file reopt.c. Referenced by saveAfterDualBranchings().
Definition at line 44 of file reopt.c. Referenced by saveAncestorBranchings().
Definition at line 45 of file reopt.c. Referenced by createReopttree().
Definition at line 46 of file reopt.c. Referenced by createSolTree(), and SCIPreoptCreate().
Definition at line 47 of file reopt.c. Referenced by SCIPreoptAddDualBndchg().
Definition at line 50 of file reopt.c. Referenced by SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXITSOL(), SCIP_DECL_EVENTINITSOL(), and SCIPreoptCreate().
Definition at line 51 of file reopt.c. Referenced by SCIPreoptCreate(). Function Documentation
Definition at line 57 of file reopt.c. References EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPaddReoptDualBndchg(), SCIPdebugMessage, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetCurrentNode(), SCIPgetEffectiveRootDepth(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPvarGetName(), and SCIPvarGetType().
solving process initialization method of event handler (called when branch and bound process is about to begin) Definition at line 91 of file reopt.c. References EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPcatchVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), and SCIPvarGetType().
solving process deinitialization method of event handler (called before branch and bound process data is freed) Definition at line 115 of file reopt.c. References EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPdropVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), and SCIPvarGetType().
ensures, that sols[pos] array can store at least num entries
Definition at line 145 of file reopt.c. References BMSreallocBlockMemoryArray, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree. Referenced by SCIPreoptAddSol().
ensures, that sols array can store at least num entries
Definition at line 172 of file reopt.c. References BMSreallocBlockMemoryArray, BMSreallocMemoryArray, SCIP_SolTree::nsols, NULL, SCIP_Reopt::objs, SCIP_Reopt::prevbestsols, SCIP_Reopt::runsize, SCIP_ALLOC, SCIP_OKAY, SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree. Referenced by reoptSaveNewObj(), and SCIPreoptAddRun().
check the memory of the reoptimization tree and if necessary reallocate
Definition at line 208 of file reopt.c. References BMSreallocBlockMemoryArray, SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPqueueInsert(), and SCIPqueueIsEmpty(). Referenced by addNode(), and SCIPreoptSplitRoot().
check allocated memory of a node within the reoptimization tree and if necessary reallocate
Definition at line 239 of file reopt.c. References SCIP_ReoptNode::allocchildmem, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ALLOC, SCIP_OKAY, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize. Referenced by addNode(), changeAncestorBranchings(), dryBranch(), fixBounds(), moveChildrenUp(), reoptAddChild(), reoptMoveIDs(), saveAncestorBranchings(), saveLocalConssData(), SCIPreoptnodeAddBndchg(), SCIPreoptnodeAddCons(), SCIPreoptSplitRoot(), and updateConstraintPropagation().
returns the number of stored solutions in the subtree induced by
Definition at line 313 of file reopt.c. References SCIP_SolNode::father, SCIP_SolNode::lchild, NULL, and SCIP_SolNode::rchild. Referenced by SCIPreoptGetNSavedSols().
returns the similarity of the objective functions of two given iterations
Definition at line 336 of file reopt.c. References FALSE, NULL, SCIP_Reopt::objs, SCIP_Bool, SCIP_Real, SCIPsetIsFeasLT(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsOriginal(), and TRUE. Referenced by reoptSaveNewObj(), and SCIPreoptGetSimilarity().
delete the given reoptimization node
Definition at line 396 of file reopt.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, NULL, and SCIP_OKAY. Referenced by reopttreeDeleteNode(), and SCIPreoptnodeDelete().
reset the given reoptimization node
Definition at line 511 of file reopt.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualconsnex, SCIP_ReoptNode::dualfixing, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptNode::reopttype, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPsetInfinity(), LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by reopttreeDeleteNode(), and SCIPreoptnodeReset().
delete the node stored at position
Definition at line 575 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, reoptnodeDelete(), reoptnodeReset(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, and SCIP_OKAY. Referenced by clearReoptnodes(), deleteChildrenBelow(), dryBranch(), SCIPreoptDeleteNode(), and shrinkNode().
constructor of the solution tree
Definition at line 607 of file reopt.c. References BMSallocBlockMemory, BMSallocBlockMemoryArray, DEFAULT_MEM_RUN, FALSE, SCIP_SolNode::father, SCIP_SolNode::lchild, SCIP_SolTree::nsols, NULL, SCIP_SolNode::rchild, SCIP_SolTree::root, SCIP_ALLOC, SCIP_OKAY, SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_SolNode::updated. Referenced by SCIPreoptCreate().
free the given solution node
Definition at line 639 of file reopt.c. References BMSfreeBlockMemoryNull, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPsolFree(), and SCIP_Set::stage. Referenced by freeSolTree().
free the solution tree
Definition at line 682 of file reopt.c. References BMSfreeBlockMemoryArray, BMSfreeMemory, 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 SCIPreoptFree().
creates and adds a solution node to the solution tree
Definition at line 709 of file reopt.c. References BMSallocBlockMemory, FALSE, SCIP_SolNode::father, SCIP_SolNode::lchild, NULL, SCIP_SolNode::rchild, SCIP_ALLOC, SCIP_OKAY, SCIP_SolNode::sol, and SCIP_SolNode::updated. Referenced by soltreeAddSol().
add a solution to the solution tree
Definition at line 739 of file reopt.c. References FALSE, SCIP_SolNode::lchild, NULL, SCIP_Reopt::prevbestsols, SCIP_SolNode::rchild, SCIP_Set::reopt_savesols, SCIP_SolTree::root, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPsetIsFeasEQ(), SCIPsolCopy(), SCIPsolGetVal(), SCIPvarGetType(), SCIP_SolNode::sol, solnodeAddChild(), SCIP_Reopt::soltree, and TRUE. Referenced by SCIPreoptAddSol().
reset all marks 'updated' to FALSE
Definition at line 838 of file reopt.c. References FALSE, SCIP_SolNode::father, SCIP_SolNode::lchild, NULL, SCIP_SolNode::rchild, SCIP_SolNode::sol, and SCIP_SolNode::updated. Referenced by SCIPreoptResetSolMarks().
allocate memory for a node within the reoptimization tree
Definition at line 866 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, SCIP_ReoptNode::allocchildmem, BMSallocBlockMemory, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualconsnex, SCIP_ReoptNode::dualfixing, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptTree::reoptnodes, SCIP_ReoptNode::reopttype, SCIP_ALLOC, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPdebugMessage, SCIPsetInfinity(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize. Referenced by addNode(), createReopttree(), reoptRestart(), SCIPreoptApplyCompression(), and SCIPreoptSplitRoot().
constructor of the reoptimization tree
Definition at line 921 of file reopt.c. References BMSallocBlockMemoryArray, createReoptnode(), DEFAULT_MEM_NODES, SCIP_ReoptTree::ncutoffreoptnodes, SCIP_ReoptTree::nfeasnodes, SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::ninfsubtrees, 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(), SCIPqueueInsert(), and SCIPqueueNElems(). Referenced by SCIPreoptCreate().
clears the reopttree, e.g., to restart and solve the next problem from scratch
Definition at line 968 of file reopt.c. References SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIPqueueClear(), SCIPqueueInsert(), and SCIPqueueNElems(). Referenced by freeReoptTree(), and reoptResetTree().
free the reoptimization tree
Definition at line 1006 of file reopt.c. References BMSfreeBlockMemoryArray, BMSfreeMemory, clearReoptnodes(), FALSE, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPqueueFree(). Referenced by SCIPreoptFree().
check memory for the constraint to handle bound changes based on dual information
Definition at line 1030 of file reopt.c. References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::dualcons, NULL, LogicOrData::nvars, SCIP_ALLOC, SCIP_OKAY, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by collectDualInformation(), and SCIPreoptAddDualBndchg().
check the memory to store global constraints
Definition at line 1070 of file reopt.c. References SCIP_Reopt::allocmemglbconss, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, SCIP_ALLOC, and SCIP_OKAY. Referenced by saveGlobalCons(), and SCIPreoptAddGlbCons().
update the bound changes made by constraint propagations during current iteration; stop saving the bound changes if we reach a branching decision based on a dual information.
Definition at line 1103 of file reopt.c. References NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetConsProps(), SCIPnodeGetNDomchg(), TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize. Referenced by addNode().
save bound changes made after the first bound change based on dual information, e.g., mode by strong branching. this method is 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 change 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.
Definition at line 1158 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, DEFAULT_MEM_VARAFTERDUAL, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_ALLOC, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetBdChgsAfterDual(), and TRUE. Referenced by addNode().
transform variable and bounds back to the original space
Definition at line 1234 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), SCIP_ReoptNode::varbounds, and SCIP_ReoptNode::vars. Referenced by addNode().
search the next node along the root path that was saved by reoptimization
Definition at line 1284 of file reopt.c. References NULL, SCIP_Set::reopt_saveconsprop, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_Reopt::reopttree, SCIP_OKAY, SCIP_REOPTTYPE_TRANSIT, SCIPnodeGetDepth(), SCIPnodeGetNDomchg(), SCIPnodeGetParent(), SCIPnodeGetReoptID(), and SCIPnodeGetReopttype(). Referenced by addNode(), and shrinkNode().
adds the id
Definition at line 1336 of file reopt.c. References SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by addNode(), moveChildrenUp(), SCIPreoptApplyCompression(), and SCIPreoptSplitRoot().
move all children to the next node (along the root path) stored in the reoptimization tree
Definition at line 1368 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, 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 shrinkNode().
delete all nodes in the subtree induced by nodeID
Definition at line 1425 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPqueueInsert(), and TRUE. Referenced by addNode(), dryBranch(), and reoptCheckLocalRestart().
replaces a reoptimization nodes by its stored child nodes
Definition at line 1471 of file reopt.c. References SCIP_ReoptNode::childids, getLastSavedNode(), moveChildrenUp(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPdebugMessage, SCIPnodeGetNumber(), SCIPnodeSetReopttype(), SCIPqueueInsert(), and TRUE. Referenced by addNode().
change all reopttypes in the subtree induced by
Definition at line 1544 of file reopt.c. References 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().
delete the constraint handling dual information for the current iteration and replace it with the dual constraint for the next iteration
Definition at line 1590 of file reopt.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualconsnex, SCIP_ReoptNode::dualfixing, NULL, SCIP_OKAY, SCIPdebugMessage, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by fixBounds(), reoptCheckLocalRestart(), SCIPreoptApply(), and SCIPreoptSplitRoot().
calculates a (local) similarity of a given node and returns if the subproblem should be solved from scratch
Definition at line 1621 of file reopt.c. References deleteChildrenBelow(), FALSE, SCIP_Reopt::nlocrestarts, SCIP_Reopt::ntotallocrestarts, NULL, SCIP_Set::reopt_objsimdelay, SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPreoptGetOldObjCoef(), SCIPsetIsFeasLT(), SCIPsetIsLT(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIPreoptCheckRestart().
save ancestor branching information up to the next stored node
Definition at line 1712 of file reopt.c. References DEFAULT_MEM_VAR, NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetAncestorBranchingsPart(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize. Referenced by addNode().
save additional all constraints that were additionally added to
Definition at line 1779 of file reopt.c. References BMSallocBlockMemory, BMSallocBlockMemoryArray, SCIP_ReoptNode::conss, LogicOrData::constype, FALSE, SCIP_ReoptNode::nconss, NULL, LogicOrData::nvars, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_SEPASOLUTION, REOPT_CONSTYPE_STRBRANCHED, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetName(), SCIPconsGetNVars(), SCIPconsGetVars(), SCIPdebugMessage, SCIPnodeGetAddedConss(), SCIPnodeGetNAddedConss(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPvarGetOrigvarSum(), SCIPvarIsNegated(), SCIPvarIsOriginal(), LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by addNode().
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.
Definition at line 1889 of file reopt.c. References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, checkMemDualCons(), LogicOrData::constype, SCIP_Reopt::currentnode, SCIP_Reopt::dualcons, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualconsnex, SCIP_ReoptNode::dualfixing, FALSE, NULL, LogicOrData::nvars, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_STRBRANCHED, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_STRBRANCHED, SCIPdebugMessage, SCIPnodeGetDualBoundchgs(), SCIPnodeGetNDualBndchgs(), SCIPnodeGetNumber(), SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), TRUE, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by addNode().
adds a node of the branch and bound tree to the reoptimization tree
Definition at line 2011 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::allocchildmem, changeReopttypeOfSubtree(), SCIP_ReoptNode::childids, collectDualInformation(), createReoptnode(), SCIP_Reopt::currentnode, deleteChildrenBelow(), SCIP_Reopt::dualcons, SCIP_ReoptNode::dualfixing, 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, LogicOrData::nvars, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, REALABS, SCIP_Set::reopt_maxsavednodes, SCIP_Set::reopt_reducetofrontier, SCIP_Set::reopt_saveconsprop, SCIP_Set::reopt_shrinkinner, 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_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(), SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNAddedConss(), SCIPnodeGetNumber(), SCIPnodeGetReoptID(), SCIPnodeSetReoptID(), SCIPnodeSetReopttype(), SCIPqueueRemove(), SCIPreoptResetDualBndchgs(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPvarGetName(), shrinkNode(), transformIntoOrig(), TRUE, updateConstraintPropagation(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars. Referenced by SCIPreoptCheckCutoff(), and SCIPreoptSaveOpenNodes().
delete the stored information about dual bound changes of the last focused node
Definition at line 2504 of file reopt.c. References SCIP_Reopt::currentnode, SCIP_Reopt::dualcons, NULL, LogicOrData::nvars, and SCIPdebugMessage. Referenced by SCIPreoptCheckCutoff().
delete the stored constraints that dual information at the given reoptimization node
Definition at line 2521 of file reopt.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualconsnex, SCIP_ReoptNode::dualfixing, FALSE, NULL, SCIP_OKAY, SCIPdebugMessage, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by SCIPreoptResetDualBndchgs().
generate a global constraint to separate an infeasible subtree
Definition at line 2556 of file reopt.c. References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, checkMemGlbCons(), LogicOrData::constype, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, REOPT_CONSTYPE_INFSUBTREE, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnodeGetAncestorBranchings(), SCIPnodeGetDepth(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPvarGetOrigvarSum(), LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by SCIPreoptAddInfNode().
move all id of child nodes from reoptimization node stored at
Definition at line 2640 of file reopt.c. References SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPreoptSplitRoot().
change all bound changes along the root path
Definition at line 2690 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, BMSfreeBlockMemoryArray, FALSE, SCIP_ReoptNode::nafterdualvars, NULL, 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, SCIPdebugMessage, SCIPnodeAddBoundchg(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsOriginal(), SCIPvarIsTransformed(), TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars. Referenced by SCIPreoptApply().
add a constraint to ensure that at least one variable bound gets different
Definition at line 2873 of file reopt.c. References LogicOrData::constype, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualfixing, FALSE, NULL, LogicOrData::nvars, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_STRBRANCHED, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPaddConsNode(), SCIPallocBufferArray, SCIPcreateConsLogicor(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPfreeBufferArray, SCIPnodeAddBoundchg(), SCIPnodeGetNumber(), SCIPreleaseCons(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsNegated(), SCIPvarIsOriginal(), SCIPvarIsTransformed(), SCIPvarNegate(), TRUE, LogicOrData::vals, and LogicOrData::vars. Referenced by SCIPreoptApply().
fix all bounds ad stored in dualconscur at the given node
Definition at line 3021 of file reopt.c. References SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualfixing, FALSE, NULL, LogicOrData::nvars, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnodeAddBoundchg(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetOrigvarSum(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), SCIPvarIsOriginal(), SCIPvarIsTransformedOrigvar(), TRUE, LogicOrData::vals, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, LogicOrData::vars, and SCIP_ReoptNode::vars. Referenced by SCIPreoptApply().
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 dualconscur and negate the negbndchg-th bound.
Definition at line 3145 of file reopt.c. References SCIP_ReoptNode::dualfixing, FALSE, MIN, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnodeAddBoundchg(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), and SCIPvarIsTransformedOrigvar(). Referenced by SCIPreoptApply().
add all constraints stored at
Definition at line 3252 of file reopt.c. References SCIP_ReoptNode::conss, LogicOrData::constype, FALSE, SCIP_ReoptNode::nconss, NULL, LogicOrData::nvars, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_STRBRANCHED, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPaddConsNode(), SCIPallocBufferArray, SCIPcreateConsLogicor(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPfreeBufferArray, SCIPnodeGetNumber(), SCIPreleaseCons(), SCIPsetIsFeasEQ(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarIsNegated(), SCIPvarIsOriginal(), SCIPvarIsTransformed(), SCIPvarNegate(), TRUE, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by SCIPreoptApply().
reset the internal statistics at the beginning of a new iteration
Definition at line 3341 of file reopt.c. References SCIP_Reopt::currentnode, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, SCIP_ReoptTree::ncutoffreoptnodes, SCIP_ReoptTree::nfeasnodes, SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::nprunednodes, NULL, and SCIP_Reopt::reopttree. Referenced by SCIPreoptAddRun().
check the stored bound changes of all child nodes for redundancy and infeasibility. due to strongbranching initialization at node stored at
Definition at line 3365 of file reopt.c. References SCIP_ReoptNode::childids, deleteChildrenBelow(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars. Referenced by SCIPreoptGetChildIDs().
return the number of all nodes in the subtree induced by the reoptimization node stored at
Definition at line 3587 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, and SCIP_ReoptTree::reoptnodes. Referenced by SCIPreoptGetNNodes().
returns the number of leaf nodes of the induced subtree
Definition at line 3610 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, and SCIP_Reopt::reopttree. Referenced by SCIPreoptGetNLeaves().
returns all leaves of the subtree induced by the node stored at
Definition at line 3643 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, and SCIP_OKAY. Referenced by SCIPreoptGetLeaves().
after restarting the reoptimization and an after compressing the search tree we have to delete all stored information
Definition at line 3691 of file reopt.c. References clearReoptnodes(), SCIP_Reopt::currentnode, SCIP_Reopt::dualcons, SCIP_ReoptTree::nreoptnodes, NULL, LogicOrData::nvars, SCIP_Reopt::reopttree, SCIP_CALL, and SCIP_OKAY. Referenced by reoptRestart(), and SCIPreoptApplyCompression().
restart the reoptimization by removing all stored information about nodes and increase the number of restarts
Definition at line 3717 of file reopt.c. References createReoptnode(), FALSE, SCIP_Reopt::firstrestart, SCIP_Reopt::lastrestart, SCIP_Reopt::nglbrestarts, SCIP_ReoptTree::nreoptnodes, NULL, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, and SCIP_OKAY. Referenced by SCIPreoptCheckRestart().
save the new objective function
Definition at line 3747 of file reopt.c. References BMSallocMemoryArray, ensureRunSize(), SCIP_Reopt::firstobj, NULL, SCIP_Reopt::objs, reoptSimilarity(), SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPsetIsFeasLT(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), SCIPvarIsOriginal(), SCIP_Reopt::simtofirstobj, and SCIP_Reopt::simtolastobj. Referenced by SCIPreoptAddRun().
permute the variable and bound array randomly
Definition at line 3825 of file reopt.c. References SCIP_Real, and SCIPgetRandomInt(). Referenced by SCIPreoptApply(), and SCIPreoptSplitRoot().
returns the number of global restarts
Definition at line 3888 of file reopt.c. References SCIP_Reopt::nglbrestarts, and NULL. Referenced by SCIPprintReoptStatistics().
returns the number of local restarts in the current run
Definition at line 3898 of file reopt.c. References SCIP_Reopt::nlocrestarts, and NULL.
returns the number of local restarts over all runs
Definition at line 3908 of file reopt.c. References SCIP_Reopt::ntotallocrestarts, and NULL. Referenced by SCIPprintReoptStatistics().
returns the number of iteration with the first global restarts
Definition at line 3918 of file reopt.c. References SCIP_Reopt::firstrestart, and NULL. Referenced by SCIPprintReoptStatistics().
returns the number of iteration with the last global restarts
Definition at line 3928 of file reopt.c. References SCIP_Reopt::lastrestart, and NULL. Referenced by SCIPprintReoptStatistics().
returns the number of stored nodes providing an improving feasible LP solution in the current run
Definition at line 3938 of file reopt.c. References SCIP_ReoptTree::nfeasnodes, NULL, and SCIP_Reopt::reopttree.
returns the number of stored nodes providing an improving feasible LP solution over all runs
Definition at line 3948 of file reopt.c. References SCIP_ReoptTree::ntotalfeasnodes, NULL, and SCIP_Reopt::reopttree. Referenced by SCIPprintReoptStatistics().
returns the number of stored nodes that exceeded the cutoff bound in the current run
Definition at line 3958 of file reopt.c. References SCIP_ReoptTree::nprunednodes, NULL, and SCIP_Reopt::reopttree.
returns the number of stored nodes that exceeded the cutoff bound over all runs
Definition at line 3968 of file reopt.c. References SCIP_ReoptTree::ntotalprunednodes, NULL, and SCIP_Reopt::reopttree. Referenced by SCIPprintReoptStatistics().
rerturns the number of reoptimized nodes that were cutoff in the same iteration in the current run
Definition at line 3978 of file reopt.c. References SCIP_ReoptTree::ncutoffreoptnodes, NULL, and SCIP_Reopt::reopttree.
rerturns the number of reoptimized nodes that were cutoff in the same iteration over all runs
Definition at line 3988 of file reopt.c. References SCIP_ReoptTree::ntotalcutoffreoptnodes, NULL, and SCIP_Reopt::reopttree. Referenced by SCIPprintReoptStatistics().
returns the number of stored nodes with an infeasible LP in the current run
Definition at line 3998 of file reopt.c. References SCIP_ReoptTree::ninfnodes, NULL, and SCIP_Reopt::reopttree.
returns the number of stored nodes with an infeasible LP over all runs
Definition at line 4008 of file reopt.c. References SCIP_ReoptTree::ntotalinfnodes, NULL, and SCIP_Reopt::reopttree. Referenced by SCIPprintReoptStatistics().
returns the number of found infeasible subtrees
Definition at line 4018 of file reopt.c. References SCIP_ReoptTree::ninfsubtrees, NULL, and SCIP_Reopt::reopttree. Referenced by SCIPprintReoptStatistics().
constructor for the reoptimization data
Definition at line 4029 of file reopt.c. References BMSallocBlockMemoryArray, BMSallocMemory, BMSallocMemoryArray, createReopttree(), createSolTree(), DEFAULT_MEM_RUN, EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPeventhdlrCreate(), and SCIPsetIncludeEventhdlr(). Referenced by SCIPenableReoptimization().
frees reoptimization data
Definition at line 4094 of file reopt.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeMemory, BMSfreeMemoryArray, freeReoptTree(), freeSolTree(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPclockFree(), and SCIP_Set::stage. Referenced by SCIPenableReoptimization(), and SCIPfreeProb().
returns the number of constraints added by the reoptimization plug-in
Definition at line 4184 of file reopt.c. References MAX, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), SCIPnodeGetNAddedConss(), and SCIPnodeGetReoptID(). Referenced by SCIPreoptCheckCutoff().
add a solution to the solution tree
Definition at line 4208 of file reopt.c. References ensureSolsSize(), SCIP_Reopt::noptsolsbyreoptsol, SCIP_SolTree::nsols, NULL, SCIP_Set::reopt_savesols, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), SCIPsolGetHeur(), SCIP_SolTree::sols, SCIP_Reopt::soltree, and soltreeAddSol(). Referenced by SCIPsolve().
we want to store the optimal solution of each run in a separate array
Definition at line 4263 of file reopt.c. References NULL, SCIP_Reopt::prevbestsols, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, and SCIPsolCopy(). Referenced by SCIPsolve().
add a new iteration after changing the objective function
Definition at line 4289 of file reopt.c. References BMSallocBlockMemoryArray, ensureRunSize(), NULL, reoptSaveNewObj(), resetStats(), SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree. Referenced by SCIPsolve().
get the number of checked during the reoptimization process
Definition at line 4321 of file reopt.c. References SCIP_Reopt::ncheckedsols, and NULL. Referenced by SCIPprintReoptStatistics().
update the number of checked during the reoptimization process
Definition at line 4331 of file reopt.c. References SCIP_Reopt::ncheckedsols, and NULL.
get the number of checked during the reoptimization process
Definition at line 4342 of file reopt.c. References SCIP_Reopt::nimprovingsols, and NULL. Referenced by SCIPprintReoptStatistics().
update the number of checked during the reoptimization process
Definition at line 4352 of file reopt.c. References SCIP_Reopt::nimprovingsols, and NULL.
returns number of solution of a given run
Definition at line 4363 of file reopt.c. References SCIP_SolTree::nsols, NULL, SCIP_SolTree::sols, and SCIP_Reopt::soltree.
returns number of all solutions of all runs
Definition at line 4378 of file reopt.c. References SCIP_SolTree::nsols, NULL, SCIP_Reopt::run, and SCIP_Reopt::soltree.
return the stored solutions of a given run
Definition at line 4396 of file reopt.c. References SCIP_SolTree::nsols, NULL, SCIP_OKAY, SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_Reopt::soltree, TRUE, and SCIP_SolNode::updated. Referenced by SCIPgetReopSolsRun().
returns the number of saved solutions overall runs
Definition at line 4437 of file reopt.c. References SCIP_SolNode::lchild, NULL, SCIP_SolNode::rchild, SCIP_SolTree::root, SCIP_Reopt::soltree, and soltreeNInducedSols().
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.
Definition at line 4467 of file reopt.c. References FALSE, SCIP_Reopt::noptsolsbyreoptsol, SCIP_ReoptTree::nreoptnodes, NULL, SCIP_Set::reopt_forceheurrestart, SCIP_Set::reopt_maxsavednodes, SCIP_Set::reopt_objsimdelay, reoptCheckLocalRestart(), reoptRestart(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPsetIsFeasLT(), SCIP_Reopt::simtolastobj, and TRUE. Referenced by SCIPcheckReoptRestart(), and SCIPsolve().
returns the similarity to the previous objective function, if no exist return -2.0
Definition at line 4532 of file reopt.c. References NULL, and SCIP_Reopt::simtolastobj. Referenced by SCIPgetReoptSimilarity().
returns the similarity to the first objective different to the zero-function function, if no exist return -2.0
Definition at line 4541 of file reopt.c. References NULL, and SCIP_Reopt::simtofirstobj.
return the similarity between two of objective functions of two given runs
Definition at line 4550 of file reopt.c. References NULL, and reoptSimilarity(). Referenced by SCIPgetReoptSimilarity().
returns the best solution of the last run
Definition at line 4569 of file reopt.c. References NULL, SCIP_Reopt::prevbestsols, and SCIP_Reopt::run. Referenced by SCIPgetReoptLastOptSol().
returns the node of the reoptimization tree corresponding to the unique
Definition at line 4586 of file reopt.c. References NULL, SCIP_ReoptTree::reoptnodes, and SCIP_Reopt::reopttree. Referenced by SCIPgetReoptnode().
returns the coefficient of variable with index
Definition at line 4600 of file reopt.c. References NULL, and SCIP_Reopt::objs. Referenced by reoptCheckLocalRestart(), and SCIPgetReoptOldObjCoef().
return the best solution of a given run.
Definition at line 4616 of file reopt.c. References NULL, and SCIP_Reopt::prevbestsols.
reset marks of stored solutions to not updated
Definition at line 4628 of file reopt.c. References SCIP_SolNode::lchild, NULL, SCIP_SolNode::rchild, SCIP_SolTree::root, SCIP_Reopt::soltree, and soltreeResetMarks(). Referenced by SCIPresetReoptSolMarks().
returns the number of stored nodes in the subtree induced by
Definition at line 4643 of file reopt.c. References SCIP_ReoptTree::nreoptnodes, NULL, SCIP_Reopt::reopttree, reopttreeGetNNodes(), SCIPnodeGetDepth(), and SCIPnodeGetReoptID(). Referenced by compressReoptTree(), and SCIPgetNReoptnodes().
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
Definition at line 4683 of file reopt.c. References SCIP_ReoptNode::nafterdualvars, NULL, and SCIP_ReoptNode::nvars. Referenced by constructCompression().
returns the number of bound changes at the node stored at ID id
Definition at line 4693 of file reopt.c. References SCIP_ReoptNode::nconss, and NULL. Referenced by constructCompression().
returns the number of stored bound changes based on dual information in the reopttree at ID id
Definition at line 4703 of file reopt.c. References SCIP_ReoptNode::dualconscur, NULL, and LogicOrData::nvars.
returns the number of child nodes of
Definition at line 4716 of file reopt.c. References SCIP_ReoptNode::nchilds, and NULL. Referenced by Exec(), and SCIPreoptimizeNode().
return the lower bound stored at
Definition at line 4726 of file reopt.c. References SCIP_ReoptNode::lowerbound, and NULL. Referenced by constructCompression(), and sortIDs().
returns the type of the
Definition at line 4736 of file reopt.c. References NULL, and SCIP_ReoptNode::reopttype. Referenced by Exec().
create the constraint which splits the node stored at ID id on the basis of the stored dual information.
Definition at line 4748 of file reopt.c. References LogicOrData::constype, SCIP_ReoptNode::dualconscur, NULL, LogicOrData::nvars, LogicOrData::vals, and LogicOrData::vars.
returns all added constraints at ID id
Definition at line 4781 of file reopt.c. References SCIP_ReoptNode::conss, SCIP_ReoptNode::nconss, NULL, LogicOrData::nvars, LogicOrData::vals, and LogicOrData::vars. Referenced by constructCompression().
set the parent id
Definition at line 4817 of file reopt.c. References NULL, and SCIP_ReoptNode::parentID. Referenced by applyCompression().
returns the number of leaf nodes of the subtree induced by
Definition at line 4829 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptGetNLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), and SCIPnodeGetReoptID(). Referenced by SCIPcomprExec(), and SCIPgetNReoptLeaves().
save information that given node is infeasible
Definition at line 4865 of file reopt.c. References SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::ntotalinfnodes, NULL, REOPT_CONSTYPE_INFSUBTREE, SCIP_Set::reopt_sepaglbinfsubtrees, SCIP_Reopt::reopttree, saveGlobalCons(), SCIP_CALL, and SCIP_OKAY. Referenced by SCIPreoptCheckCutoff().
check the reason for cut off a node and if necessary store the node
Definition at line 4889 of file reopt.c. References addNode(), SCIP_Reopt::currentnode, deleteLastDualBndchgs(), SCIP_Reopt::dualcons, FALSE, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, NULL, LogicOrData::nvars, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_STRBRANCHED, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_REOPTTYPE_FEASIBLE, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_PRUNED, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNDualBndchgs(), SCIPnodeGetNumber(), SCIPreoptAddDualBndchg(), SCIPreoptAddInfNode(), SCIPreoptGetNAddedConss(), SCIPreoptGetNDualBndchgs(), SCIPreoptResetDualBndchgs(), and TRUE. Referenced by nodeToLeaf(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPsolveCIP(), SCIPtreeCutoff(), and solveNodeLP().
store bound change based on dual information
Definition at line 5149 of file reopt.c. References checkMemDualCons(), SCIP_Reopt::currentnode, DEFAULT_MEM_DUALCONS, SCIP_Reopt::dualcons, NULL, LogicOrData::nvars, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnodeGetNumber(), SCIPsetIsFeasEQ(), SCIPvarGetName(), SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by SCIPaddReoptDualBndchg(), and SCIPreoptCheckCutoff().
returns the number of bound changes based on dual information
Definition at line 5217 of file reopt.c. References SCIP_Reopt::currentnode, SCIP_Reopt::dualcons, NULL, LogicOrData::nvars, and SCIPnodeGetNumber(). Referenced by SCIPreoptCheckCutoff().
returns the child nodes of
Definition at line 5239 of file reopt.c. References SCIP_ReoptNode::childids, dryBranch(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), and TRUE. Referenced by SCIPgetReoptChildIDs().
returns all leaves of the subtree induced by
Definition at line 5293 of file reopt.c. References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptGetLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, and SCIPnodeGetReoptID(). Referenced by SCIPgetReoptLeaveIDs().
add all unprocessed nodes to the reoptimization tree
Definition at line 5354 of file reopt.c. References addNode(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_PRUNED, SCIPdebugMessage, and SCIPnodeGetLowerbound(). Referenced by SCIPsolve().
reset the complete tree and set the given search frontier
Definition at line 5405 of file reopt.c. References BMSduplicateBlockMemoryArray, SCIP_ReoptNode::conss, LogicOrData::constype, createReoptnode(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, LogicOrData::nvars, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, reoptAddChild(), SCIP_ReoptTree::reoptnodes, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_ReoptNode::reopttype, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_LEAF, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_TRANSIT, SCIPdebugMessage, SCIPqueueRemove(), SCIPreoptnodeAddCons(), TRUE, LogicOrData::vals, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, LogicOrData::vars, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize. Referenced by SCIPsetReoptCompression().
splits the root into several nodes and moves the child nodes of the root to one of the created nodes
Definition at line 5505 of file reopt.c. References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_ReoptNode::conss, LogicOrData::constype, createReoptnode(), SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualfixing, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, LogicOrData::nvars, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, permuteRandom(), REOPT_CONSTYPE_STRBRANCHED, SCIP_Set::reopt_usesplitcons, SCIP_Set::reopt_varorderinterdiction, 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, SCIPnodeSetReopttype(), SCIPqueueRemove(), SCIPsetIsFeasEQ(), SCIPtreeGetRootNode(), LogicOrData::vals, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, LogicOrData::vars, SCIP_ReoptNode::vars, LogicOrData::varssize, and SCIP_ReoptNode::varssize. Referenced by SCIPsplitReoptRoot().
reset the stored information abound bound changes based on dual information
Definition at line 5727 of file reopt.c. References NULL, reoptnodeResetDualConss(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), and SCIPnodeGetReoptID(). Referenced by addNode(), SCIPreoptCheckCutoff(), and SCIPresetReoptnodeDualcons().
return the branching path stored of the given node in the reoptimization tree
Definition at line 5752 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPreoptnodeGetPath(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars. Referenced by SCIPgetReoptnodePath(), and SCIPreoptnodeGetPath().
delete a node stored in the reoptimization tree
Definition at line 5809 of file reopt.c. References NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, and TRUE.
reactivate the given
Definition at line 5828 of file reopt.c. References addLocalConss(), addSplitcons(), changeAncestorBranchings(), LogicOrData::constype, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualfixing, FALSE, fixBounds(), fixInterdiction(), SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nconss, NULL, LogicOrData::nvars, permuteRandom(), REALABS, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_STRBRANCHED, SCIP_Set::reopt_usesplitcons, SCIP_Set::reopt_varorderinterdiction, SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_ReoptNode::reopttype, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_NONE, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIPdebugMessage, SCIPnodeCreateChild(), SCIPnodeGetLowerbound(), SCIPnodeGetNumber(), SCIPnodeSetEstimate(), SCIPnodeSetReoptID(), SCIPnodeSetReopttype(), SCIPsetIsInfinity(), SCIPsetIsRelGE(), TRUE, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by SCIPapplyReopt().
returns the time needed to store the nodes for reoptimization
Definition at line 6216 of file reopt.c. References NULL, SCIP_Reopt::savingtime, and SCIPclockGetTime(). Referenced by SCIPprintReoptStatistics().
store a global constraint that should be added at the beginning of the next iteration
Definition at line 6226 of file reopt.c. References SCIP_Reopt::allocmemglbconss, BMSallocBlockMemory, BMSduplicateBlockMemoryArray, checkMemGlbCons(), SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, LogicOrData::nvars, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize.
add the stored constraints globally to the problem
Definition at line 6263 of file reopt.c. References FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, LogicOrData::nvars, SCIP_CALL, SCIP_OKAY, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsLogicor(), SCIPdebugMessage, SCIPdebugPrintCons, SCIPfreeBlockMemoryArrayNull, SCIPfreeBlockMemoryNull, SCIPfreeBufferArray, SCIPreleaseCons(), SCIPsetIsFeasEQ(), SCIPvarGetTransVar(), SCIPvarNegate(), TRUE, LogicOrData::vals, and LogicOrData::vars. Referenced by SCIPsolve().
check if the LP of the given node should be solved or not
Definition at line 6342 of file reopt.c. References FALSE, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptNode::nvars, SCIP_Set::reopt_objsimrootlp, SCIP_Set::reopt_solvelp, SCIP_Set::reopt_solvelpdiff, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPnodeGetReopttype(), SCIP_Reopt::simtolastobj, and TRUE. Referenced by solveNode().
initialize an empty node
Definition at line 6385 of file reopt.c. References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::dualconscur, SCIP_ReoptNode::dualconsnex, SCIP_ReoptNode::dualfixing, 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, SCIPsetInfinity(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize. Referenced by SCIPinitRepresentation().
reset the given reoptimization node
Definition at line 6418 of file reopt.c. References NULL, reoptnodeReset(), SCIP_CALL, and SCIP_OKAY. Referenced by SCIPresetRepresentation().
delete the given reoptimization node
Definition at line 6436 of file reopt.c. References NULL, reoptnodeDelete(), SCIP_CALL, and SCIP_OKAY. Referenced by SCIPdeleteReoptnode(), and SCIPfreeRepresentation().
add a variable to a given reoptnode
Definition at line 6450 of file reopt.c. References NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_CALL, SCIP_OKAY, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars. Referenced by SCIPaddReoptnodeBndchg(), and SCIPreoptnodeAddCons().
add a constraint to a given reoptnode
Definition at line 6477 of file reopt.c. References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_ReoptNode::conss, LogicOrData::constype, SCIP_ReoptNode::nconss, NULL, LogicOrData::nvars, reoptnodeCheckMemory(), SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPreoptnodeAddBndchg(), LogicOrData::vals, LogicOrData::vars, and LogicOrData::varssize. Referenced by SCIPaddReoptnodeCons(), and SCIPreoptApplyCompression(). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||