SCIP

Solving Constraint Integer Programs

conflict.h File Reference

Detailed Description

internal methods for conflict analysis

Author
Tobias Achterberg

Definition in file conflict.h.

#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_prob.h"
#include "scip/type_tree.h"
#include "scip/type_conflict.h"
#include "scip/pub_conflict.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPconflicthdlrCopyInclude (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflicthdlrCreate (SCIP_CONFLICTHDLR **conflicthdlr, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, SCIP_DECL_CONFLICTCOPY((*conflictcopy)), SCIP_DECL_CONFLICTFREE((*conflictfree)), SCIP_DECL_CONFLICTINIT((*conflictinit)), SCIP_DECL_CONFLICTEXIT((*conflictexit)), SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)), SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)), SCIP_DECL_CONFLICTEXEC((*conflictexec)), SCIP_CONFLICTHDLRDATA *conflicthdlrdata)
 
SCIP_RETCODE SCIPconflicthdlrFree (SCIP_CONFLICTHDLR **conflicthdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflicthdlrInit (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflicthdlrExit (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflicthdlrInitsol (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflicthdlrExitsol (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflicthdlrExec (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set, SCIP_NODE *node, SCIP_NODE *validnode, SCIP_BDCHGINFO **bdchginfos, SCIP_Real *relaxedbds, int nbdchginfos, SCIP_Bool resolved, SCIP_RESULT *result)
 
void SCIPconflicthdlrSetPriority (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_SET *set, int priority)
 
void SCIPconflicthdlrSetCopy (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTCOPY((*conflictcopy)))
 
void SCIPconflicthdlrSetFree (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTFREE((*conflictfree)))
 
void SCIPconflicthdlrSetInit (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTINIT((*conflictinit)))
 
void SCIPconflicthdlrSetExit (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTEXIT((*conflictexit)))
 
void SCIPconflicthdlrSetInitsol (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)))
 
void SCIPconflicthdlrSetExitsol (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)))
 
void SCIPconflicthdlrEnableOrDisableClocks (SCIP_CONFLICTHDLR *conflicthdlr, SCIP_Bool enable)
 
SCIP_Bool SCIPconflictApplicable (SCIP_SET *set)
 
SCIP_RETCODE SCIPconflictCreate (SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflictFree (SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPconflictInit (SCIP_CONFLICT *conflict, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob)
 
SCIP_RETCODE SCIPconflictAddBound (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx)
 
SCIP_RETCODE SCIPconflictAddRelaxedBound (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd)
 
SCIP_RETCODE SCIPconflictIsVarUsed (SCIP_CONFLICT *conflict, SCIP_VAR *var, SCIP_SET *set, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool *used)
 
SCIP_Real SCIPconflictGetVarLb (SCIP_CONFLICT *conflict, SCIP_VAR *var)
 
SCIP_Real SCIPconflictGetVarUb (SCIP_CONFLICT *conflict, SCIP_VAR *var)
 
SCIP_RETCODE SCIPconflictAnalyze (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, int validdepth, SCIP_Bool *success)
 
SCIP_RETCODE SCIPconflictFlushConss (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable)
 
int SCIPconflictGetNConflicts (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNAppliedConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNAppliedLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNGlobalChgBds (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNAppliedGlobalConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNLocalChgBds (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNAppliedLocalConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNAppliedLocalLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Real SCIPconflictGetGlobalApplTime (SCIP_CONFLICT *conflict)
 
SCIP_Real SCIPconflictGetPropTime (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPropCalls (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPropSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPropConflictConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPropConflictLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPropReconvergenceConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals (SCIP_CONFLICT *conflict)
 
SCIP_RETCODE SCIPconflictAnalyzeLP (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
 
SCIP_Real SCIPconflictGetInfeasibleLPTime (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPCalls (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNInfeasibleLPIterations (SCIP_CONFLICT *conflict)
 
SCIP_Real SCIPconflictGetBoundexceedingLPTime (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations (SCIP_CONFLICT *conflict)
 
SCIP_RETCODE SCIPconflictAnalyzeStrongbranch (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_COL *col, SCIP_Bool *downconflict, SCIP_Bool *upconflict)
 
SCIP_Real SCIPconflictGetStrongbranchTime (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchCalls (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchConflictConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNStrongbranchIterations (SCIP_CONFLICT *conflict)
 
SCIP_RETCODE SCIPconflictAnalyzePseudo (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
 
SCIP_Real SCIPconflictGetPseudoTime (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPseudoCalls (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPseudoSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPseudoConflictConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPseudoConflictLiterals (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals (SCIP_CONFLICT *conflict)
 
void SCIPconflictEnableOrDisableClocks (SCIP_CONFLICT *conflict, SCIP_Bool enable)
 

Function Documentation

SCIP_RETCODE SCIPconflicthdlrCopyInclude ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set 
)

copies the given conflict handler to a new scip

Parameters
conflicthdlrconflict handler
setSCIP_SET of SCIP to copy to

Definition at line 360 of file conflict.c.

References NULL, SCIP_Set::scip, SCIP_CALL, SCIP_OKAY, SCIPconflicthdlrGetName(), and SCIPdebugMessage.

SCIP_RETCODE SCIPconflicthdlrCreate ( SCIP_CONFLICTHDLR **  conflicthdlr,
SCIP_SET *  set,
SCIP_MESSAGEHDLR *  messagehdlr,
BMS_BLKMEM *  blkmem,
const char *  name,
const char *  desc,
int  priority,
SCIP_DECL_CONFLICTCOPY((*conflictcopy))  ,
SCIP_DECL_CONFLICTFREE((*conflictfree))  ,
SCIP_DECL_CONFLICTINIT((*conflictinit))  ,
SCIP_DECL_CONFLICTEXIT((*conflictexit))  ,
SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))  ,
SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))  ,
SCIP_DECL_CONFLICTEXEC((*conflictexec))  ,
SCIP_CONFLICTHDLRDATA *  conflicthdlrdata 
)

creates a conflict handler

Parameters
conflicthdlrpointer to conflict handler data structure
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of conflict handler
descdescription of conflict handler
prioritypriority of the conflict handler
conflicthdlrdataconflict handler data

Definition at line 379 of file conflict.c.

References BMSallocMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPclockCreate(), SCIPsetAddIntParam(), SCIPsnprintf(), and TRUE.

Referenced by SCIPincludeConflicthdlr(), and SCIPincludeConflicthdlrBasic().

SCIP_RETCODE SCIPconflicthdlrFree ( SCIP_CONFLICTHDLR **  conflicthdlr,
SCIP_SET *  set 
)

calls destructor and frees memory of conflict handler

Parameters
conflicthdlrpointer to conflict handler data structure
setglobal SCIP settings

Definition at line 432 of file conflict.c.

References BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().

SCIP_RETCODE SCIPconflicthdlrInit ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set 
)

calls init method of conflict handler

calls initialization method of conflict handler

Parameters
conflicthdlrconflict handler
setglobal SCIP settings

Definition at line 459 of file conflict.c.

References SCIP_Conflicthdlr::conflicttime, SCIP_Conflicthdlr::initialized, SCIP_Set::misc_resetstat, SCIP_Conflicthdlr::name, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Conflicthdlr::setuptime, and TRUE.

SCIP_RETCODE SCIPconflicthdlrExit ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set 
)

calls exit method of conflict handler

Parameters
conflicthdlrconflict handler
setglobal SCIP settings

Definition at line 496 of file conflict.c.

References FALSE, SCIP_Conflicthdlr::initialized, SCIP_Conflicthdlr::name, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Conflicthdlr::setuptime.

SCIP_RETCODE SCIPconflicthdlrInitsol ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set 
)

informs conflict handler that the branch and bound process is being started

Parameters
conflicthdlrconflict handler
setglobal SCIP settings

Definition at line 527 of file conflict.c.

References NULL, SCIP_Set::scip, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime.

SCIP_RETCODE SCIPconflicthdlrExitsol ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set 
)

informs conflict handler that the branch and bound process data is being freed

Parameters
conflicthdlrconflict handler
setglobal SCIP settings

Definition at line 551 of file conflict.c.

References NULL, SCIP_Set::scip, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime.

SCIP_RETCODE SCIPconflicthdlrExec ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set,
SCIP_NODE *  node,
SCIP_NODE *  validnode,
SCIP_BDCHGINFO **  bdchginfos,
SCIP_Real *  relaxedbds,
int  nbdchginfos,
SCIP_Bool  resolved,
SCIP_RESULT *  result 
)

calls execution method of conflict handler

Parameters
conflicthdlrconflict handler
setglobal SCIP settings
nodenode to add conflict constraint to
validnodenode at which the constraint is valid
bdchginfosbound change resembling the conflict set
relaxedbdsarray with relaxed bounds which are efficient to create a valid conflict
nbdchginfosnumber of bound changes in the conflict set
resolvedwas the conflict set already used to create a constraint?
resultpointer to store the result of the callback method

Definition at line 575 of file conflict.c.

References SCIP_Set::conf_dynamic, SCIP_Set::conf_removable, SCIP_Set::conf_seperate, SCIP_Conflicthdlr::conflicttime, SCIP_Conflicthdlr::name, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIPnodeGetDepth().

Referenced by conflictAddConflictCons().

void SCIPconflicthdlrSetPriority ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_SET *  set,
int  priority 
)

sets priority of conflict handler

Parameters
conflicthdlrconflict handler
setglobal SCIP settings
prioritynew priority of the conflict handler

Definition at line 736 of file conflict.c.

References SCIP_Set::conflicthdlrssorted, FALSE, NULL, and SCIP_Conflicthdlr::priority.

Referenced by SCIPsetConflicthdlrPriority().

void SCIPconflicthdlrSetCopy ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_DECL_CONFLICTCOPY((*conflictcopy))   
)

set copy method of conflict handler

Parameters
conflicthdlrconflict handler

Definition at line 640 of file conflict.c.

References NULL.

Referenced by SCIPsetConflicthdlrCopy().

void SCIPconflicthdlrSetFree ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_DECL_CONFLICTFREE((*conflictfree))   
)

set destructor of conflict handler

Parameters
conflicthdlrconflict handler

Definition at line 651 of file conflict.c.

References NULL.

Referenced by SCIPsetConflicthdlrFree().

void SCIPconflicthdlrSetInit ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_DECL_CONFLICTINIT((*conflictinit))   
)

set initialization method of conflict handler

Parameters
conflicthdlrconflict handler

Definition at line 662 of file conflict.c.

References NULL.

Referenced by SCIPsetConflicthdlrInit().

void SCIPconflicthdlrSetExit ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_DECL_CONFLICTEXIT((*conflictexit))   
)

set deinitialization method of conflict handler

Parameters
conflicthdlrconflict handler

Definition at line 673 of file conflict.c.

References NULL.

Referenced by SCIPsetConflicthdlrExit().

void SCIPconflicthdlrSetInitsol ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))   
)

set solving process initialization method of conflict handler

Parameters
conflicthdlrconflict handler

Definition at line 684 of file conflict.c.

References NULL.

Referenced by SCIPsetConflicthdlrInitsol().

void SCIPconflicthdlrSetExitsol ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))   
)

set solving process deinitialization method of conflict handler

Parameters
conflicthdlrconflict handler

Definition at line 695 of file conflict.c.

References NULL.

Referenced by SCIPsetConflicthdlrExitsol().

void SCIPconflicthdlrEnableOrDisableClocks ( SCIP_CONFLICTHDLR *  conflicthdlr,
SCIP_Bool  enable 
)

enables or disables all clocks of conflicthdlr, depending on the value of the flag

Parameters
conflicthdlrthe conflict handler for which all clocks should be enabled or disabled
enableshould the clocks of the conflict handler be enabled?

Definition at line 760 of file conflict.c.

References SCIP_Conflicthdlr::conflicttime, NULL, SCIPclockEnableOrDisable(), and SCIP_Conflicthdlr::setuptime.

SCIP_Bool SCIPconflictApplicable ( SCIP_SET *  set)

return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the conflict analysis since it will not be applied

Parameters
setglobal SCIP settings

Definition at line 2491 of file conflict.c.

References SCIP_Set::conf_enable, SCIP_Set::conf_useprop, FALSE, SCIP_Set::nconflicthdlrs, and TRUE.

Referenced by SCIPconflictAnalyze(), and SCIPisConflictAnalysisApplicable().

SCIP_RETCODE SCIPconflictCreate ( SCIP_CONFLICT **  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set 
)

creates conflict analysis data for propagation conflicts

Parameters
conflictpointer to conflict analysis data
blkmemblock memory of transformed problem
setglobal SCIP settings

Definition at line 2507 of file conflict.c.

References BMSallocMemory, conflictsetCreate(), SCIP_Set::mem_arraygrowfac, SCIP_Set::mem_arraygrowinit, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPconflictEnableOrDisableClocks(), SCIPpqueueCreate(), and SCIP_Set::time_statistictiming.

Referenced by SCIPtransformProb().

SCIP_RETCODE SCIPconflictFree ( SCIP_CONFLICT **  conflict,
BMS_BLKMEM *  blkmem 
)

frees conflict analysis data for propagation conflicts

Parameters
conflictpointer to conflict analysis data
blkmemblock memory of transformed problem

Definition at line 2584 of file conflict.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, conflictsetFree(), NULL, SCIP_OKAY, SCIPclockFree(), and SCIPpqueueFree().

Referenced by freeTransform().

SCIP_RETCODE SCIPconflictInit ( SCIP_CONFLICT *  conflict,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_PROB *  prob 
)

initializes the propagation conflict analysis by clearing the conflict candidate queue

Parameters
conflictconflict analysis data
setglobal SCIP settings
statproblem statistics
probproblem data

Definition at line 2629 of file conflict.c.

References SCIP_Set::conf_scorefac, conflictClear(), SCIP_Conflict::count, SCIP_Stat::glbhistory, SCIP_Stat::glbhistorycrun, SCIP_Stat::lastconflictnode, SCIP_Stat::nnodes, NULL, SCIP_Prob::nvars, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPhistoryScaleVSIDS(), SCIPvarScaleVSIDS(), SCIP_Prob::vars, and SCIP_Stat::vsidsweight.

Referenced by conflictAnalyzeRemainingBdchgs(), conflictCreateReconvergenceConss(), and SCIPinitConflictAnalysis().

SCIP_RETCODE SCIPconflictAddBound ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_VAR *  var,
SCIP_BOUNDTYPE  boundtype,
SCIP_BDCHGIDX *  bdchgidx 
)

adds variable's bound to conflict candidate queue

Parameters
conflictconflict analysis data
blkmemblock memory
setglobal SCIP settings
statdynamic problem statistics
varproblem variable
boundtypetype of bound that was changed: lower or upper bound
bdchgidxbound change index (time stamp of bound change), or NULL for current time

Definition at line 2976 of file conflict.c.

References conflictAddBound(), convertToActiveVar(), FALSE, NULL, scalars, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPbdchgidxIsEarlier(), SCIPbdchginfoGetIdx(), SCIPbdchginfoGetNewbound(), SCIPboundtypeOpposite(), SCIPconflictAddBound(), SCIPvarGetBdchgInfo(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetStatus(), and SCIPvarIsActive().

Referenced by SCIPaddConflictBd(), SCIPaddConflictBinvar(), SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPconflictAddBound(), and SCIPconflictAddRelaxedBound().

SCIP_RETCODE SCIPconflictAddRelaxedBound ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_VAR *  var,
SCIP_BOUNDTYPE  boundtype,
SCIP_BDCHGIDX *  bdchgidx,
SCIP_Real  relaxedbd 
)

adds variable's bound to conflict candidate queue with the additional information of a relaxed bound

adds variable's bound to conflict candidate queue

Parameters
conflictconflict analysis data
blkmemblock memory
setglobal SCIP settings
statdynamic problem statistics
varproblem variable
boundtypetype of bound that was changed: lower or upper bound
bdchgidxbound change index (time stamp of bound change), or NULL for current time
relaxedbdthe relaxed bound

Definition at line 3037 of file conflict.c.

References SCIP_BdChgInfo::bdchgidx, SCIP_Set::conf_ignorerelaxedbd, conflictAddBound(), convertToActiveVar(), FALSE, MAX, MIN, NULL, SCIP_BdChgInfo::pos, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPbdchgidxGetPos(), SCIPbdchgidxIsEarlier(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetIdx(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetOldbound(), SCIPbdchginfoGetPos(), SCIPbdchginfoIsRedundant(), SCIPconflictAddBound(), SCIPdebugMessage, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetBdchgInfo(), SCIPvarGetBdchgInfoLb(), SCIPvarGetBdchgInfoUb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), and SCIPvarIsActive().

Referenced by SCIPaddConflictRelaxedBd(), SCIPaddConflictRelaxedLb(), and SCIPaddConflictRelaxedUb().

SCIP_RETCODE SCIPconflictIsVarUsed ( SCIP_CONFLICT *  conflict,
SCIP_VAR *  var,
SCIP_SET *  set,
SCIP_BOUNDTYPE  boundtype,
SCIP_BDCHGIDX *  bdchgidx,
SCIP_Bool *  used 
)

checks if the given variable is already part of the current conflict set or queued for resolving with the same or even stronger bound

Parameters
conflictconflict analysis data
varproblem variable
setglobal SCIP settings
boundtypetype of bound for which the score should be increased
bdchgidxbound change index (time stamp of bound change), or NULL for current time
usedpointer to store if the variable is already used

Definition at line 3201 of file conflict.c.

References SCIP_Var::conflictlb, SCIP_Var::conflictlbcount, SCIP_Var::conflictub, SCIP_Var::conflictubcount, convertToActiveVar(), SCIP_Conflict::count, FALSE, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPvarGetLbAtIndex(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbAtIndex(), SCIPvarIsActive(), and TRUE.

Referenced by SCIPisConflictVarUsed().

SCIP_Real SCIPconflictGetVarLb ( SCIP_CONFLICT *  conflict,
SCIP_VAR *  var 
)

returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower bound

Parameters
conflictconflict analysis data
varproblem variable

Definition at line 3261 of file conflict.c.

References SCIP_Var::conflictlb, SCIP_Var::conflictlbcount, SCIP_Var::conflictrelaxedlb, SCIP_Conflict::count, EPSGE, and SCIPvarGetLbGlobal().

Referenced by SCIPgetConflictVarLb().

SCIP_Real SCIPconflictGetVarUb ( SCIP_CONFLICT *  conflict,
SCIP_VAR *  var 
)

returns the conflict upper bound if the variable is present in the current conflict set; otherwise the global upper bound

Parameters
conflictconflict analysis data
varproblem variable

Definition at line 3278 of file conflict.c.

References SCIP_Var::conflictrelaxedub, SCIP_Var::conflictub, SCIP_Var::conflictubcount, SCIP_Conflict::count, EPSLE, and SCIPvarGetUbGlobal().

Referenced by SCIPgetConflictVarUb().

SCIP_RETCODE SCIPconflictAnalyze ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_PROB *  prob,
SCIP_TREE *  tree,
int  validdepth,
SCIP_Bool *  success 
)

analyzes conflicting bound changes that were added with calls to SCIPconflictAddBound() and SCIPconflictAddRelaxedBound(), and on success, calls the conflict handlers to create a conflict constraint out of the resulting conflict set; updates statistics for propagation conflict analysis

analyzes conflicting bound changes that were added with calls to SCIPconflictAddBound(), and on success, calls the conflict handlers to create a conflict constraint out of the resulting conflict set; updates statistics for propagation conflict analysis

Parameters
conflictconflict analysis data
blkmemblock memory of transformed problem
setglobal SCIP settings
statproblem statistics
probproblem data
treebranch and bound tree
validdepthminimal depth level at which the initial conflict set is valid
successpointer to store whether a conflict constraint was created, or NULL

Definition at line 4207 of file conflict.c.

References SCIP_Conflict::bdchgqueue, conflictAnalyze(), conflictCalcMaxsize(), SCIP_Conflict::conflictset, FALSE, SCIP_Conflict::forcedbdchgqueue, SCIP_ConflictSet::nbdchginfos, SCIP_Conflict::npropcalls, SCIP_Conflict::npropconfconss, SCIP_Conflict::npropconfliterals, SCIP_Conflict::npropreconvconss, SCIP_Conflict::npropreconvliterals, SCIP_Conflict::npropsuccess, NULL, SCIP_Conflict::propanalyzetime, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPconflictApplicable(), SCIPdebugMessage, SCIPpqueueNElems(), SCIPtreeGetCurrentDepth(), and TRUE.

Referenced by SCIPanalyzeConflict(), and SCIPanalyzeConflictCons().

SCIP_RETCODE SCIPconflictFlushConss ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_PROB *  transprob,
SCIP_PROB *  origprob,
SCIP_TREE *  tree,
SCIP_REOPT *  reopt,
SCIP_LP *  lp,
SCIP_BRANCHCAND *  branchcand,
SCIP_EVENTQUEUE *  eventqueue,
SCIP_CLIQUETABLE *  cliquetable 
)

adds the collected conflict constraints to the corresponding nodes; the best set->conf_maxconss conflict constraints are added to the node of their validdepth; additionally (if not yet added, and if repropagation is activated), the conflict constraint that triggers the earliest repropagation is added to the node of its validdepth

Parameters
conflictconflict analysis data
blkmemblock memory of transformed problem
setglobal SCIP settings
statdynamic problem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpcurrent LP data
branchcandbranching candidate storage
eventqueueevent queue
cliquetableclique table data structure

Definition at line 2178 of file conflict.c.

References SCIP_Set::conf_keepreprop, SCIP_Set::conf_maxconss, SCIP_Set::conf_repropagate, conflictAddConflictCons(), conflictCalcMaxsize(), SCIP_ConflictSet::conflictdepth, conflictFreeTmpBdchginfos(), conflictsetFree(), SCIP_Conflict::conflictsets, SCIP_Node::depth, SCIP_ConflictSet::insertdepth, SCIP_ConflictSet::nbdchginfos, SCIP_Conflict::nconflictsets, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_ConflictSet::repropagate, SCIP_ConflictSet::repropdepth, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebug, SCIPdebugMessage, SCIPnodeCutoff(), SCIPnodePropagateAgain(), SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvisualFoundConflict(), SCIP_ConflictSet::validdepth, and SCIP_Stat::visual.

Referenced by conflictAnalyzeLP(), SCIPconflictAnalyzePseudo(), SCIPpropagateDomains(), and solveNode().

int SCIPconflictGetNConflicts ( SCIP_CONFLICT *  conflict)

returns the current number of conflict sets in the conflict set storage

Parameters
conflictconflict analysis data

Definition at line 2356 of file conflict.c.

References SCIP_Conflict::nconflictsets, and NULL.

Referenced by propAndSolve(), SCIPgetNConflictConssFoundNode(), SCIPgetVarStrongbranchWithPropagation(), and solveNode().

SCIP_Longint SCIPconflictGetNAppliedConss ( SCIP_CONFLICT *  conflict)

returns the total number of conflict constraints that were added to the problem

Parameters
conflictconflict analysis data

Definition at line 2366 of file conflict.c.

References SCIP_Conflict::nappliedglbconss, SCIP_Conflict::nappliedlocconss, and NULL.

Referenced by SCIPgetNConflictConssApplied().

SCIP_Longint SCIPconflictGetNAppliedLiterals ( SCIP_CONFLICT *  conflict)

returns the total number of literals in conflict constraints that were added to the problem

Parameters
conflictconflict analysis data

Definition at line 2376 of file conflict.c.

References SCIP_Conflict::nappliedglbliterals, SCIP_Conflict::nappliedlocliterals, and NULL.

SCIP_Longint SCIPconflictGetNGlobalChgBds ( SCIP_CONFLICT *  conflict)

returns the total number of global bound changes applied by the conflict analysis

Parameters
conflictconflict analysis data

Definition at line 2386 of file conflict.c.

References SCIP_Conflict::nglbchgbds, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNAppliedGlobalConss ( SCIP_CONFLICT *  conflict)

returns the total number of conflict constraints that were added globally to the problem

Parameters
conflictconflict analysis data

Definition at line 2396 of file conflict.c.

References SCIP_Conflict::nappliedglbconss, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals ( SCIP_CONFLICT *  conflict)

returns the total number of literals in conflict constraints that were added globally to the problem

Parameters
conflictconflict analysis data

Definition at line 2406 of file conflict.c.

References SCIP_Conflict::nappliedglbliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNLocalChgBds ( SCIP_CONFLICT *  conflict)

returns the total number of local bound changes applied by the conflict analysis

Parameters
conflictconflict analysis data

Definition at line 2416 of file conflict.c.

References SCIP_Conflict::nlocchgbds, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNAppliedLocalConss ( SCIP_CONFLICT *  conflict)

returns the total number of conflict constraints that were added locally to the problem

Parameters
conflictconflict analysis data

Definition at line 2426 of file conflict.c.

References SCIP_Conflict::nappliedlocconss, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNAppliedLocalLiterals ( SCIP_CONFLICT *  conflict)

returns the total number of literals in conflict constraints that were added locally to the problem

Parameters
conflictconflict analysis data

Definition at line 2436 of file conflict.c.

References SCIP_Conflict::nappliedlocliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Real SCIPconflictGetGlobalApplTime ( SCIP_CONFLICT *  conflict)

gets time in seconds used for preprocessing global conflict constraint before appliance

Parameters
conflictconflict analysis data

Definition at line 4266 of file conflict.c.

References SCIP_Conflict::dIBclock, NULL, and SCIPclockGetTime().

Referenced by printConflictStatistics().

SCIP_Real SCIPconflictGetPropTime ( SCIP_CONFLICT *  conflict)

gets time in seconds used for analyzing propagation conflicts

Parameters
conflictconflict analysis data

Definition at line 4276 of file conflict.c.

References NULL, SCIP_Conflict::propanalyzetime, and SCIPclockGetTime().

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNPropCalls ( SCIP_CONFLICT *  conflict)

gets number of calls to propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 4286 of file conflict.c.

References SCIP_Conflict::npropcalls, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNPropSuccess ( SCIP_CONFLICT *  conflict)

gets number of calls to propagation conflict analysis that yield at least one conflict constraint

Parameters
conflictconflict analysis data

Definition at line 4296 of file conflict.c.

References SCIP_Conflict::npropsuccess, and NULL.

Referenced by printConflictStatistics(), and SCIPsolveCIP().

SCIP_Longint SCIPconflictGetNPropConflictConss ( SCIP_CONFLICT *  conflict)

gets number of conflict constraints detected in propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 4306 of file conflict.c.

References SCIP_Conflict::npropconfconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNPropConflictLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in conflict constraints created in propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 4316 of file conflict.c.

References SCIP_Conflict::npropconfliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNPropReconvergenceConss ( SCIP_CONFLICT *  conflict)

gets number of reconvergence constraints detected in propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 4326 of file conflict.c.

References SCIP_Conflict::npropreconvconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in reconvergence constraints created in propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 4336 of file conflict.c.

References SCIP_Conflict::npropreconvliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_RETCODE SCIPconflictAnalyzeLP ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_PROB *  transprob,
SCIP_PROB *  origprob,
SCIP_TREE *  tree,
SCIP_REOPT *  reopt,
SCIP_LP *  lp,
SCIP_BRANCHCAND *  branchcand,
SCIP_EVENTQUEUE *  eventqueue,
SCIP_CLIQUETABLE *  cliquetable,
SCIP_Bool *  success 
)

analyzes an infeasible or bound exceeding LP to find out the bound changes on variables that were responsible for the infeasibility or for exceeding the primal bound; on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating a conflict constraint out of the resulting conflict set; updates statistics for infeasible or bound exceeding LP conflict analysis

analyzes an infeasible or bound exceeding LP to find out the bound changes on variables that were responsible for the infeasibility or for exceeding the primal bound; on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating a conflict constraint out of the resulting conflict set; updates statistics for infeasible or bound exceeding LP conflict analysis; may only be called if SCIPprobAllColsInLP()

Parameters
conflictconflict analysis data
blkmemblock memory of transformed problem
setglobal SCIP settings
statproblem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpLP data
branchcandbranching candidate storage
eventqueueevent queue
cliquetableclique table data structure
successpointer to store whether a conflict constraint was created, or NULL

Definition at line 6123 of file conflict.c.

References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_ColSolVals::basisstatus, SCIP_RowSolVals::basisstatus, SCIP_Col::basisstatus, SCIP_Row::basisstatus, SCIP_Lp::cols, conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIP_Row::dualfarkas, SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Set::lp_disablecutoff, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_ColSolVals::primsol, SCIP_Col::primsol, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_Lp::rows, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetLPI(), SCIPlpGetSolstat(), SCIPlpiIsPrimalInfeasible(), SCIPlpiWasSolved(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by priceAndCutLoop(), SCIPsolveDiveLP(), and solveProbingLP().

SCIP_Real SCIPconflictGetInfeasibleLPTime ( SCIP_CONFLICT *  conflict)

gets time in seconds used for analyzing infeasible LP conflicts

Parameters
conflictconflict analysis data

Definition at line 6261 of file conflict.c.

References SCIP_Conflict::inflpanalyzetime, NULL, and SCIPclockGetTime().

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNInfeasibleLPCalls ( SCIP_CONFLICT *  conflict)

gets number of calls to infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6271 of file conflict.c.

References SCIP_Conflict::ninflpcalls, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess ( SCIP_CONFLICT *  conflict)

gets number of calls to infeasible LP conflict analysis that yield at least one conflict constraint

Parameters
conflictconflict analysis data

Definition at line 6281 of file conflict.c.

References SCIP_Conflict::ninflpsuccess, and NULL.

Referenced by printConflictStatistics(), and SCIPsolveCIP().

SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss ( SCIP_CONFLICT *  conflict)

gets number of conflict constraints detected in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6291 of file conflict.c.

References SCIP_Conflict::ninflpconfconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in conflict constraints created in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6301 of file conflict.c.

References SCIP_Conflict::ninflpconfliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss ( SCIP_CONFLICT *  conflict)

gets number of reconvergence constraints detected in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6311 of file conflict.c.

References SCIP_Conflict::ninflpreconvconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in reconvergence constraints created in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6321 of file conflict.c.

References SCIP_Conflict::ninflpreconvliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNInfeasibleLPIterations ( SCIP_CONFLICT *  conflict)

gets number of LP iterations in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6331 of file conflict.c.

References SCIP_Conflict::ninflpiterations, and NULL.

Referenced by printConflictStatistics().

SCIP_Real SCIPconflictGetBoundexceedingLPTime ( SCIP_CONFLICT *  conflict)

gets time in seconds used for analyzing bound exceeding LP conflicts

Parameters
conflictconflict analysis data

Definition at line 6341 of file conflict.c.

References SCIP_Conflict::boundlpanalyzetime, NULL, and SCIPclockGetTime().

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls ( SCIP_CONFLICT *  conflict)

gets number of calls to bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6351 of file conflict.c.

References SCIP_Conflict::nboundlpcalls, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess ( SCIP_CONFLICT *  conflict)

gets number of calls to bound exceeding LP conflict analysis that yield at least one conflict constraint

Parameters
conflictconflict analysis data

Definition at line 6361 of file conflict.c.

References SCIP_Conflict::nboundlpsuccess, and NULL.

Referenced by printConflictStatistics(), and SCIPsolveCIP().

SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss ( SCIP_CONFLICT *  conflict)

gets number of conflict constraints detected in bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6371 of file conflict.c.

References SCIP_Conflict::nboundlpconfconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in conflict constraints created in bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6381 of file conflict.c.

References SCIP_Conflict::nboundlpconfliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss ( SCIP_CONFLICT *  conflict)

gets number of reconvergence constraints detected in bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6391 of file conflict.c.

References SCIP_Conflict::nboundlpreconvconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in reconvergence constraints created in bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6401 of file conflict.c.

References SCIP_Conflict::nboundlpreconvliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations ( SCIP_CONFLICT *  conflict)

gets number of LP iterations in bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6411 of file conflict.c.

References SCIP_Conflict::nboundlpiterations, and NULL.

Referenced by printConflictStatistics().

SCIP_RETCODE SCIPconflictAnalyzeStrongbranch ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_PROB *  transprob,
SCIP_PROB *  origprob,
SCIP_TREE *  tree,
SCIP_REOPT *  reopt,
SCIP_LP *  lp,
SCIP_BRANCHCAND *  branchcand,
SCIP_EVENTQUEUE *  eventqueue,
SCIP_CLIQUETABLE *  cliquetable,
SCIP_COL *  col,
SCIP_Bool *  downconflict,
SCIP_Bool *  upconflict 
)

analyses infeasible strong branching sub problems for conflicts

Parameters
conflictconflict analysis data
blkmemblock memory buffers
setglobal SCIP settings
statdynamic problem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpLP data
branchcandbranching candidate storage
eventqueueevent queue
cliquetableclique table data structure
colLP column with at least one infeasible strong branching subproblem
downconflictpointer to store whether a conflict constraint was created for an infeasible downwards branch, or NULL
upconflictpointer to store whether a conflict constraint was created for an infeasible upwards branch, or NULL

Definition at line 6428 of file conflict.c.

References SCIP_Set::conf_enable, SCIP_Set::conf_usesb, conflictAnalyzeLP(), SCIP_Stat::conflictlptime, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Set::nconflicthdlrs, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Conflict::nsbcalls, SCIP_Conflict::nsbconfconss, SCIP_Conflict::nsbconfliterals, SCIP_Conflict::nsbiterations, SCIP_Conflict::nsbreconvconss, SCIP_Conflict::nsbreconvliterals, SCIP_Conflict::nsbsuccess, NULL, SCIP_Col::primsol, SCIP_Conflict::sbanalyzetime, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPcolGetVar(), SCIPdebugMessage, SCIPlpiChgBounds(), SCIPlpiEndStrongbranch(), SCIPlpiGetBase(), SCIPlpiGetIterations(), SCIPlpiSetBase(), SCIPlpiSolveDual(), SCIPlpiStartStrongbranch(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetFreeBufferArray, SCIPsetIsGE(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIP_Lp::solved, TRUE, and SCIP_Col::ub.

Referenced by analyzeStrongbranch().

SCIP_Real SCIPconflictGetStrongbranchTime ( SCIP_CONFLICT *  conflict)

gets time in seconds used for analyzing infeasible strong branching conflicts

Parameters
conflictconflict analysis data

Definition at line 6659 of file conflict.c.

References NULL, SCIP_Conflict::sbanalyzetime, and SCIPclockGetTime().

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNStrongbranchCalls ( SCIP_CONFLICT *  conflict)

gets number of calls to infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6669 of file conflict.c.

References SCIP_Conflict::nsbcalls, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNStrongbranchSuccess ( SCIP_CONFLICT *  conflict)

gets number of calls to infeasible strong branching conflict analysis that yield at least one conflict constraint

Parameters
conflictconflict analysis data

Definition at line 6679 of file conflict.c.

References SCIP_Conflict::nsbsuccess, and NULL.

Referenced by printConflictStatistics(), and SCIPsolveCIP().

SCIP_Longint SCIPconflictGetNStrongbranchConflictConss ( SCIP_CONFLICT *  conflict)

gets number of conflict constraints detected in infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6689 of file conflict.c.

References SCIP_Conflict::nsbconfconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in conflict constraints created in infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6699 of file conflict.c.

References SCIP_Conflict::nsbconfliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss ( SCIP_CONFLICT *  conflict)

gets number of reconvergence constraints detected in infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6709 of file conflict.c.

References SCIP_Conflict::nsbreconvconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in reconvergence constraints created in infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6719 of file conflict.c.

References SCIP_Conflict::nsbreconvliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNStrongbranchIterations ( SCIP_CONFLICT *  conflict)

gets number of LP iterations in infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6729 of file conflict.c.

References SCIP_Conflict::nsbiterations, and NULL.

Referenced by printConflictStatistics().

SCIP_RETCODE SCIPconflictAnalyzePseudo ( SCIP_CONFLICT *  conflict,
BMS_BLKMEM *  blkmem,
SCIP_SET *  set,
SCIP_STAT *  stat,
SCIP_PROB *  transprob,
SCIP_PROB *  origprob,
SCIP_TREE *  tree,
SCIP_REOPT *  reopt,
SCIP_LP *  lp,
SCIP_BRANCHCAND *  branchcand,
SCIP_EVENTQUEUE *  eventqueue,
SCIP_CLIQUETABLE *  cliquetable,
SCIP_Bool *  success 
)

analyzes a pseudo solution with objective value exceeding the current cutoff to find out the bound changes on variables that were responsible for the objective value degradation; on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating a conflict constraint out of the resulting conflict set; updates statistics for pseudo solution conflict analysis

Parameters
conflictconflict analysis data
blkmemblock memory of transformed problem
setglobal SCIP settings
statproblem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpLP data
branchcandbranching candidate storage
eventqueueevent queue
cliquetableclique table data structure
successpointer to store whether a conflict constraint was created, or NULL

Definition at line 6751 of file conflict.c.

References SCIP_Set::conf_enable, SCIP_Set::conf_usepseudo, conflictAnalyzeRemainingBdchgs(), SCIP_Lp::cutoffbound, FALSE, SCIP_Set::nconflicthdlrs, SCIP_Conflict::nconflictsets, SCIP_Var::nlbchginfos, SCIP_Conflict::npseudocalls, SCIP_Conflict::npseudoconfconss, SCIP_Conflict::npseudoconfliterals, SCIP_Conflict::npseudoreconvconss, SCIP_Conflict::npseudoreconvliterals, SCIP_Conflict::npseudosuccess, SCIP_Var::nubchginfos, NULL, SCIP_Prob::nvars, SCIP_Conflict::pseudoanalyzetime, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPconflictFlushConss(), SCIPdebugMessage, SCIPlpGetPseudoObjval(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPsetIsFeasGT(), SCIPsetIsInfinity(), SCIPsetSumepsilon(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), undoBdchgsProof(), and SCIP_Prob::vars.

Referenced by applyBounding().

SCIP_Real SCIPconflictGetPseudoTime ( SCIP_CONFLICT *  conflict)

gets time in seconds used for analyzing pseudo solution conflicts

Parameters
conflictconflict analysis data

Definition at line 6893 of file conflict.c.

References NULL, SCIP_Conflict::pseudoanalyzetime, and SCIPclockGetTime().

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNPseudoCalls ( SCIP_CONFLICT *  conflict)

gets number of calls to pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6903 of file conflict.c.

References SCIP_Conflict::npseudocalls, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNPseudoSuccess ( SCIP_CONFLICT *  conflict)

gets number of calls to pseudo solution conflict analysis that yield at least one conflict constraint

Parameters
conflictconflict analysis data

Definition at line 6913 of file conflict.c.

References SCIP_Conflict::npseudosuccess, and NULL.

Referenced by printConflictStatistics(), and SCIPsolveCIP().

SCIP_Longint SCIPconflictGetNPseudoConflictConss ( SCIP_CONFLICT *  conflict)

gets number of conflict constraints detected in pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6923 of file conflict.c.

References SCIP_Conflict::npseudoconfconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNPseudoConflictLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in conflict constraints created in pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6933 of file conflict.c.

References SCIP_Conflict::npseudoconfliterals, and NULL.

Referenced by printConflictStatistics().

SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss ( SCIP_CONFLICT *  conflict)

gets number of reconvergence constraints detected in pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6943 of file conflict.c.

References SCIP_Conflict::npseudoreconvconss, and NULL.

Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().

SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals ( SCIP_CONFLICT *  conflict)

gets total number of literals in reconvergence constraints created in pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 6953 of file conflict.c.

References SCIP_Conflict::npseudoreconvliterals, and NULL.

Referenced by printConflictStatistics().

void SCIPconflictEnableOrDisableClocks ( SCIP_CONFLICT *  conflict,
SCIP_Bool  enable 
)

enables or disables all clocks of conflict, depending on the value of the flag

Parameters
conflictthe conflict analysis data for which all clocks should be enabled or disabled
enableshould the clocks of the conflict analysis data be enabled?

Definition at line 6963 of file conflict.c.

References SCIP_Conflict::boundlpanalyzetime, SCIP_Conflict::dIBclock, SCIP_Conflict::inflpanalyzetime, NULL, SCIP_Conflict::propanalyzetime, SCIP_Conflict::pseudoanalyzetime, SCIP_Conflict::sbanalyzetime, and SCIPclockEnableOrDisable().

Referenced by SCIPconflictCreate(), and SCIPenableOrDisableStatisticTiming().