Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for reoptimization related tasks

Functions

SCIP_RETCODE SCIPgetReoptChildIDs (SCIP *scip, SCIP_NODE *node, unsigned int *ids, int mem, int *nids)
 
SCIP_RETCODE SCIPgetReoptLeaveIDs (SCIP *scip, SCIP_NODE *node, unsigned int *ids, int mem, int *nids)
 
int SCIPgetNReoptnodes (SCIP *scip, SCIP_NODE *node)
 
int SCIPgetNReoptLeaves (SCIP *scip, SCIP_NODE *node)
 
SCIP_REOPTNODESCIPgetReoptnode (SCIP *scip, unsigned int id)
 
SCIP_RETCODE SCIPaddReoptnodeBndchg (SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR *var, SCIP_Real bound, SCIP_BOUNDTYPE boundtype)
 
SCIP_RETCODE SCIPsetReoptCompression (SCIP *scip, SCIP_REOPTNODE **representation, int nrepresentatives, SCIP_Bool *success)
 
SCIP_RETCODE SCIPaddReoptnodeCons (SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, SCIP_Real lhs, SCIP_Real rhs, int nvars, REOPT_CONSTYPE constype, SCIP_Bool linear)
 
void SCIPgetReoptnodePath (SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, int mem, int *nvars, int *nafterdualvars)
 
SCIP_RETCODE SCIPinitRepresentation (SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
 
SCIP_RETCODE SCIPresetRepresentation (SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
 
SCIP_RETCODE SCIPfreeRepresentation (SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
 
SCIP_RETCODE SCIPapplyReopt (SCIP *scip, SCIP_REOPTNODE *reoptnode, unsigned int id, SCIP_Real estimate, SCIP_NODE **childnodes, int *ncreatedchilds, int *naddedconss, int childnodessize, SCIP_Bool *success)
 
SCIP_RETCODE SCIPresetReoptnodeDualcons (SCIP *scip, SCIP_NODE *node)
 
SCIP_RETCODE SCIPsplitReoptRoot (SCIP *scip, int *ncreatedchilds, int *naddedconss)
 
SCIP_Bool SCIPreoptimizeNode (SCIP *scip, SCIP_NODE *node)
 
SCIP_RETCODE SCIPdeleteReoptnode (SCIP *scip, SCIP_REOPTNODE **reoptnode)
 
SCIP_Real SCIPgetReoptSimilarity (SCIP *scip, int run1, int run2)
 
void SCIPgetVarCoefChg (SCIP *scip, int varidx, SCIP_Bool *negated, SCIP_Bool *entering, SCIP_Bool *leaving)
 

Function Documentation

◆ SCIPgetReoptChildIDs()

SCIP_RETCODE SCIPgetReoptChildIDs ( SCIP scip,
SCIP_NODE node,
unsigned int *  ids,
int  idssize,
int *  nids 
)

return the ids of child nodes stored in the reoptimization tree

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode of the search tree
idsarray of ids
idssizeallocated memory
nidsnumber of child nodes

Definition at line 16759 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptGetChildIDs(), Scip::set, and TRUE.

Referenced by Exec().

◆ SCIPgetReoptLeaveIDs()

SCIP_RETCODE SCIPgetReoptLeaveIDs ( SCIP scip,
SCIP_NODE node,
unsigned int *  ids,
int  idssize,
int *  nids 
)

return the ids of all leave nodes store in the reoptimization tree induced by the given node

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode of the search tree
idsarray of ids
idssizesize of ids array
nidsnumber of child nodes

Definition at line 16791 of file scip.c.

References checkStage(), FALSE, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptGetLeaves(), Scip::set, and TRUE.

Referenced by constructCompression().

◆ SCIPgetNReoptnodes()

int SCIPgetNReoptnodes ( SCIP scip,
SCIP_NODE node 
)

returns the number of nodes in the reoptimization tree induced by node; if node == NULL, the method returns the number of nodes of the whole reoptimization tree.

returns the number of nodes in the reoptimization tree induced by node; if node == NULL the method returns the number of nodes of the whole reoptimization tree.

Parameters
scipSCIP data structure
nodenode of the search tree

Definition at line 16816 of file scip.c.

References Scip::reopt, SCIP_Set::reopt_enable, SCIPreoptGetNNodes(), and Scip::set.

◆ SCIPgetNReoptLeaves()

int SCIPgetNReoptLeaves ( SCIP scip,
SCIP_NODE node 
)

returns the number of leave nodes of the subtree induced by node; if node == NULL, the method returns the number of leaf nodes of the whole reoptimization tree.

returns the number of leaf nodes of the subtree induced by node; if node == NULL, the method returns the number of leaf nodes of the whole reoptimization tree.

Parameters
scipSCIP data structure
nodenode of the search tree

Definition at line 16831 of file scip.c.

References Scip::reopt, SCIP_Set::reopt_enable, SCIPreoptGetNLeaves(), and Scip::set.

Referenced by constructCompression().

◆ SCIPgetReoptnode()

SCIP_REOPTNODE* SCIPgetReoptnode ( SCIP scip,
unsigned int  id 
)

gets the node of the reoptimization tree corresponding to the unique id

Parameters
scipSCIP data structure
idunique id

Definition at line 16844 of file scip.c.

References Scip::reopt, SCIP_Set::reopt_enable, SCIPreoptGetReoptnode(), and Scip::set.

Referenced by constructCompression(), Exec(), SCIPreoptimizeNode(), and sortIDs().

◆ SCIPaddReoptnodeBndchg()

SCIP_RETCODE SCIPaddReoptnodeBndchg ( SCIP scip,
SCIP_REOPTNODE reoptnode,
SCIP_VAR var,
SCIP_Real  bound,
SCIP_BOUNDTYPE  boundtype 
)

add a variable bound change to a given reoptnode

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
reoptnodenode of the reoptimization tree
varvariable pointer
boundvariable bound to add
boundtypebound type of the variable value

Definition at line 16866 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptnodeAddBndchg(), Scip::set, and TRUE.

Referenced by constructCompression().

◆ SCIPsetReoptCompression()

SCIP_RETCODE SCIPsetReoptCompression ( SCIP scip,
SCIP_REOPTNODE **  representation,
int  nrepresentatives,
SCIP_Bool success 
)

set the representation as the new search frontier

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
representationarray of representatives
nrepresentativesnumber of representatives
successpointer to store the result

Definition at line 16894 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptApplyCompression(), Scip::set, and TRUE.

Referenced by applyCompression().

◆ SCIPaddReoptnodeCons()

SCIP_RETCODE SCIPaddReoptnodeCons ( SCIP scip,
SCIP_REOPTNODE reoptnode,
SCIP_VAR **  vars,
SCIP_Real vals,
SCIP_BOUNDTYPE boundtypes,
SCIP_Real  lhs,
SCIP_Real  rhs,
int  nvars,
REOPT_CONSTYPE  constype,
SCIP_Bool  linear 
)

add stored constraint to a reoptimization node

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
reoptnodenode of the reoptimization tree
varsarray of variables
valsarray of variable bounds
boundtypesarray of variable boundtypes
lhslhs of the constraint
rhsrhs of the constraint
nvarsnumber of variables
constypetype of the constraint
linearthe given constraint has a linear representation

Definition at line 16922 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPreoptnodeAddCons(), Scip::set, and TRUE.

Referenced by constructCompression().

◆ SCIPgetReoptnodePath()

void SCIPgetReoptnodePath ( SCIP scip,
SCIP_REOPTNODE reoptnode,
SCIP_VAR **  vars,
SCIP_Real vals,
SCIP_BOUNDTYPE boundtypes,
int  mem,
int *  nvars,
int *  nafterdualvars 
)

return the branching path stored in the reoptree at ID id

Parameters
scipSCIP data structure
reoptnodenode of the reoptimization tree
varsarray of variables
valsarray of variable bounds
boundtypesarray of bound types
memallocated memory
nvarsnumber of variables
nafterdualvarsnumber of variables directly after the first based on dual information

Definition at line 16950 of file scip.c.

References Scip::reopt, SCIP_Set::reopt_enable, SCIPreoptnodeGetPath(), and Scip::set.

Referenced by constructCompression().

◆ SCIPinitRepresentation()

SCIP_RETCODE SCIPinitRepresentation ( SCIP scip,
SCIP_REOPTNODE **  representatives,
int  nrepresentatives 
)

initialize a set of empty reoptimization nodes

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
representativesarray of representatives
nrepresentativesnumber of representatives

Definition at line 16979 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPreoptnodeInit(), Scip::set, and TRUE.

Referenced by constructCompression(), and SCIP_DECL_COMPREXEC().

◆ SCIPresetRepresentation()

SCIP_RETCODE SCIPresetRepresentation ( SCIP scip,
SCIP_REOPTNODE **  representatives,
int  nrepresentatives 
)

reset a set of initialized reoptimization nodes

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
representativesarray of representatives
nrepresentativesnumber of representatives

Definition at line 17009 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_CALL, SCIP_OKAY, SCIPreoptnodeReset(), Scip::set, and TRUE.

Referenced by constructCompression().

◆ SCIPfreeRepresentation()

SCIP_RETCODE SCIPfreeRepresentation ( SCIP scip,
SCIP_REOPTNODE **  representatives,
int  nrepresentatives 
)

free a set of initialized reoptimization nodes

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
representativesarray of representatives
nrepresentativesnumber of representatives

Definition at line 17038 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPreoptnodeDelete(), and TRUE.

Referenced by applyCompression(), constructCompression(), and SCIP_DECL_COMPREXEC().

◆ SCIPapplyReopt()

SCIP_RETCODE SCIPapplyReopt ( SCIP scip,
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

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
reoptnodenode to reactivate
idunique id of the reoptimization node
estimateestimate of the child nodes that should be created
childnodesarray to store the created child nodes
ncreatedchildspointer to store number of created child nodes
naddedconsspointer to store number of generated constraints
childnodessizeavailable size of childnodes array
successpointer store the result

Definition at line 17072 of file scip.c.

References Scip::branchcand, checkStage(), Scip::cliquetable, Scip::eventqueue, FALSE, Scip::lp, Scip::mem, Scip::origprob, SCIP_Mem::probmem, Scip::reopt, SCIP_CALL, SCIP_OKAY, SCIPreoptApply(), Scip::set, Scip::stat, Scip::transprob, Scip::tree, and TRUE.

Referenced by Exec().

◆ SCIPresetReoptnodeDualcons()

SCIP_RETCODE SCIPresetReoptnodeDualcons ( SCIP scip,
SCIP_NODE node 
)

remove the stored information about bound changes based in dual information

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode of the search tree

Definition at line 17545 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptResetDualBndchgs(), Scip::set, and TRUE.

◆ SCIPsplitReoptRoot()

SCIP_RETCODE SCIPsplitReoptRoot ( SCIP scip,
int *  ncreatedchilds,
int *  naddedconss 
)

splits the root into several nodes and moves the child nodes of the root to one of the created nodes

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

splits the root into several nodes and moves the child nodes of the root to one of the created nodes

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
ncreatedchildspointer to store the number of created nodes
naddedconsspointer to store the number added constraints

Definition at line 17518 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptSplitRoot(), Scip::set, Scip::stat, Scip::tree, and TRUE.

Referenced by Exec().

◆ SCIPreoptimizeNode()

SCIP_Bool SCIPreoptimizeNode ( SCIP scip,
SCIP_NODE node 
)

returns if a node should be reoptimized

Parameters
scipSCIP data structure
nodenode of the search tree

Definition at line 17453 of file scip.c.

References FALSE, Scip::reopt, SCIP_Set::reopt_enable, SCIPgetReoptnode(), SCIPgetRootNode(), SCIPnodeGetReoptID(), SCIPreoptnodeGetNChildren(), and Scip::set.

Referenced by SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_BRANCHEXECLP(), and SCIP_DECL_BRANCHEXECPS().

◆ SCIPdeleteReoptnode()

SCIP_RETCODE SCIPdeleteReoptnode ( SCIP scip,
SCIP_REOPTNODE **  reoptnode 
)

deletes the given reoptimization node

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

deletes the given reoptimization node

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
reoptnodenode of the reoptimization tree

Definition at line 17493 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptnodeDelete(), Scip::set, and TRUE.

Referenced by SCIP_DECL_COMPREXIT().

◆ SCIPgetReoptSimilarity()

SCIP_Real SCIPgetReoptSimilarity ( SCIP scip,
int  run1,
int  run2 
)

return the similarity between two objective functions

Parameters
scipSCIP data structure
run1number of run
run2number of run

Definition at line 17436 of file scip.c.

References SCIP_Stat::nreoptruns, SCIP_Prob::nvars, Scip::origprob, Scip::reopt, SCIPreoptGetSimilarity(), SCIPreoptGetSimToPrevious(), Scip::set, Scip::stat, and SCIP_Prob::vars.

Referenced by SCIP_DECL_BRANCHEXECLP(), and SCIP_DECL_HEUREXEC().

◆ SCIPgetVarCoefChg()

void SCIPgetVarCoefChg ( SCIP scip,
int  varidx,
SCIP_Bool negated,
SCIP_Bool entering,
SCIP_Bool leaving 
)

check the changes of the variable coefficient in the objective function

Parameters
scipSCIP data structure
varidxindex of variable
negatedcoefficient changed the sign
enteringcoefficient gets non-zero coefficient
leavingcoefficient gets zero coefficient