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, NULL, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddReoptDualBndchg(), SCIPdebugMsg, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetCurrentNode(), SCIPgetEffectiveRootDepth(), 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 100 of file reopt.c.
References EVENTHDLR_NAME, NULL, 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 126 of file reopt.c.
References EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPdropVarEvent(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPgetVars(), SCIPisReoptEnabled(), and SCIPvarGetType().
|
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 158 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 183 of file reopt.c.
References BMSreallocBlockMemoryArray, BMSreallocMemoryArray, SCIP_SolTree::nsols, NULL, SCIP_Reopt::objs, SCIP_Reopt::prevbestsols, SCIP_Reopt::runsize, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_Reopt::soltree, and SCIP_Reopt::varhistory.
Referenced by 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 220 of file reopt.c.
References BMSreallocBlockMemoryArray, SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPqueueInsert(), 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 253 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::consssize, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ALLOC, SCIP_OKAY, 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 333 of file reopt.c.
References SCIP_SolNode::child, NULL, 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 362 of file reopt.c.
References MAX, MIN, NULL, 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 450 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, NULL, 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 573 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, NULL, 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 651 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::conss, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, reoptnodeDelete(), reoptnodeReset(), SCIP_ReoptTree::reoptnodes, SCIP_CALL, and SCIP_OKAY.
Referenced by clearReoptnodes(), deleteChildrenBelow(), dryBranch(), SCIPreoptDeleteNode(), and shrinkNode().
|
static |
constructor of the solution tree
soltree | solution tree |
blkmem | block memory |
Definition at line 683 of file reopt.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, SCIP_SolNode::child, DEFAULT_MEM_RUN, FALSE, SCIP_SolNode::father, SCIP_SolTree::nsols, NULL, SCIP_SolTree::root, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, SCIP_SolNode::sibling, SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_SolNode::updated, and SCIP_SolNode::value.
Referenced by 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 717 of file reopt.c.
References BMSfreeBlockMemoryNull, SCIP_SolNode::child, NULL, 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 759 of file reopt.c.
References BMSfreeBlockMemoryArray, BMSfreeBlockMemoryNull, BMSfreeMemory, SCIP_SolTree::nsols, NULL, SCIP_SolTree::root, SCIP_Reopt::runsize, SCIP_CALL, SCIP_OKAY, SCIP_SolTree::sols, SCIP_SolTree::solssize, SCIP_Reopt::soltree, and soltreefreeNode().
Referenced by SCIPreoptFree().
|
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 787 of file reopt.c.
References BMSallocBlockMemory, SCIP_SolNode::child, FALSE, SCIP_SolNode::father, NULL, 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 968 of file reopt.c.
References SCIP_SolNode::child, FALSE, NULL, 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 1056 of file reopt.c.
References SCIP_SolNode::child, FALSE, SCIP_SolNode::father, NULL, 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 1090 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, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_ReoptNode::reopttype, SCIP_ALLOC, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPqueueNElems(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode(), 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 1147 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, NULL, 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 1193 of file reopt.c.
References SCIP_ReoptTree::nreoptnodes, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIPqueueClear(), SCIPqueueInsert(), and SCIPqueueNElems().
Referenced by freeReoptTree(), and reoptResetTree().
|
static |
free the reoptimization tree
reopttree | reoptimization tree data |
set | global SCIP settings |
blkmem | block memory |
Definition at line 1231 of file reopt.c.
References BMSfreeBlockMemoryArray, BMSfreeMemory, clearReoptnodes(), FALSE, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and SCIPqueueFree().
Referenced by SCIPreoptFree().
|
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 1255 of file reopt.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::dualreds, NULL, 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 1289 of file reopt.c.
References SCIP_Reopt::allocmemglbconss, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by addGlobalCut().
|
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 1334 of file reopt.c.
References NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetConsProps(), SCIPnodeGetNDomchg(), TRUE, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by addNode().
|
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 1390 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, DEFAULT_MEM_VARAFTERDUAL, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_ALLOC, SCIP_OKAY, 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 1472 of file reopt.c.
References NULL, 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 1561 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), SCIP_ReoptNode::varbounds, and SCIP_ReoptNode::vars.
Referenced by addNode().
|
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 1606 of file reopt.c.
References NULL, SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_Reopt::reopttree, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIP_REOPTTYPE_TRANSIT, SCIPnodeGetDepth(), SCIPnodeGetNDomchg(), SCIPnodeGetParent(), SCIPnodeGetReoptID(), SCIPnodeGetReopttype(), SCIPnodeSetReoptID(), and SCIPnodeSetReopttype().
Referenced by addNode(), 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 1667 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_ReoptTree::reoptnodessize, SCIP_CALL, SCIP_OKAY, and 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 1700 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, reoptAddChild(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by shrinkNode().
|
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 1761 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, 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 1807 of file reopt.c.
References SCIP_ReoptNode::childids, getLastSavedNode(), moveChildrenUp(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::openids, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_NONE, 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 1885 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_ReoptNode::reopttype, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_INFSUBTREE, and SCIP_REOPTTYPE_STRBRANCHED.
Referenced by addNode().
|
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 1931 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, NULL, 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 1964 of file reopt.c.
References deleteChildrenBelow(), FALSE, SCIP_Reopt::nlocrestarts, SCIP_Reopt::ntotallocrestarts, NULL, 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 2053 of file reopt.c.
References DEFAULT_MEM_VAR, NULL, 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 2121 of file reopt.c.
References BMSallocBlockMemoryArray, FALSE, NULL, 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 2254 of file reopt.c.
References BMSduplicateBlockMemoryArray, FALSE, NULL, 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 2321 of file reopt.c.
References BMSallocBlockMemory, SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, NULL, 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 2416 of file reopt.c.
References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, checkMemDualCons(), SCIP_Reopt::currentnode, SCIP_ReoptNode::dualreds, SCIP_Reopt::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_STRBRANCHED, SCIPnodeGetDualBoundchgs(), SCIPnodeGetNDualBndchgs(), SCIPnodeGetNumber(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPvarGetOrigvarSum(), SCIPvarIsOriginal(), and TRUE.
Referenced by addNode().
|
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 2543 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, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, SCIP_ReoptNode::parentID, REALABS, reoptAddChild(), reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeCheckMemory(), SCIP_ReoptNode::reopttype, saveAfterDualBranchings(), saveAncestorBranchings(), saveLocalConssData(), SCIP_Reopt::savingtime, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_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 3115 of file reopt.c.
References SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, NULL, 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 3132 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, SCIP_ReoptNode::dualredsnex, FALSE, NULL, 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 3182 of file reopt.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, checkMemGlbCons(), FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, 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 3380 of file reopt.c.
References addGlobalCut(), SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, 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 3448 of file reopt.c.
References SCIP_ReoptNode::allocchildmem, SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, 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 3500 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::afterdualvarssize, BMSfreeBlockMemoryArray, FALSE, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, 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 3675 of file reopt.c.
References SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_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 3932 of file reopt.c.
References SCIP_ReoptNode::dualreds, SCIP_ReoptNode::dualredscur, FALSE, NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, reoptnodeUpdateDualConss(), SCIP_Reopt::reopttree, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetOrigvarSum(), SCIPvarGetProbvarBound(), SCIPvarGetUbLocal(), SCIPvarIsOriginal(), SCIPvarIsTransformedOrigvar(), TRUE, 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 4054 of file reopt.c.
References SCIP_ReoptNode::dualreds, FALSE, MIN, NULL, 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 4166 of file reopt.c.
References SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, NULL, REOPT_CONSTYPE_CUT, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddConsNode(), 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 4237 of file reopt.c.
References SCIP_Reopt::currentnode, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, SCIP_ReoptTree::ncutoffreoptnodes, SCIP_ReoptTree::nfeasnodes, SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::nprunednodes, NULL, and SCIP_Reopt::reopttree.
Referenced by SCIPreoptAddRun().
|
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 4259 of file reopt.c.
References SCIP_ReoptNode::childids, deleteChildrenBelow(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptTree::openids, reoptnodeCheckMemory(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, reopttreeDeleteNode(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, 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 4476 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, nnodes, NULL, 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 4495 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, 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 4526 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPreoptGetLeaves().
|
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 4573 of file reopt.c.
References clearReoptnodes(), SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, SCIP_ReoptTree::nreoptnodes, NULL, 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 4599 of file reopt.c.
References createReoptnode(), FALSE, SCIP_Reopt::firstrestart, SCIP_Reopt::lastrestart, SCIP_Reopt::nglbrestarts, SCIP_ReoptTree::nreoptnodes, NULL, reoptResetTree(), SCIP_Reopt::reopttree, SCIP_Reopt::run, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPreoptCheckRestart().
|
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 4629 of file reopt.c.
References BMSallocClearMemoryArray, BMSreallocMemoryArray, ensureRunSize(), SCIP_Reopt::firstobj, SCIP_Reopt::nobjvars, NULL, 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 4720 of file reopt.c.
References NULL, 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 4768 of file reopt.c.
References addGlobalCut(), NULL, 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 4862 of file reopt.c.
References SCIP_Reopt::nglbrestarts, and NULL.
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 4872 of file reopt.c.
References SCIP_Reopt::nlocrestarts, and NULL.
int SCIPreoptGetNTotalRestartsLocal | ( | SCIP_REOPT * | reopt | ) |
returns the number of local restarts over all runs
reopt | reoptimization data structure |
Definition at line 4882 of file reopt.c.
References SCIP_Reopt::ntotallocrestarts, and NULL.
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 4892 of file reopt.c.
References SCIP_Reopt::firstrestart, and NULL.
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 4902 of file reopt.c.
References SCIP_Reopt::lastrestart, and NULL.
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 4912 of file reopt.c.
References SCIP_ReoptTree::nfeasnodes, NULL, 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 4922 of file reopt.c.
References SCIP_ReoptTree::ntotalfeasnodes, NULL, 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 4932 of file reopt.c.
References SCIP_ReoptTree::nprunednodes, NULL, 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 4942 of file reopt.c.
References SCIP_ReoptTree::ntotalprunednodes, NULL, 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 4952 of file reopt.c.
References SCIP_ReoptTree::ncutoffreoptnodes, NULL, 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 4962 of file reopt.c.
References SCIP_ReoptTree::ntotalcutoffreoptnodes, NULL, 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 4972 of file reopt.c.
References SCIP_ReoptTree::ninfnodes, NULL, 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 4982 of file reopt.c.
References SCIP_ReoptTree::ntotalinfnodes, NULL, 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 4992 of file reopt.c.
References BMSallocBlockMemoryArray, BMSallocMemory, BMSallocMemoryArray, createReopttree(), createSolTree(), DEFAULT_MEM_RUN, DEFAULT_RANDSEED, EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPeventhdlrCreate(), SCIPrandomCreate(), SCIPsetIncludeEventhdlr(), and SCIPsetInitializeRandomSeed().
Referenced by SCIPenableReoptimization().
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 5071 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeMemory, BMSfreeMemoryArray, freeReoptTree(), freeSolTree(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PROBLEM, SCIPclockFree(), SCIPconsRelease(), 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 5191 of file reopt.c.
References MAX, SCIP_ReoptNode::nconss, NULL, 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 5215 of file reopt.c.
References ensureSolsSize(), SCIP_Reopt::noptsolsbyreoptsol, SCIP_SolTree::nsols, NULL, 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 5268 of file reopt.c.
References NULL, 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 5302 of file reopt.c.
References BMSallocBlockMemoryArray, ensureRunSize(), FALSE, NULL, 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 5338 of file reopt.c.
References SCIP_Reopt::ncheckedsols, and NULL.
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 5348 of file reopt.c.
References SCIP_Reopt::ncheckedsols, and NULL.
int SCIPreoptGetNImprovingSols | ( | SCIP_REOPT * | reopt | ) |
get the number of checked solutions during the reoptimization process
reopt | reoptimization data structure |
Definition at line 5359 of file reopt.c.
References SCIP_Reopt::nimprovingsols, and NULL.
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 5369 of file reopt.c.
References SCIP_Reopt::nimprovingsols, and NULL.
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 5380 of file reopt.c.
References SCIP_SolTree::nsols, NULL, 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 5395 of file reopt.c.
References SCIP_SolTree::nsols, NULL, 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 5411 of file reopt.c.
References SCIP_SolTree::nsols, NULL, SCIP_OKAY, SCIP_SolNode::sol, SCIP_SolTree::sols, SCIP_Reopt::soltree, TRUE, and SCIP_SolNode::updated.
Referenced by SCIPgetReoptSolsRun().
int SCIPreoptGetNSavedSols | ( | SCIP_REOPT * | reopt | ) |
returns the number of saved solutions overall runs
reopt | reoptimization data structure |
Definition at line 5453 of file reopt.c.
References SCIP_SolNode::child, NULL, 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 5480 of file reopt.c.
References FALSE, SCIP_Reopt::lastrestart, MAX, SCIP_Reopt::noptsolsbyreoptsol, SCIP_ReoptTree::nreoptnodes, NULL, 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 5549 of file reopt.c.
References NULL, and 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 5558 of file reopt.c.
References NULL, and 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 5567 of file reopt.c.
References NULL, and 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 5586 of file reopt.c.
References NULL, 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 5600 of file reopt.c.
References NULL, 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 5614 of file reopt.c.
References NULL, and 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 5630 of file reopt.c.
References NULL, and 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 5642 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::consadded, FALSE, SCIP_Reopt::naddedconss, NULL, 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 5674 of file reopt.c.
References SCIP_SolNode::child, NULL, 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 5695 of file reopt.c.
References SCIP_ReoptTree::nreoptnodes, NULL, 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 5735 of file reopt.c.
References SCIP_ReoptNode::nafterdualvars, NULL, 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 5745 of file reopt.c.
References SCIP_ReoptNode::nconss, and NULL.
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 5755 of file reopt.c.
References SCIP_ReoptNode::dualredscur, and NULL.
int SCIPreoptnodeGetNChildren | ( | SCIP_REOPTNODE * | reoptnode | ) |
returns the number of child nodes of reoptnode
reoptnode | node of the reoptimization tree |
Definition at line 5768 of file reopt.c.
References SCIP_ReoptNode::nchilds, and NULL.
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 5778 of file reopt.c.
References SCIP_ReoptNode::lowerbound, and NULL.
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 5788 of file reopt.c.
References NULL, and 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 5798 of file reopt.c.
References SCIP_ReoptNode::conss, SCIP_ReoptNode::nconss, and NULL.
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 5835 of file reopt.c.
References NULL, and 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 5847 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptGetNLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPnodeGetDepth(), and SCIPnodeGetReoptID().
Referenced by SCIPcomprExec(), and SCIPgetNReoptLeaves().
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 5882 of file reopt.c.
References SCIP_ReoptTree::ninfnodes, SCIP_ReoptTree::ntotalinfnodes, NULL, 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 5906 of file reopt.c.
References addNode(), SCIP_Reopt::currentnode, deleteLastDualBndchgs(), SCIP_Reopt::dualreds, FALSE, SCIP_Reopt::lastbranched, SCIP_Reopt::lastseennode, MIN, NULL, REOPT_CONSTYPE_DUALREDS, REOPT_CONSTYPE_INFSUBTREE, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIP_Real, SCIP_REOPTTYPE_FEASIBLE, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_PRUNED, SCIP_REOPTTYPE_STRBRANCHED, SCIP_REOPTTYPE_TRANSIT, SCIPlpGetCutoffbound(), SCIPlpGetSolstat(), SCIPnodeGetDepth(), SCIPnodeGetNDualBndchgs(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPreoptAddDualBndchg(), SCIPreoptAddInfNode(), 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 6175 of file reopt.c.
References checkMemDualCons(), SCIP_Reopt::currentnode, DEFAULT_MEM_DUALCONS, SCIP_Reopt::dualreds, FALSE, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnodeGetNumber(), 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 6265 of file reopt.c.
References SCIP_Reopt::currentnode, SCIP_Reopt::dualreds, NULL, 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 6285 of file reopt.c.
References SCIP_ReoptNode::childids, dryBranch(), SCIP_ReoptNode::nchilds, NULL, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), SCIPnodeGetReoptID(), and TRUE.
Referenced by SCIPgetReoptChildIDs().
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 6338 of file reopt.c.
References SCIP_ReoptNode::childids, SCIP_ReoptNode::nchilds, NULL, reoptGetLeaves(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, and SCIPnodeGetReoptID().
Referenced by SCIPgetReoptLeaveIDs().
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 6402 of file reopt.c.
References addNode(), FALSE, NULL, 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 6454 of file reopt.c.
References SCIP_Var::history, NULL, 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 6549 of file reopt.c.
References BMSallocBlockMemoryArray, FALSE, SCIP_Var::history, NULL, 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 6606 of file reopt.c.
References SCIP_ReoptNode::conss, createReoptnode(), FALSE, SCIP_ReoptNode::nchilds, SCIP_ReoptNode::nconss, SCIP_ReoptTree::nreoptnodes, NULL, 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 6710 of file reopt.c.
References BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, NULL, 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 6773 of file reopt.c.
References BMSduplicateBlockMemoryArray, FALSE, MAX, MIN, NULL, 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 6833 of file reopt.c.
References BMSallocBlockMemory, SCIP_ReoptNode::conss, createReoptnode(), SCIP_ReoptNode::dualredscur, getInferenceOrder(), SCIP_ReoptNode::nchilds, NULL, 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(), tranformDualredsToLinear(), transformDualredsToBounddisjunction(), 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 7126 of file reopt.c.
References NULL, reoptnodeResetDualConss(), SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), and SCIPnodeGetReoptID().
Referenced by addNode(), SCIPreoptCheckCutoff(), and SCIPresetReoptnodeDualcons().
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 7151 of file reopt.c.
References SCIP_ReoptNode::afterdualvarbounds, SCIP_ReoptNode::afterdualvarboundtypes, SCIP_ReoptNode::afterdualvars, SCIP_ReoptNode::nafterdualvars, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptTree::reoptnodes, SCIP_Reopt::reopttree, SCIPreoptnodeGetPath(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by SCIPgetReoptnodePath(), and SCIPreoptnodeGetPath().
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 7210 of file reopt.c.
References NULL, 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 7230 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, NULL, 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 7534 of file reopt.c.
References NULL, 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 7544 of file reopt.c.
References SCIP_Reopt::activeconss, FALSE, SCIP_Reopt::glbconss, SCIP_Reopt::nglbconss, NULL, 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(), SCIPreleaseCons(), 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 7664 of file reopt.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, SCIP_ReoptNode::conss, FALSE, SCIP_ReoptNode::nconss, NULL, 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 7797 of file reopt.c.
References FALSE, SCIP_ReoptNode::nchilds, NULL, 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 7844 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, NULL, SCIP_ReoptNode::nvars, SCIP_ReoptNode::parentID, SCIP_ReoptNode::reopttype, SCIP_REOPTTYPE_NONE, SCIPsetInfinity(), SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, SCIP_ReoptNode::vars, and SCIP_ReoptNode::varssize.
Referenced by SCIPinitRepresentation().
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 7877 of file reopt.c.
References NULL, 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 7895 of file reopt.c.
References NULL, 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 7909 of file reopt.c.
References NULL, SCIP_ReoptNode::nvars, reoptnodeCheckMemory(), SCIP_CALL, SCIP_OKAY, SCIP_ReoptNode::varbounds, SCIP_ReoptNode::varboundtypes, and SCIP_ReoptNode::vars.
Referenced by SCIPaddReoptnodeBndchg(), 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 7937 of file reopt.c.
References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_ReoptNode::conss, SCIP_ReoptNode::nconss, NULL, 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 8028 of file reopt.c.
References SCIP_Reopt::addedconss, SCIP_Reopt::addedconsssize, BMSallocClearBlockMemoryArray, BMSclearMemoryArray, BMSreallocBlockMemoryArray, SCIP_Reopt::consadded, SCIP_Reopt::naddedconss, NULL, 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 8075 of file reopt.c.
References SCIP_Reopt::glblb, SCIP_Reopt::glbub, NULL, 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 8113 of file reopt.c.
References SCIP_Reopt::activeconss, SCIP_Prob::conss, SCIP_Prob::nconss, NULL, SCIP_CALL, SCIP_OKAY, 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 8145 of file reopt.c.
References SCIP_Reopt::glblb, SCIP_Reopt::glbub, NULL, 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 8195 of file reopt.c.
References SCIP_Reopt::activeconss, NULL, 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 8236 of file reopt.c.
References SCIP_Reopt::activeconss, NULL, SCIPhashmapExists(), and TRUE.
Referenced by SCIPconsDelete().