data 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/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/heur_reoptsols.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 51 of file reopt.c.
Referenced by saveAfterDualBranchings().
#define DEFAULT_MEM_VAR 10 |
Definition at line 52 of file reopt.c.
Referenced by saveAncestorBranchings().
#define DEFAULT_MEM_NODES 1000 |
Definition at line 53 of file reopt.c.
Referenced by createReopttree().
#define DEFAULT_MEM_RUN 200 |
Definition at line 54 of file reopt.c.
Referenced by createSolTree(), and SCIPreoptCreate().
#define DEFAULT_MEM_DUALCONS 10 |
Definition at line 55 of file reopt.c.
Referenced by SCIPreoptAddDualBndchg().
#define DEFAULT_RANDSEED 67 |
Definition at line 57 of file reopt.c.
Referenced by SCIPreoptCreate().
#define EVENTHDLR_NAME "Reopt" |
Definition at line 60 of file reopt.c.
Referenced by SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXITSOL(), SCIP_DECL_EVENTINITSOL(), and SCIPreoptCreate().
#define EVENTHDLR_DESC "node event handler for reoptimization" |
Definition at line 61 of file reopt.c.
Referenced by SCIPreoptCreate().
|
static |
exec the event handler
Definition at line 67 of file reopt.c.
References EVENTHDLR_NAME, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARTYPE_CONTINUOUS, SCIPaddReoptDualBndchg(), SCIPdebugMsg, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetCurrentNode(), SCIPgetEffectiveRootDepth(), SCIPgetStage(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPvarGetName(), and SCIPvarGetType().
|
static |
solving process initialization method of event handler (called when branch and bound process is about to begin)
Definition at line 103 of file reopt.c.
References EVENTHDLR_NAME, SCIP_CALL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPcatchVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), and SCIPvarGetType().
|
static |
solving process deinitialization method of event handler (called before branch and bound process data is freed)
Definition at line 129 of file reopt.c.
References EVENTHDLR_NAME, SCIP_CALL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPdropVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), and SCIPvarGetType().
|
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 161 of file reopt.c.
References BMSreallocBlockMemoryArray, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree.
Referenced by SCIPreoptAddSol().
|
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 188 of file reopt.c.
References BMSreallocBlockMemoryArray, BMSreallocMemoryArray, SCIP_SolTree::nsols, 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 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 225 of file reopt.c.
References BMSreallocBlockMemoryArray, SCIP_ReoptTree::nreoptnodes, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPqueueInsert(), SCIPqueueIsEmpty(), and SCIPsetCalcMemGrowSize().
Referenced by addNode(), 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 258 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, 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(), saveAncestorBranchings(), saveLocalConssData(), SCIPreoptnodeAddBndchg(), SCIPreoptnodeAddCons(), SCIPreoptSplitRoot(), and updateConstraintPropagation().
|
static |
returns the number of stored solutions in the subtree induced by solnode
solnode | node within the solution tree |
Definition at line 338 of file reopt.c.
References SCIP_SolNode::child, SCIP_SolNode::sibling, and SCIP_SolNode::sol.
Referenced by SCIPreoptGetNSavedSols(), and solnodeAddChild().
|
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 367 of file reopt.c.
References MAX, SCIP_Reopt::objs, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPsetIsFeasLT(), SCIPsetIsZero(), SCIPvarGetIndex(), SCIPvarGetLbLocal(), SCIPvarGetOrigvarSum(), SCIPvarGetTransVar(), SCIPvarGetUbLocal(), and SCIPvarIsOriginal().
Referenced by reoptSaveNewObj(), SCIPreoptCheckRestart(), SCIPreoptGetSimilarity(), and SCIPreoptMergeVarHistory().
|
static |
delete the given reoptimization node
reoptnode | node of the reoptimization tree |
blkmem | block memory |
Definition at line 455 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, and SCIP_OKAY.
Referenced by reopttreeDeleteNode(), and SCIPreoptnodeDelete().
|
static |
reset the given reoptimization node
reoptnode | reoptimization node |
set | global SCIP settings |
blkmem | block memory |
Definition at line 578 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, 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, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptNode::reopttype, SCIP_OKAY, SCIP_REOPTTYPE_NONE, and SCIPsetInfinity().
Referenced by 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 656 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, reoptnodeDelete(), reoptnodeReset(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, and SCIP_OKAY.
Referenced by clearReoptnodes(), deleteChildrenBelow(), dryBranch(), SCIPreoptDeleteNode(), and shrinkNode().
|
static |
constructor of the solution tree
soltree | solution tree |
blkmem | block memory |
Definition at line 688 of file reopt.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, SCIP_SolNode::child, DEFAULT_MEM_RUN, FALSE, SCIP_SolNode::father, SCIP_SolTree::nsols, 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 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 722 of file reopt.c.
References BMSfreeBlockMemoryNull, SCIP_SolNode::child, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPsolFree(), and SCIP_SolNode::sibling.
Referenced by freeSolTree().
|
static |
free the solution tree
reopt | reoptimization data |
set | global SCIP settings |
origprimal | the origprimal |
blkmem | block memory |
Definition at line 764 of file reopt.c.
References BMSfreeBlockMemoryArray, BMSfreeBlockMemoryNull, BMSfreeMemory, SCIP_SolTree::nsols, SCIP_SolTree::root, SCIP_Reopt::runsize, SCIP_CALL, SCIP_OKAY, SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_Reopt::soltree, and soltreefreeNode().
Referenced by 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 792 of file reopt.c.
References BMSallocBlockMemory, SCIP_SolNode::child, FALSE, SCIP_SolNode::father, SCIP_ALLOC, SCIP_OKAY, SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIP_SolNode::sibling, SCIP_SolNode::sol, soltreeNInducedSols(), TRUE, SCIP_SolNode::updated, SCIP_SolNode::value, and SCIP_SolNode::var.
Referenced by 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 973 of file reopt.c.
References SCIP_SolNode::child, FALSE, SCIP_Reopt::prevbestsols, SCIP_SolTree::root, SCIP_Reopt::run, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPheurGetName(), SCIPsetDebugMsg, SCIPsolCopy(), SCIPsolGetHeur(), SCIPsolGetVal(), SCIPvarGetType(), SCIP_SolNode::sol, solnodeAddChild(), SCIP_Reopt::soltree, and TRUE.
Referenced by SCIPreoptAddSol().
|
static |
reset all marks 'updated' to FALSE
node | node within the solution tree |
Definition at line 1061 of file reopt.c.
References SCIP_SolNode::child, FALSE, SCIP_SolNode::father, SCIP_SolNode::sibling, SCIP_SolNode::sol, and SCIP_SolNode::updated.
Referenced by SCIPreoptResetSolMarks().
|
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 1095 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::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, 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(), 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 1152 of file reopt.c.
References BMSallocBlockMemoryArray, createReoptnode(), 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, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPqueueCreate(), SCIPqueueInsert(), and SCIPqueueNElems().
Referenced by 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 1198 of file reopt.c.
References SCIP_ReoptTree::nreoptnodes, 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().
|
static |
free the reoptimization tree
reopttree | reoptimization tree data |
set | global SCIP settings |
blkmem | block memory |
Definition at line 1236 of file reopt.c.
References BMSfreeBlockMemoryArray, BMSfreeMemory, clearReoptnodes(), FALSE, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPqueueFree().
Referenced by 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 1260 of file reopt.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::dualreds, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by 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 1294 of file reopt.c.
References SCIP_Reopt::allocmemglbconss, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by addGlobalCut().
|
static |
reactivate globally valid constraints that were deactivated and necessary to ensure correctness
reopt | reoptimization data structure |
set | global SCIP settings |
Definition at line 1337 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_CALL, SCIP_OKAY, SCIPhashmapEntryGetImage(), SCIPhashmapGetEntry(), SCIPhashmapGetNEntries(), and SCIPreleaseCons().
Referenced by SCIPreoptReleaseData().
|
static |
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.
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 1372 of file reopt.c.
References 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().
|
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 1428 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, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_ALLOC, SCIP_OKAY, SCIPnodeGetBdChgsAfterDual(), SCIPsetCalcMemGrowSize(), SCIPsetDebugMsg, and TRUE.
Referenced by addNode().
|
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 1510 of file reopt.c.
References REOPT_CONSTYPE_CUT, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, 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(), and TRUE.
Referenced by addNode().
|
static |
transform variable and bounds back to the original space
reopt | reoptimization data structure |
id | id of the node |
Definition at line 1599 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::nafterdualvars, 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().
|
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 1644 of file reopt.c.
References 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(), 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 1705 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by addNode(), moveChildrenUp(), 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 1738 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, 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().
|
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 1799 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIPqueueInsert(), SCIPsetDebugMsg, and TRUE.
Referenced by addNode(), 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 1845 of file reopt.c.
References SCIP_ReoptNode::childids, getLastSavedNode(), moveChildrenUp(), SCIP_ReoptNode::nchilds, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPnodeGetNumber(), SCIPnodeSetReopttype(), SCIPqueueInsert(), SCIPsetDebugMsg, and TRUE.
Referenced by addNode().
|
static |
change all reopttypes in the subtree induced by nodeID
reopttree | reopttree |
id | id of the node |
reopttype | reopttype |
Definition at line 1923 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, SCIP_ReoptTree::reoptnodes, SCIP_ReoptNode::reopttype, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_INFSUBTREE, and SCIP_REOPTTYPE_STRBRANCHED.
Referenced by addNode().
|
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 1969 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_OKAY, SCIPdebugMessage, and TRUE.
Referenced by fixBounds(), reoptCheckLocalRestart(), 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 2002 of file reopt.c.
References deleteChildrenBelow(), FALSE, SCIP_Reopt::nlocrestarts, SCIP_Reopt::ntotallocrestarts, SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPreoptGetOldObjCoef(), SCIPsetDebugMsg, SCIPsetIsFeasLT(), SCIPsetIsLT(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetUbLocal(), and TRUE.
Referenced by 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 2091 of file reopt.c.
References DEFAULT_MEM_VAR, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, SCIP_OKAY, SCIPnodeGetAncestorBranchingsPart(), SCIPsetDebugMsg, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode().
|
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 2159 of file reopt.c.
References BMSallocBlockMemoryArray, FALSE, REALABS, 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(), and TRUE.
Referenced by 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 2292 of file reopt.c.
References BMSduplicateBlockMemoryArray, FALSE, REALABS, SCIP_ALLOC, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPconsGetHdlr(), SCIPconsGetNVars(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPgetBoundsBounddisjunction(), SCIPgetBoundtypesBounddisjunction(), SCIPgetVarsBounddisjunction(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsZero(), and SCIPvarGetOrigvarSum().
Referenced by 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 2362 of file reopt.c.
References BMSallocBlockMemory, SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, REOPT_CONSTYPE_UNKNOWN, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, saveConsBounddisjuction(), saveConsLinear(), SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPnodeGetAddedConss(), SCIPnodeGetNAddedConss(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, and SCIPsetFreeBufferArray.
Referenced by addNode().
|
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 2457 of file reopt.c.
References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, checkMemDualCons(), SCIP_Reopt::currentnode, SCIP_ReoptNode::dualreds, SCIP_Reopt::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, 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().
|
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 2584 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_ReoptNode::dualreds, SCIP_Reopt::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, 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_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(), SCIPqueueRemove(), SCIPreoptResetDualBndchgs(), SCIPsetDebugMsg, SCIPsetIsInfinity(), SCIPvarGetName(), shrinkNode(), storeCuts(), transformIntoOrig(), TRUE, updateConstraintPropagation(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by 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 3156 of file reopt.c.
References SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, and SCIPdebugMessage.
Referenced by SCIPreoptCheckCutoff().
|
static |
delete the stored constraints that dual information at the given reoptimization node
reoptnode | reoptimization node |
blkmem | block memory |
Definition at line 3173 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_OKAY, and SCIPdebugMessage.
Referenced by 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 3223 of file reopt.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, checkMemGlbCons(), FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, REOPT_CONSTYPE_CUT, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsIntegral(), SCIPsetRound(), SCIPvarGetLbGlobal(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and SCIPvarIsOriginal().
Referenced by 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 3421 of file reopt.c.
References addGlobalCut(), SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, REOPT_CONSTYPE_INFSUBTREE, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPnodeGetAncestorBranchings(), SCIPnodeGetDepth(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetReallocBufferArray, and SCIPvarGetType().
Referenced by 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 3489 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by 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 |
cliquetable | clique table |
blkmem | block memory |
node | node of the branch and bound tree |
id | id of stored node |
afterdualintobranching | convert all bound changes made directly after the first bound changes based on dual information into normal branchings |
Definition at line 3541 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, BMSfreeBlockMemoryArray, FALSE, SCIP_ReoptNode::nafterdualvars, 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, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by 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 |
cliquetable | clique table data structure |
node | node corresponding to the pruned part |
id | id of stored node |
Definition at line 3716 of file reopt.c.
References SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPaddConsNode(), SCIPallocBufferArray, SCIPcreateConsBounddisjunction(), SCIPcreateConsLogicor(), SCIPdebugPrintCons, SCIPerrorMessage, SCIPfreeBufferArray, SCIPisEQ(), SCIPisGE(), SCIPisLE(), SCIPnodeAddBoundchg(), SCIPnodeGetNumber(), SCIPreleaseCons(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsnprintf(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsNegated(), SCIPvarIsOriginal(), SCIPvarIsTransformed(), SCIPvarNegate(), and TRUE.
Referenced by 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 |
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 3973 of file reopt.c.
References SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, 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, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by 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 |
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 4095 of file reopt.c.
References SCIP_ReoptNode::dualreds, FALSE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPsetDebugMsg, SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetType(), SCIPvarGetUbLocal(), and SCIPvarIsTransformedOrigvar().
Referenced by 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 4207 of file reopt.c.
References SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, REOPT_CONSTYPE_CUT, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddConsNode(), SCIPcreateConsBounddisjunction(), SCIPcreateConsLinear(), SCIPdebugPrintCons, SCIPnodeGetNumber(), SCIPreleaseCons(), SCIPsetDebugMsg, SCIPsnprintf(), and TRUE.
Referenced by SCIPreoptApply().
|
static |
reset the internal statistics at the beginning of a new iteration
reopt | reoptimization data structure |
Definition at line 4278 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, and SCIP_Reopt::reopttree.
Referenced by 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 4300 of file reopt.c.
References SCIP_ReoptNode::childids, deleteChildrenBelow(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPqueueInsert(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by 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 4517 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, nnodes, and SCIP_ReoptTree::reoptnodes.
Referenced by SCIPreoptGetNNodes().
|
static |
returns the number of leaf nodes of the induced subtree
reopt | reoptimization data structure |
id | id of stored node |
Definition at line 4536 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, SCIP_ReoptTree::reoptnodes, and SCIP_Reopt::reopttree.
Referenced by 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 4567 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, and SCIP_OKAY.
Referenced by 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 4614 of file reopt.c.
References clearReoptnodes(), SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, SCIP_ReoptTree::nreoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, and SCIP_OKAY.
Referenced by 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 4640 of file reopt.c.
References createReoptnode(), FALSE, SCIP_Reopt::firstrestart, SCIP_Reopt::lastrestart, SCIP_Reopt::nglbrestarts, SCIP_ReoptTree::nreoptnodes, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, and SCIP_OKAY.
Referenced by 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 4670 of file reopt.c.
References BMSallocClearMemoryArray, BMSreallocMemoryArray, ensureRunSize(), SCIP_Reopt::firstobj, SCIP_Reopt::nobjvars, SCIP_Reopt::objhaschanged, SCIP_Reopt::objs, 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 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 4761 of file reopt.c.
References SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsortDownRealInt(), and SCIPvarGetAvgInferences().
Referenced by 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 4809 of file reopt.c.
References addGlobalCut(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPvarGetType(), and SCIPvarIsOriginal().
Referenced by SCIPreoptAddOptSol().
int SCIPreoptGetNRestartsGlobal | ( | SCIP_REOPT * | reopt | ) |
returns the number of global restarts
reopt | reoptimization data structure |
Definition at line 4903 of file reopt.c.
References SCIP_Reopt::nglbrestarts.
Referenced by SCIPprintReoptStatistics().
int SCIPreoptGetNRestartsLocal | ( | SCIP_REOPT * | reopt | ) |
returns the number of local restarts in the current run
reopt | reoptimization data structure |
Definition at line 4913 of file reopt.c.
References SCIP_Reopt::nlocrestarts.
int SCIPreoptGetNTotalRestartsLocal | ( | SCIP_REOPT * | reopt | ) |
returns the number of local restarts over all runs
reopt | reoptimization data structure |
Definition at line 4923 of file reopt.c.
References SCIP_Reopt::ntotallocrestarts.
Referenced by SCIPprintReoptStatistics().
int SCIPreoptGetFirstRestarts | ( | SCIP_REOPT * | reopt | ) |
returns the number of iteration with the first global restarts
reopt | reoptimization data structure |
Definition at line 4933 of file reopt.c.
References SCIP_Reopt::firstrestart.
Referenced by SCIPprintReoptStatistics().
int SCIPreoptGetLastRestarts | ( | SCIP_REOPT * | reopt | ) |
returns the number of iteration with the last global restarts
reopt | reoptimization data structure |
Definition at line 4943 of file reopt.c.
References SCIP_Reopt::lastrestart.
Referenced by SCIPprintReoptStatistics().
int SCIPreoptGetNFeasNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes providing an improving feasible LP solution in the current run
reopt | reoptimization data structure |
Definition at line 4953 of file reopt.c.
References SCIP_ReoptTree::nfeasnodes, and SCIP_Reopt::reopttree.
int SCIPreoptGetNTotalFeasNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes providing an improving feasible LP solution over all runs
reopt | reoptimization data structure |
Definition at line 4963 of file reopt.c.
References SCIP_ReoptTree::ntotalfeasnodes, and SCIP_Reopt::reopttree.
Referenced by SCIPprintReoptStatistics().
int SCIPreoptGetNPrunedNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes that exceeded the cutoff bound in the current run
reopt | reoptimization data structure |
Definition at line 4973 of file reopt.c.
References SCIP_ReoptTree::nprunednodes, and SCIP_Reopt::reopttree.
int SCIPreoptGetNTotalPrunedNodes | ( | SCIP_REOPT * | reopt | ) |
returns the number of stored nodes that exceeded the cutoff bound over all runs
reopt | reoptimization data structure |
Definition at line 4983 of file reopt.c.
References SCIP_ReoptTree::ntotalprunednodes, and SCIP_Reopt::reopttree.
Referenced by SCIPprintReoptStatistics().
int SCIPreoptGetNCutoffReoptnodes | ( | SCIP_REOPT * | reopt | ) |
rerturns the number of reoptimized nodes that were cutoff in the same iteration in the current run
reopt | reoptimization data structure |
Definition at line 4993 of file reopt.c.
References SCIP_ReoptTree::ncutoffreoptnodes, and SCIP_Reopt::reopttree.
int SCIPreoptGetNTotalCutoffReoptnodes | ( | SCIP_REOPT * | reopt | ) |
rerturns the number of reoptimized nodes that were cutoff in the same iteration over all runs
reopt | reoptimization data structure |
Definition at line 5003 of file reopt.c.
References SCIP_ReoptTree::ntotalcutoffreoptnodes, and SCIP_Reopt::reopttree.
Referenced by SCIPprintReoptStatistics().
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 5013 of file reopt.c.
References SCIP_ReoptTree::ninfnodes, and SCIP_Reopt::reopttree.
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 5023 of file reopt.c.
References SCIP_ReoptTree::ntotalinfnodes, and SCIP_Reopt::reopttree.
Referenced by SCIPprintReoptStatistics().
SCIP_RETCODE SCIPreoptCreate | ( | SCIP_REOPT ** | reopt, |
SCIP_SET * | set, | ||
BMS_BLKMEM * | blkmem | ||
) |
constructor for the reoptimization data
reopt | pointer to reoptimization data structure |
set | global SCIP settings |
blkmem | block memory |
Definition at line 5033 of file reopt.c.
References BMSallocBlockMemoryArray, BMSallocMemory, BMSallocMemoryArray, createReopttree(), createSolTree(), DEFAULT_MEM_RUN, DEFAULT_RANDSEED, EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPeventhdlrCreate(), SCIPrandomCreate(), SCIPsetIncludeEventhdlr(), and SCIPsetInitializeRandomSeed().
Referenced by SCIPenableReoptimization().
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 5112 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::addedconsssize, BMSfreeBlockMemoryArray, cleanActiveConss(), SCIP_Reopt::naddedconss, SCIP_CALL, SCIP_OKAY, and SCIPconsRelease().
Referenced by SCIPfreeProb().
SCIP_RETCODE SCIPreoptFree | ( | SCIP_REOPT ** | reopt, |
SCIP_SET * | set, | ||
SCIP_PRIMAL * | origprimal, | ||
BMS_BLKMEM * | blkmem | ||
) |
frees reoptimization data
reopt | reoptimization data structure |
set | global SCIP settings |
origprimal | original primal |
blkmem | block memory |
Definition at line 5138 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeMemory, BMSfreeMemoryArray, freeReoptTree(), freeSolTree(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPclockFree(), SCIPhashmapFree(), SCIPrandomFree(), and SCIPsolFree().
Referenced by SCIPenableReoptimization(), and SCIPfreeProb().
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 5253 of file reopt.c.
References MAX, SCIP_ReoptNode::nconss, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), SCIPnodeGetNAddedConss(), and SCIPnodeGetReoptID().
Referenced by SCIPreoptCheckCutoff().
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 5277 of file reopt.c.
References ensureSolsSize(), SCIP_Reopt::noptsolsbyreoptsol, SCIP_SolTree::nsols, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), SCIPsolGetHeur(), SCIP_SolTree::sols, SCIP_Reopt::soltree, and soltreeAddSol().
Referenced by 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
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 5330 of file reopt.c.
References SCIP_Reopt::prevbestsols, SCIP_Reopt::run, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), and separateSolution().
Referenced by 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
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 5365 of file reopt.c.
References BMSallocBlockMemoryArray, ensureRunSize(), FALSE, SCIP_Reopt::objhaschanged, reoptSaveNewObj(), resetStats(), SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_SolTree::sols, SCIP_SolTree::solssize, and SCIP_Reopt::soltree.
Referenced by prepareReoptimization().
int SCIPreoptGetNCheckedSols | ( | SCIP_REOPT * | reopt | ) |
get the number of checked solutions during the reoptimization process
reopt | reoptimization data structure |
Definition at line 5401 of file reopt.c.
References SCIP_Reopt::ncheckedsols.
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 5411 of file reopt.c.
References SCIP_Reopt::ncheckedsols.
int SCIPreoptGetNImprovingSols | ( | SCIP_REOPT * | reopt | ) |
get the number of checked solutions during the reoptimization process
reopt | reoptimization data structure |
Definition at line 5422 of file reopt.c.
References SCIP_Reopt::nimprovingsols.
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 5432 of file reopt.c.
References SCIP_Reopt::nimprovingsols.
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 5443 of file reopt.c.
References SCIP_SolTree::nsols, SCIP_SolTree::sols, and SCIP_Reopt::soltree.
int SCIPreoptGetNSols | ( | SCIP_REOPT * | reopt | ) |
returns number of all solutions of all runs
reopt | reoptimization data structure |
Definition at line 5458 of file reopt.c.
References SCIP_SolTree::nsols, SCIP_Reopt::run, and SCIP_Reopt::soltree.
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 5474 of file reopt.c.
References SCIP_SolTree::nsols, SCIP_OKAY, SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_Reopt::soltree, TRUE, and SCIP_SolNode::updated.
Referenced by SCIPgetReoptSolsRun().
int SCIPreoptGetNSavedSols | ( | SCIP_REOPT * | reopt | ) |
returns the number of saved solutions overall runs
reopt | reoptimization data structure |
Definition at line 5516 of file reopt.c.
References SCIP_SolNode::child, SCIP_SolTree::root, SCIP_Reopt::soltree, and soltreeNInducedSols().
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.
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 5543 of file reopt.c.
References FALSE, SCIP_Reopt::lastrestart, MAX, SCIP_Reopt::noptsolsbyreoptsol, SCIP_ReoptTree::nreoptnodes, reoptCheckLocalRestart(), reoptRestart(), reoptSimilarity(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_Real, SCIPsetDebugMsg, SCIPsetIsFeasLT(), and TRUE.
Referenced by prepareReoptimization(), and SCIPcheckReoptRestart().
SCIP_Real SCIPreoptGetSimToPrevious | ( | SCIP_REOPT * | reopt | ) |
returns the similarity to the previous objective function, if no exist return -2.0
reopt | reoptimization data structure |
Definition at line 5612 of file reopt.c.
References SCIP_Reopt::simtolastobj.
Referenced by SCIPgetReoptSimilarity().
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
reopt | reoptimization data structure |
Definition at line 5621 of file reopt.c.
References SCIP_Reopt::simtofirstobj.
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 5630 of file reopt.c.
References reoptSimilarity().
Referenced by SCIPgetReoptSimilarity().
SCIP_SOL* SCIPreoptGetLastBestSol | ( | SCIP_REOPT * | reopt | ) |
returns the best solution of the last run
reopt | reoptimization data structure |
Definition at line 5649 of file reopt.c.
References SCIP_Reopt::prevbestsols, and SCIP_Reopt::run.
Referenced by SCIPgetReoptLastOptSol().
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 5663 of file reopt.c.
References SCIP_ReoptTree::reoptnodes, and SCIP_Reopt::reopttree.
Referenced by SCIPgetReoptnode().
SCIP_Real SCIPreoptGetOldObjCoef | ( | SCIP_REOPT * | reopt, |
int | run, | ||
int | idx | ||
) |
returns the coefficient 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 5677 of file reopt.c.
References SCIP_Reopt::objs.
Referenced by reoptCheckLocalRestart(), and SCIPgetReoptOldObjCoef().
SCIP_SOL* SCIPreoptGetBestSolRun | ( | SCIP_REOPT * | reopt, |
int | run | ||
) |
return the best solution of a given run.
reopt | reoptimization data structure |
run | number of the run (1,2,...) |
Definition at line 5693 of file reopt.c.
References SCIP_Reopt::prevbestsols.
SCIP_RETCODE SCIPreoptReset | ( | SCIP_REOPT * | reopt, |
SCIP_SET * | set, | ||
BMS_BLKMEM * | blkmem | ||
) |
reset solving specific parameters
reopt | reoptimization data structure |
set | global SCIP settings |
blkmem | block memory |
Definition at line 5705 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::consadded, FALSE, SCIP_Reopt::naddedconss, SCIP_Reopt::objhaschanged, SCIP_CALL, SCIP_OKAY, and SCIPconsRelease().
Referenced by freeReoptSolve(), and freeTransform().
void SCIPreoptResetSolMarks | ( | SCIP_REOPT * | reopt | ) |
reset marks of stored solutions to not updated
reopt | reoptimization data structure |
Definition at line 5737 of file reopt.c.
References SCIP_SolNode::child, SCIP_SolTree::root, SCIP_SolNode::sibling, SCIP_Reopt::soltree, and soltreeResetMarks().
Referenced by SCIPresetReoptSolMarks().
int SCIPreoptGetNNodes | ( | SCIP_REOPT * | reopt, |
SCIP_NODE * | node | ||
) |
returns the number of stored nodes in the subtree induced by node
reopt | reoptimization data structure |
node | node of the search tree |
Definition at line 5758 of file reopt.c.
References SCIP_ReoptTree::nreoptnodes, SCIP_Reopt::reopttree, reopttreeGetNNodes(), SCIPnodeGetDepth(), and SCIPnodeGetReoptID().
Referenced by compressReoptTree(), and SCIPgetNReoptnodes().
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
reoptnode | node of the reopttree |
Definition at line 5798 of file reopt.c.
References SCIP_ReoptNode::nafterdualvars, and SCIP_ReoptNode::nvars.
Referenced by constructCompression().
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 5808 of file reopt.c.
References SCIP_ReoptNode::nconss.
Referenced by constructCompression().
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 5818 of file reopt.c.
References SCIP_ReoptNode::dualredscur.
int SCIPreoptnodeGetNChildren | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the number of child nodes of reoptnode
reoptnode | node of the reoptimization tree |
Definition at line 5831 of file reopt.c.
References SCIP_ReoptNode::nchilds.
Referenced by Exec(), and SCIPreoptimizeNode().
SCIP_Real SCIPreoptnodeGetLowerbound | ( | SCIP_REOPTNODE * | reoptnode | ) |
return the lower bound stored at ID
id
reoptnode | node of the reoptimization tree |
Definition at line 5841 of file reopt.c.
References SCIP_ReoptNode::lowerbound.
Referenced by constructCompression(), and sortIDs().
SCIP_REOPTTYPE SCIPreoptnodeGetType | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the type of the reoptnode
reoptnode | node of the reoptimization tree |
Definition at line 5851 of file reopt.c.
References SCIP_ReoptNode::reopttype.
Referenced by Exec().
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 5861 of file reopt.c.
References SCIP_ReoptNode::conss, and SCIP_ReoptNode::nconss.
Referenced by constructCompression().
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 5898 of file reopt.c.
References SCIP_ReoptNode::parentID.
Referenced by applyCompression().
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 5910 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, reoptGetNLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), and SCIPnodeGetReoptID().
Referenced by SCIPcomprExec(), and SCIPgetNReoptLeaves().
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 5945 of file reopt.c.
References SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::ntotalinfnodes, REOPT_CONSTYPE_CUT, SCIP_Reopt::reopttree, saveGlobalCons(), SCIP_CALL, and SCIP_OKAY.
Referenced by 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 5969 of file reopt.c.
References addNode(), SCIP_Reopt::currentnode, deleteLastDualBndchgs(), SCIP_Reopt::dualreds, FALSE, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, 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(), SCIPreoptGetNAddedConss(), SCIPreoptGetNDualBndchgs(), SCIPreoptResetDualBndchgs(), SCIPsetDebugMsg, and TRUE.
Referenced by nodeToLeaf(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPsolveCIP(), SCIPtreeCutoff(), 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 6238 of file reopt.c.
References checkMemDualCons(), SCIP_Reopt::currentnode, DEFAULT_MEM_DUALCONS, SCIP_Reopt::dualreds, FALSE, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnodeGetNumber(), SCIPsetDebugMsg, SCIPsetFindBranchrule(), SCIPsetGetIntParam(), SCIPsetIsEQ(), SCIPsetIsLT(), SCIPvarGetName(), SCIPvarGetOrigvarSum(), and SCIPvarIsOriginal().
Referenced by SCIPaddReoptDualBndchg(), 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 6328 of file reopt.c.
References SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, and SCIPnodeGetNumber().
Referenced by SCIPreoptCheckCutoff().
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 6348 of file reopt.c.
References SCIP_ReoptNode::childids, dryBranch(), SCIP_ReoptNode::nchilds, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), and TRUE.
Referenced by SCIPgetReoptChildIDs().
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 6401 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, reoptGetLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, and SCIPnodeGetReoptID().
Referenced by SCIPgetReoptLeaveIDs().
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 6465 of file reopt.c.
References addNode(), FALSE, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_PRUNED, SCIPnodeGetLowerbound(), and SCIPsetDebugMsg.
Referenced by 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 6517 of file reopt.c.
References SCIP_Var::history, SCIP_Reopt::objhaschanged, SCIP_History::pscostcount, SCIP_History::pscostvariance, SCIP_History::pscostweightedmean, reoptSimilarity(), SCIP_Reopt::run, SCIP_INVALID, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPhistoryGetAvgCutoffs(), SCIPhistoryGetAvgInferences(), SCIPhistoryIncCutoffSum(), SCIPhistoryIncInferenceSum(), SCIPhistoryIncNBranchings(), SCIPsetDebugMsg, SCIPsetIsGT(), SCIPsetIsZero(), SCIPvarGetIndex(), SCIPvarGetName(), SCIPvarGetTransVar(), SCIPvarIsActive(), SCIPvarIsOriginal(), SCIPverbMessage(), SCIP_Reopt::simtolastobj, and SCIP_Reopt::varhistory.
Referenced by prepareReoptimization().
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 6612 of file reopt.c.
References BMSallocBlockMemoryArray, FALSE, SCIP_Var::history, SCIP_Reopt::run, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPhistoryCreate(), SCIPhistoryReset(), SCIPhistoryUnite(), SCIPsetDebugMsg, SCIPvarGetIndex(), SCIPvarGetTransVar(), SCIPvarIsActive(), SCIPvarIsOriginal(), and SCIP_Reopt::varhistory.
Referenced by 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 6669 of file reopt.c.
References SCIP_ReoptNode::conss, createReoptnode(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, reoptAddChild(), SCIP_ReoptTree::reoptnodes, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_ReoptNode::reopttype, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_LEAF, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_TRANSIT, SCIPqueueRemove(), SCIPreoptnodeAddBndchg(), SCIPreoptnodeAddCons(), SCIPsetDebugMsg, TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by 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 6773 of file reopt.c.
References BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, REOPT_CONSTYPE_DUALREDS, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_OKAY, SCIPsetInfinity(), SCIPsetIsEQ(), and TRUE.
Referenced by SCIPreoptSplitRoot().
|
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 6836 of file reopt.c.
References BMSduplicateBlockMemoryArray, FALSE, MAX, REOPT_CONSTYPE_DUALREDS, SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by SCIPreoptSplitRoot().
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 6896 of file reopt.c.
References BMSallocBlockMemory, SCIP_ReoptNode::conss, createReoptnode(), SCIP_ReoptNode::dualredscur, getInferenceOrder(), SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, 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, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPerrorMessage, SCIPnodeSetReopttype(), SCIPqueueRemove(), SCIPrandomPermuteIntArray(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPtreeGetRootNode(), SCIPvarGetType(), transformDualredsToBounddisjunction(), transformDualredsToLinear(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by 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 7190 of file reopt.c.
References reoptnodeResetDualConss(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), and SCIPnodeGetReoptID().
Referenced by addNode(), SCIPreoptCheckCutoff(), 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
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 7215 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::nafterdualvars, 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().
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 7274 of file reopt.c.
References SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIPqueueInsert(), and TRUE.
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_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 |
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 7294 of file reopt.c.
References addLocalConss(), addNode(), addSplitcons(), changeAncestorBranchings(), SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, fixBounds(), fixInterdiction(), getInferenceOrder(), SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nconss, SCIP_Reopt::objhaschanged, SCIP_Reopt::randnumgen, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, 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, SCIPnodeCreateChild(), SCIPnodeGetNumber(), SCIPnodeSetEstimate(), SCIPnodeSetReoptID(), SCIPnodeSetReopttype(), SCIPrandomPermuteIntArray(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsGT(), and TRUE.
Referenced by SCIPapplyReopt().
SCIP_Real SCIPreoptGetSavingtime | ( | SCIP_REOPT * | reopt | ) |
returns the time needed to store the nodes for reoptimization
reopt | reoptimization data structure |
Definition at line 7598 of file reopt.c.
References SCIP_Reopt::savingtime, and SCIPclockGetTime().
Referenced by SCIPprintReoptStatistics().
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 7608 of file reopt.c.
References SCIP_Reopt::activeconss, FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, REOPT_CONSTYPE_CUT, SCIP_Reopt::run, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsBasicBounddisjunction(), SCIPcreateConsLogicor(), SCIPdebugPrintCons, SCIPerrorMessage, SCIPfreeBufferArray, SCIPhashmapExists(), SCIPhashmapInsert(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarIsOriginal(), SCIPvarNegate(), and TRUE.
Referenced by prepareReoptimization().
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 7729 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, REOPT_CONSTYPE_CUT, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_ROWORIGINTYPE_REOPT, SCIP_VARSTATUS_COLUMN, SCIPcutpoolAddRow(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetReoptID(), SCIProwCreate(), SCIProwRelease(), SCIPsepastoreAddCut(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsnprintf(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarGetTransVar(), SCIPvarIsOriginal(), and TRUE.
Referenced by SCIPinitConssLP().
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 7862 of file reopt.c.
References FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nvars, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), SCIPnodeGetReopttype(), SCIPsetIsGE(), SCIP_Reopt::simtolastobj, and TRUE.
Referenced by 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 7909 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::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, SCIP_ReoptNode::lowerbound, SCIP_ReoptNode::nafterdualvars, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, 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().
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 7942 of file reopt.c.
References reoptnodeReset(), SCIP_CALL, and SCIP_OKAY.
Referenced by 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 7960 of file reopt.c.
References reoptnodeDelete(), SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPdeleteReoptnode(), and SCIPfreeRepresentation().
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 7974 of file reopt.c.
References SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_CALL, SCIP_OKAY, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by SCIPaddReoptnodeBndchg(), SCIPreoptApplyCompression(), 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 8002 of file reopt.c.
References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_ReoptNode::conss, SCIP_ReoptNode::nconss, REOPT_CONSTYPE_CUT, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, reoptnodeCheckMemory(), SCIP_ALLOC, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPreoptnodeAddBndchg(), SCIPsetDebugMsg, SCIPsetIsGE(), SCIPsetIsLE(), SCIPvarGetLbLocal(), SCIPvarGetType(), and SCIPvarGetUbLocal().
Referenced by SCIPaddReoptnodeCons(), SCIPreoptApplyCompression(), 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 8093 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::addedconsssize, BMSallocClearBlockMemoryArray, BMSclearMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::consadded, SCIP_Reopt::naddedconss, SCIP_ALLOC, SCIP_OKAY, SCIPconsCapture(), SCIPsetCalcMemGrowSize(), and TRUE.
Referenced by SCIPaddCons().
SCIP_RETCODE SCIPreoptSaveGlobalBounds | ( | SCIP_REOPT * | reopt, |
SCIP_PROB * | transprob, | ||
BMS_BLKMEM * | blkmem | ||
) |
save global lower and upper bounds
reopt | reoptimization data structure |
transprob | transformed problem data |
blkmem | block memory |
Definition at line 8140 of file reopt.c.
References SCIP_Reopt::glblb, SCIP_Reopt::glbub, SCIP_CALL, SCIP_OKAY, SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapInsertReal(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by prepareReoptimization().
SCIP_RETCODE SCIPreoptSaveActiveConss | ( | SCIP_REOPT * | reopt, |
SCIP_PROB * | transprob, | ||
BMS_BLKMEM * | blkmem | ||
) |
save active constraints
reopt | reoptimization data structure |
transprob | transformed problem data |
blkmem | block memory |
Definition at line 8178 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Prob::conss, SCIP_Prob::nconss, SCIP_CALL, SCIP_OKAY, SCIPconsCapture(), SCIPconsIsActive(), SCIPhashmapCreate(), SCIPhashmapExists(), and SCIPhashmapInsert().
Referenced by prepareReoptimization().
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 8211 of file reopt.c.
References SCIP_Reopt::glblb, SCIP_Reopt::glbub, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageReal(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPprobIsTransformed(), SCIPvarChgLbGlobal(), SCIPvarChgLbLocal(), SCIPvarChgUbGlobal(), and SCIPvarChgUbLocal().
Referenced by prepareReoptimization().
SCIP_RETCODE SCIPreoptResetActiveConss | ( | SCIP_REOPT * | reopt, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
reactivate globally valid constraints that were deactivated and necessary to ensure correctness
reopt | reoptimization data structure |
set | global SCIP settings |
stat | dynamic SCIP statistics |
Definition at line 8261 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Cons::deleted, FALSE, SCIP_CALL, SCIP_OKAY, SCIPconsActivate(), SCIPconsDeactivate(), SCIPconsIsActive(), SCIPconsIsDeleted(), SCIPhashmapEntryGetImage(), SCIPhashmapGetEntry(), SCIPhashmapGetNEntries(), and TRUE.
Referenced by prepareReoptimization().
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 8305 of file reopt.c.
References SCIP_Reopt::activeconss, SCIPhashmapExists(), and TRUE.
Referenced by SCIPconsDelete().