Scippy

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_CALL, SCIP_OKAY, SCIPconflicthdlrGetName(), and SCIPdebugMessage.

Referenced by SCIPsetCopyPlugins().

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_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_Conflicthdlr::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Conflicthdlr::setuptime, and TRUE.

Referenced by SCIPsetIncludeExternalCode().

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_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Conflicthdlr::setuptime.

Referenced by SCIPsetInitPlugins().

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_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime.

Referenced by SCIPsetExitprePlugins().

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_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime.

Referenced by SCIPsetInitsolPlugins().

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_Conflicthdlr::conflicttime, SCIP_Conflicthdlr::name, NULL, 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 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.

Referenced by SCIPsetSetReoptimizationParams().

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 2497 of file conflict.c.

References FALSE, 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 2513 of file conflict.c.

References BMSallocMemory, conflictsetCreate(), NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPconflictEnableOrDisableClocks(), and SCIPpqueueCreate().

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 2590 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 2635 of file conflict.c.

References 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 2982 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 3043 of file conflict.c.

References SCIP_BdChgInfo::bdchgidx, 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 3207 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 3267 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 3284 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 4214 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 2184 of file conflict.c.

References 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 2362 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 2372 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 2382 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 2392 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 2402 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 2412 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 2422 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 2432 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 2442 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 4273 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 4283 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 4293 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 4303 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 4313 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 4323 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 4333 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 4343 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 6141 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_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 6279 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 6289 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 6299 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 6309 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 6319 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 6329 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 6339 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 6349 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 6359 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 6369 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 6379 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 6389 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 6399 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 6409 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 6419 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 6429 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 6446 of file conflict.c.

References conflictAnalyzeLP(), SCIP_Stat::conflictlptime, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Lp::lpi, SCIP_Col::lpipos, 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 6677 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 6687 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 6697 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 6707 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 6717 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 6727 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 6737 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 6747 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 6769 of file conflict.c.

References conflictAnalyzeRemainingBdchgs(), SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::lpi, 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 6911 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 6921 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 6931 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 6941 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 6951 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 6961 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 6971 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 6981 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().