Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for reoptimization related tasks

Functions

SCIP_EXPORT SCIP_RETCODE SCIPgetReoptChildIDs (SCIP *scip, SCIP_NODE *node, unsigned int *ids, int mem, int *nids)
 
SCIP_EXPORT SCIP_RETCODE SCIPgetReoptLeaveIDs (SCIP *scip, SCIP_NODE *node, unsigned int *ids, int mem, int *nids)
 
SCIP_EXPORT int SCIPgetNReoptnodes (SCIP *scip, SCIP_NODE *node)
 
SCIP_EXPORT int SCIPgetNReoptLeaves (SCIP *scip, SCIP_NODE *node)
 
SCIP_REOPTNODESCIPgetReoptnode (SCIP *scip, unsigned int id)
 
SCIP_EXPORT SCIP_RETCODE SCIPaddReoptnodeBndchg (SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR *var, SCIP_Real bound, SCIP_BOUNDTYPE boundtype)
 
SCIP_EXPORT SCIP_RETCODE SCIPsetReoptCompression (SCIP *scip, SCIP_REOPTNODE **representation, int nrepresentatives, SCIP_Bool *success)
 
SCIP_EXPORT 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)
 
SCIP_EXPORT void SCIPgetReoptnodePath (SCIP *scip, SCIP_REOPTNODE *reoptnode, SCIP_VAR **vars, SCIP_Real *vals, SCIP_BOUNDTYPE *boundtypes, int mem, int *nvars, int *nafterdualvars)
 
SCIP_EXPORT SCIP_RETCODE SCIPinitRepresentation (SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
 
SCIP_RETCODE SCIPresetRepresentation (SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
 
SCIP_EXPORT SCIP_RETCODE SCIPfreeRepresentation (SCIP *scip, SCIP_REOPTNODE **representatives, int nrepresentatives)
 
SCIP_EXPORT 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_EXPORT SCIP_RETCODE SCIPresetReoptnodeDualcons (SCIP *scip, SCIP_NODE *node)
 
SCIP_EXPORT SCIP_RETCODE SCIPsplitReoptRoot (SCIP *scip, int *ncreatedchilds, int *naddedconss)
 
SCIP_EXPORT SCIP_Bool SCIPreoptimizeNode (SCIP *scip, SCIP_NODE *node)
 
SCIP_EXPORT SCIP_RETCODE SCIPdeleteReoptnode (SCIP *scip, SCIP_REOPTNODE **reoptnode)
 
SCIP_EXPORT SCIP_Real SCIPgetReoptSimilarity (SCIP *scip, int run1, int run2)
 
SCIP_EXPORT void SCIPgetVarCoefChg (SCIP *scip, int varidx, SCIP_Bool *negated, SCIP_Bool *entering, SCIP_Bool *leaving)
 

Function Documentation

◆ SCIPgetReoptChildIDs()

SCIP_EXPORT 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 59 of file scip_reopt.c.

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

Referenced by Exec().

◆ SCIPgetReoptLeaveIDs()

SCIP_EXPORT 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 91 of file scip_reopt.c.

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

Referenced by constructCompression().

◆ SCIPgetNReoptnodes()

SCIP_EXPORT 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 116 of file scip_reopt.c.

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

◆ SCIPgetNReoptLeaves()

SCIP_EXPORT 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 131 of file scip_reopt.c.

References NULL, 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 144 of file scip_reopt.c.

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

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

◆ SCIPaddReoptnodeBndchg()

SCIP_EXPORT 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 166 of file scip_reopt.c.

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

Referenced by constructCompression().

◆ SCIPsetReoptCompression()

SCIP_EXPORT 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 194 of file scip_reopt.c.

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

Referenced by applyCompression().

◆ SCIPaddReoptnodeCons()

SCIP_EXPORT 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 222 of file scip_reopt.c.

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

Referenced by constructCompression().

◆ SCIPgetReoptnodePath()

SCIP_EXPORT 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 250 of file scip_reopt.c.

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

Referenced by constructCompression().

◆ SCIPinitRepresentation()

SCIP_EXPORT 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 279 of file scip_reopt.c.

References FALSE, NULL, r, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPcheckStage(), 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 309 of file scip_reopt.c.

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

Referenced by constructCompression().

◆ SCIPfreeRepresentation()

SCIP_EXPORT 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 338 of file scip_reopt.c.

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

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

◆ SCIPapplyReopt()

SCIP_EXPORT 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 372 of file scip_reopt.c.

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

Referenced by Exec().

◆ SCIPresetReoptnodeDualcons()

SCIP_EXPORT 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 506 of file scip_reopt.c.

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

◆ SCIPsplitReoptRoot()

SCIP_EXPORT 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 479 of file scip_reopt.c.

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

Referenced by Exec().

◆ SCIPreoptimizeNode()

SCIP_EXPORT 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 414 of file scip_reopt.c.

References FALSE, NULL, 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_EXPORT 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 454 of file scip_reopt.c.

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

Referenced by SCIP_DECL_COMPREXIT().

◆ SCIPgetReoptSimilarity()

SCIP_EXPORT 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 397 of file scip_reopt.c.

References SCIP_Stat::nreoptruns, NULL, 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()

SCIP_EXPORT 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