Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods and datastructures for conflict analysis

Author
Tobias Achterberg
Timo Berthold
Stefan Heinz
Marc Pfetsch
Michael Winkler
Jakob Witzig

SCIP contains two kinds of conflict analysis:

  • In graph based conflict analysis, the graph consisting of derived is analysed. Code and documentation is available in conflict_graphanalysis.h
  • In dual proof analysis, an infeasible LP relaxation is analysed. Using the dual solution, a valid constraint is derived that is violated by all values in the domain. This constraint is added to the problem and can then be used for domain propagation. Code is available in conflict_dualproofanalysis.h This file contains the methods that are shared by both kinds of conflict analysis.

Definition in file conflict_general.h.

#include "blockmemshell/memory.h"
#include "scip/def.h"
#include "scip/type_branch.h"
#include "scip/type_conflict.h"
#include "scip/type_conflictstore.h"
#include "scip/type_event.h"
#include "scip/type_cuts.h"
#include "lpi/type_lpi.h"
#include "scip/type_implics.h"
#include "scip/type_lp.h"
#include "scip/type_prob.h"
#include "scip/type_reopt.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_tree.h"
#include "scip/type_var.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPconflictCreate (SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflictFree (SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
 
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, SCIP_CONFLICTSTORE *conflictstore, 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, SCIP_CONFLICTSTORE *conflictstore, 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 SCIPconflictGetNDualproofsInfSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsInfGlobal (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsInfLocal (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsBndSuccess (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsBndGlobal (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsBndLocal (SCIP_CONFLICT *conflict)
 
SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros (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)
 
SCIP_RETCODE conflictAnalyze (SCIP_CONFLICT *conflict, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool diving, int validdepth, SCIP_Bool mustresolve, int *nconss, int *nliterals, int *nreconvconss, int *nreconvliterals)
 
SCIP_RETCODE SCIPgetFarkasProof (SCIP_SET *set, SCIP_PROB *prob, SCIP_LP *lp, SCIP_LPI *lpi, SCIP_TREE *tree, SCIP_AGGRROW *farkasrow, SCIP_Real *farkasact, int *validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *valid)
 
SCIP_RETCODE SCIPgetDualProof (SCIP_SET *set, SCIP_PROB *transprob, SCIP_LP *lp, SCIP_LPI *lpi, SCIP_TREE *tree, SCIP_AGGRROW *farkasrow, SCIP_Real *farkasact, int *validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *valid)
 
SCIP_Real SCIPaggrRowGetMinActivity (SCIP_SET *set, SCIP_PROB *transprob, SCIP_AGGRROW *aggrrow, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *infdelta)
 

Function Documentation

◆ SCIPconflictCreate()

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 230 of file conflict_general.c.

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

Referenced by SCIPtransformProb().

◆ SCIPconflictFree()

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 320 of file conflict_general.c.

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

Referenced by freeTransform(), and freeTransforming().

◆ SCIPconflictAnalyze()

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 5448 of file conflict_graphanalysis.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(), SCIPpqueueNElems(), SCIPsetDebugMsg, SCIPtreeGetCurrentDepth(), and TRUE.

Referenced by SCIPanalyzeConflict(), and SCIPanalyzeConflictCons().

◆ SCIPconflictFlushConss()

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 1916 of file conflict_graphanalysis.c.

References conflictAddConflictCons(), conflictCalcMaxsize(), SCIP_ConflictSet::conflictdepth, conflictFreeTmpBdchginfos(), 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, SCIPconflictsetFree(), SCIPdebug, SCIPnodeCutoff(), SCIPnodePropagateAgain(), SCIPsetDebugMsg, SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvisualFoundConflict(), SCIP_ConflictSet::validdepth, and SCIP_Stat::visual.

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

◆ SCIPconflictGetNConflicts()

int SCIPconflictGetNConflicts ( SCIP_CONFLICT conflict)

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

Parameters
conflictconflict analysis data

Definition at line 99 of file conflict_general.c.

References SCIP_Conflict::nconflictsets, and NULL.

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

◆ SCIPconflictGetNAppliedConss()

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 109 of file conflict_general.c.

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

Referenced by SCIPgetNConflictConssApplied().

◆ SCIPconflictGetNAppliedLiterals()

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 119 of file conflict_general.c.

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

◆ SCIPconflictGetNGlobalChgBds()

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 129 of file conflict_general.c.

References SCIP_Conflict::nglbchgbds, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNAppliedGlobalConss()

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 139 of file conflict_general.c.

References SCIP_Conflict::nappliedglbconss, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNAppliedGlobalLiterals()

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 149 of file conflict_general.c.

References SCIP_Conflict::nappliedglbliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNLocalChgBds()

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 159 of file conflict_general.c.

References SCIP_Conflict::nlocchgbds, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNAppliedLocalConss()

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 169 of file conflict_general.c.

References SCIP_Conflict::nappliedlocconss, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNAppliedLocalLiterals()

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 179 of file conflict_general.c.

References SCIP_Conflict::nappliedlocliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetGlobalApplTime()

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 389 of file conflict_general.c.

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

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetPropTime()

SCIP_Real SCIPconflictGetPropTime ( SCIP_CONFLICT conflict)

gets time in seconds used for analyzing propagation conflicts

Parameters
conflictconflict analysis data

Definition at line 399 of file conflict_general.c.

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

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNPropCalls()

SCIP_Longint SCIPconflictGetNPropCalls ( SCIP_CONFLICT conflict)

gets number of calls to propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 409 of file conflict_general.c.

References SCIP_Conflict::npropcalls, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNPropSuccess()

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 419 of file conflict_general.c.

References SCIP_Conflict::npropsuccess, and NULL.

Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().

◆ SCIPconflictGetNPropConflictConss()

SCIP_Longint SCIPconflictGetNPropConflictConss ( SCIP_CONFLICT conflict)

gets number of conflict constraints detected in propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 429 of file conflict_general.c.

References SCIP_Conflict::npropconfconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNPropConflictLiterals()

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 439 of file conflict_general.c.

References SCIP_Conflict::npropconfliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNPropReconvergenceConss()

SCIP_Longint SCIPconflictGetNPropReconvergenceConss ( SCIP_CONFLICT conflict)

gets number of reconvergence constraints detected in propagation conflict analysis

Parameters
conflictconflict analysis data

Definition at line 449 of file conflict_general.c.

References SCIP_Conflict::npropreconvconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNPropReconvergenceLiterals()

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 459 of file conflict_general.c.

References SCIP_Conflict::npropreconvliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictAnalyzeLP()

SCIP_RETCODE SCIPconflictAnalyzeLP ( SCIP_CONFLICT conflict,
SCIP_CONFLICTSTORE conflictstore,
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
conflictstoreconflict store
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 2500 of file conflict_general.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_LpSolVals::dualchecked, SCIP_Lp::dualchecked, 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::primalchecked, SCIP_Lp::primalchecked, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_ColSolVals::primsol, SCIP_Col::primsol, r, 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().

◆ SCIPconflictGetInfeasibleLPTime()

SCIP_Real SCIPconflictGetInfeasibleLPTime ( SCIP_CONFLICT conflict)

gets time in seconds used for analyzing infeasible LP conflicts

Parameters
conflictconflict analysis data

Definition at line 469 of file conflict_general.c.

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

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNInfeasibleLPCalls()

SCIP_Longint SCIPconflictGetNInfeasibleLPCalls ( SCIP_CONFLICT conflict)

gets number of calls to infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 479 of file conflict_general.c.

References SCIP_Conflict::ninflpcalls, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNInfeasibleLPSuccess()

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 489 of file conflict_general.c.

References SCIP_Conflict::ninflpsuccess, and NULL.

Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().

◆ SCIPconflictGetNInfeasibleLPConflictConss()

SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss ( SCIP_CONFLICT conflict)

gets number of conflict constraints detected in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 499 of file conflict_general.c.

References SCIP_Conflict::ninflpconfconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNInfeasibleLPConflictLiterals()

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 509 of file conflict_general.c.

References SCIP_Conflict::ninflpconfliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNInfeasibleLPReconvergenceConss()

SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss ( SCIP_CONFLICT conflict)

gets number of reconvergence constraints detected in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 519 of file conflict_general.c.

References SCIP_Conflict::ninflpreconvconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNInfeasibleLPReconvergenceLiterals()

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 529 of file conflict_general.c.

References SCIP_Conflict::ninflpreconvliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNInfeasibleLPIterations()

SCIP_Longint SCIPconflictGetNInfeasibleLPIterations ( SCIP_CONFLICT conflict)

gets number of LP iterations in infeasible LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 539 of file conflict_general.c.

References SCIP_Conflict::ninflpiterations, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetBoundexceedingLPTime()

SCIP_Real SCIPconflictGetBoundexceedingLPTime ( SCIP_CONFLICT conflict)

gets time in seconds used for analyzing bound exceeding LP conflicts

Parameters
conflictconflict analysis data

Definition at line 549 of file conflict_general.c.

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

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNBoundexceedingLPCalls()

SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls ( SCIP_CONFLICT conflict)

gets number of calls to bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 559 of file conflict_general.c.

References SCIP_Conflict::nboundlpcalls, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNBoundexceedingLPSuccess()

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 569 of file conflict_general.c.

References SCIP_Conflict::nboundlpsuccess, and NULL.

Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().

◆ SCIPconflictGetNBoundexceedingLPConflictConss()

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 579 of file conflict_general.c.

References SCIP_Conflict::nboundlpconfconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNBoundexceedingLPConflictLiterals()

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 589 of file conflict_general.c.

References SCIP_Conflict::nboundlpconfliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNBoundexceedingLPReconvergenceConss()

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 599 of file conflict_general.c.

References SCIP_Conflict::nboundlpreconvconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNBoundexceedingLPReconvergenceLiterals()

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 609 of file conflict_general.c.

References SCIP_Conflict::nboundlpreconvliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNBoundexceedingLPIterations()

SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations ( SCIP_CONFLICT conflict)

gets number of LP iterations in bound exceeding LP conflict analysis

Parameters
conflictconflict analysis data

Definition at line 619 of file conflict_general.c.

References SCIP_Conflict::nboundlpiterations, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictAnalyzeStrongbranch()

SCIP_RETCODE SCIPconflictAnalyzeStrongbranch ( SCIP_CONFLICT conflict,
SCIP_CONFLICTSTORE conflictstore,
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
conflictstoreconflict store
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 2103 of file conflict_general.c.

References conflictAnalyzeLP(), SCIP_Stat::conflictlptime, SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, 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_CONFTYPE_INFEASLP, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPcolGetVar(), SCIPlpiChgBounds(), SCIPlpiEndStrongbranch(), SCIPlpiGetBase(), SCIPlpiGetIterations(), SCIPlpiSetBase(), SCIPlpiSolveDual(), SCIPlpiStartStrongbranch(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetFreeBufferArray, SCIPsetIsGE(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIP_Lp::solved, TRUE, and SCIP_Col::ub.

Referenced by analyzeStrongbranch().

◆ SCIPconflictGetStrongbranchTime()

SCIP_Real SCIPconflictGetStrongbranchTime ( SCIP_CONFLICT conflict)

gets time in seconds used for analyzing infeasible strong branching conflicts

Parameters
conflictconflict analysis data

Definition at line 629 of file conflict_general.c.

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

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsInfSuccess()

SCIP_Longint SCIPconflictGetNDualproofsInfSuccess ( SCIP_CONFLICT conflict)

gets number of successful calls to dual proof analysis derived from infeasible LPs

Parameters
conflictconflict analysis data

Definition at line 639 of file conflict_general.c.

References SCIP_Conflict::ndualproofsinfsuccess, and NULL.

Referenced by SCIPgetNConflictDualproofsApplied(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsInfGlobal()

SCIP_Longint SCIPconflictGetNDualproofsInfGlobal ( SCIP_CONFLICT conflict)

gets number of globally valid dual proof constraints derived from infeasible LPs

Parameters
conflictconflict analysis data

Definition at line 649 of file conflict_general.c.

References SCIP_Conflict::ndualproofsinfglobal, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsInfLocal()

SCIP_Longint SCIPconflictGetNDualproofsInfLocal ( SCIP_CONFLICT conflict)

gets number of locally valid dual proof constraints derived from infeasible LPs

Parameters
conflictconflict analysis data

Definition at line 659 of file conflict_general.c.

References SCIP_Conflict::ndualproofsinflocal, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsInfNonzeros()

SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros ( SCIP_CONFLICT conflict)

gets average length of dual proof constraints derived from infeasible LPs

Parameters
conflictconflict analysis data

Definition at line 669 of file conflict_general.c.

References SCIP_Conflict::dualproofsinfnnonzeros, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsBndSuccess()

SCIP_Longint SCIPconflictGetNDualproofsBndSuccess ( SCIP_CONFLICT conflict)

gets number of successfully analyzed dual proofs derived from bound exceeding LPs

Parameters
conflictconflict analysis data

Definition at line 679 of file conflict_general.c.

References SCIP_Conflict::ndualproofsbndsuccess, and NULL.

Referenced by SCIPgetNConflictDualproofsApplied(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsBndGlobal()

SCIP_Longint SCIPconflictGetNDualproofsBndGlobal ( SCIP_CONFLICT conflict)

gets number of globally applied dual proofs derived from bound exceeding LPs

Parameters
conflictconflict analysis data

Definition at line 689 of file conflict_general.c.

References SCIP_Conflict::ndualproofsbndglobal, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsBndLocal()

SCIP_Longint SCIPconflictGetNDualproofsBndLocal ( SCIP_CONFLICT conflict)

gets number of locally applied dual proofs derived from bound exceeding LPs

Parameters
conflictconflict analysis data

Definition at line 699 of file conflict_general.c.

References SCIP_Conflict::ndualproofsbndlocal, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNDualproofsBndNonzeros()

SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros ( SCIP_CONFLICT conflict)

gets average length of dual proofs derived from bound exceeding LPs

Parameters
conflictconflict analysis data

Definition at line 709 of file conflict_general.c.

References SCIP_Conflict::dualproofsbndnnonzeros, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNStrongbranchCalls()

SCIP_Longint SCIPconflictGetNStrongbranchCalls ( SCIP_CONFLICT conflict)

gets number of calls to infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 719 of file conflict_general.c.

References SCIP_Conflict::nsbcalls, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNStrongbranchSuccess()

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 729 of file conflict_general.c.

References SCIP_Conflict::nsbsuccess, and NULL.

Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().

◆ SCIPconflictGetNStrongbranchConflictConss()

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 739 of file conflict_general.c.

References SCIP_Conflict::nsbconfconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNStrongbranchConflictLiterals()

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 749 of file conflict_general.c.

References SCIP_Conflict::nsbconfliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNStrongbranchReconvergenceConss()

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 759 of file conflict_general.c.

References SCIP_Conflict::nsbreconvconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNStrongbranchReconvergenceLiterals()

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 769 of file conflict_general.c.

References SCIP_Conflict::nsbreconvliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNStrongbranchIterations()

SCIP_Longint SCIPconflictGetNStrongbranchIterations ( SCIP_CONFLICT conflict)

gets number of LP iterations in infeasible strong branching conflict analysis

Parameters
conflictconflict analysis data

Definition at line 779 of file conflict_general.c.

References SCIP_Conflict::nsbiterations, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictAnalyzePseudo()

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 1563 of file conflict_general.c.

References SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, 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_CONFTYPE_BNDEXCEEDING, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPconflictAnalyzeRemainingBdchgs(), SCIPconflictFlushConss(), SCIPlpGetPseudoObjval(), SCIPprobIsObjIntegral(), SCIPsetAllocBufferArray, SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPsetIsFeasGT(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPtreeGetCurrentDepth(), SCIPundoBdchgsProof(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), TRUE, SCIP_ConflictSet::usescutoffbound, and SCIP_Prob::vars.

Referenced by applyBounding().

◆ SCIPconflictGetPseudoTime()

SCIP_Real SCIPconflictGetPseudoTime ( SCIP_CONFLICT conflict)

gets time in seconds used for analyzing pseudo solution conflicts

Parameters
conflictconflict analysis data

Definition at line 1715 of file conflict_general.c.

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

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNPseudoCalls()

SCIP_Longint SCIPconflictGetNPseudoCalls ( SCIP_CONFLICT conflict)

gets number of calls to pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 1725 of file conflict_general.c.

References SCIP_Conflict::npseudocalls, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNPseudoSuccess()

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 1735 of file conflict_general.c.

References SCIP_Conflict::npseudosuccess, and NULL.

Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().

◆ SCIPconflictGetNPseudoConflictConss()

SCIP_Longint SCIPconflictGetNPseudoConflictConss ( SCIP_CONFLICT conflict)

gets number of conflict constraints detected in pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 1745 of file conflict_general.c.

References SCIP_Conflict::npseudoconfconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNPseudoConflictLiterals()

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 1755 of file conflict_general.c.

References SCIP_Conflict::npseudoconfliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictGetNPseudoReconvergenceConss()

SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss ( SCIP_CONFLICT conflict)

gets number of reconvergence constraints detected in pseudo solution conflict analysis

Parameters
conflictconflict analysis data

Definition at line 1765 of file conflict_general.c.

References SCIP_Conflict::npseudoreconvconss, and NULL.

Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

◆ SCIPconflictGetNPseudoReconvergenceLiterals()

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 1775 of file conflict_general.c.

References SCIP_Conflict::npseudoreconvliterals, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictEnableOrDisableClocks()

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 214 of file conflict_general.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().

◆ conflictAnalyze()

SCIP_RETCODE conflictAnalyze ( SCIP_CONFLICT conflict,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB prob,
SCIP_TREE tree,
SCIP_Bool  diving,
int  validdepth,
SCIP_Bool  mustresolve,
int *  nconss,
int *  nliterals,
int *  nreconvconss,
int *  nreconvliterals 
)

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; afterwards the conflict queue and the conflict set is cleared

Parameters
conflictconflict analysis data
blkmemblock memory of transformed problem
setglobal SCIP settings
statproblem statistics
probproblem data
treebranch and bound tree
divingare we in strong branching or diving mode?
validdepthminimal depth level at which the initial conflict set is valid
mustresolveshould the conflict set only be used, if a resolution was applied?
nconsspointer to store the number of generated conflict constraints
nliteralspointer to store the number of literals in generated conflict constraints
nreconvconsspointer to store the number of generated reconvergence constraints
nreconvliteralspointer to store the number of literals generated reconvergence constraints

Definition at line 3661 of file conflict_graphanalysis.c.

References SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, SCIP_DomChgBound::boundchgs, conflictAddConflictBound(), conflictAddConflictset(), conflictClear(), conflictCreateReconvergenceConss(), conflictFirstCand(), conflictRemoveCand(), conflictResolveBound(), SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, SCIP_Node::domchg, SCIP_DomChg::domchgbound, FALSE, SCIP_Conflict::forcedbdchgqueue, MIN, SCIP_ConflictSet::nbdchginfos, SCIP_DomChgBound::nboundchgs, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_ConflictSet::relaxedbds, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetPos(), SCIPbdchginfoGetRelaxedBound(), SCIPbdchginfoGetVar(), SCIPbdchginfoHasInferenceReason(), SCIPbdchginfoIsRedundant(), SCIPdebugCheckConflictFrontier, SCIPpqueueNElems(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), and TRUE.

Referenced by SCIPconflictAnalyze(), and SCIPconflictAnalyzeRemainingBdchgs().

◆ SCIPgetFarkasProof()

SCIP_RETCODE SCIPgetFarkasProof ( SCIP_SET set,
SCIP_PROB prob,
SCIP_LP lp,
SCIP_LPI lpi,
SCIP_TREE tree,
SCIP_AGGRROW farkasrow,
SCIP_Real farkasact,
int *  validdepth,
SCIP_Real curvarlbs,
SCIP_Real curvarubs,
SCIP_Bool valid 
)

calculates a Farkas proof from the current dual LP solution

Parameters
setglobal SCIP settings
probtransformed problem
lpLP data
lpiLPI data
treetree data
farkasrowaggregated row representing the proof
farkasactmaximal activity of the proof constraint
validdepthpointer to store the valid depth of the proof constraint
curvarlbscurrent lower bounds of active problem variables
curvarubscurrent upper bounds of active problem variables
validpointer store whether the proof constraint is valid

Definition at line 1157 of file conflict_general.c.

References addLocalRows(), addRowToAggrRow(), BMSclearMemoryArray, checkDualFeasibility(), SCIP_Row::cols, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, NULL, NUMSTOP, r, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPfreeBufferArrayNull, SCIPlpDivingObjChanged(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetDualfarkas(), SCIPlpiHasDualRay(), SCIPlpiIsDualFeasible(), SCIPlpiIsObjlimExc(), SCIPlpiIsPrimalInfeasible(), SCIProwGetLPDepth(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasLE(), SCIPtreeGetFocusDepth(), SCIP_Lp::solved, TRUE, and SCIP_Row::vals.

Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().

◆ SCIPgetDualProof()

SCIP_RETCODE SCIPgetDualProof ( SCIP_SET set,
SCIP_PROB transprob,
SCIP_LP lp,
SCIP_LPI lpi,
SCIP_TREE tree,
SCIP_AGGRROW farkasrow,
SCIP_Real farkasact,
int *  validdepth,
SCIP_Real curvarlbs,
SCIP_Real curvarubs,
SCIP_Bool valid 
)

calculates a dual proof from the current dual LP solution

Parameters
setglobal SCIP settings
transprobtransformed problem
lpLP data
lpiLPI data
treetree data
farkasrowaggregated row representing the proof
farkasactmaximal activity of the proof constraint
validdepthpointer to store the valid depth of the proof constraint
curvarlbscurrent lower bounds of active problem variables
curvarubscurrent upper bounds of active problem variables
validpointer store whether the proof constraint is valid

Definition at line 1328 of file conflict_general.c.

References addLocalRows(), addRowToAggrRow(), checkDualFeasibility(), SCIP_Row::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, NULL, NUMSTOP, r, REALABS, SCIP_Bool, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowClear(), SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPfreeBufferArrayNull, SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetObjval(), SCIPlpiGetSol(), SCIPprobIsObjIntegral(), SCIProwGetLPDepth(), SCIPsetAllocBufferArray, SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasLE(), SCIPtreeGetFocusDepth(), SCIP_Lp::solved, TRUE, and SCIP_Row::vals.

Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().

◆ SCIPaggrRowGetMinActivity()

SCIP_Real SCIPaggrRowGetMinActivity ( SCIP_SET set,
SCIP_PROB transprob,
SCIP_AGGRROW aggrrow,
SCIP_Real curvarlbs,
SCIP_Real curvarubs,
SCIP_Bool infdelta 
)

calculates the minimal activity of a given aggregation row

Parameters
setglobal SCIP settings
transprobtransformed problem data
aggrrowaggregation row
curvarlbscurrent lower bounds of active problem variables (or NULL for global bounds)
curvarubscurrent upper bounds of active problem variables (or NULL for global bounds)
infdeltapointer to store whether at least one variable contributes with an infinite value

Definition at line 869 of file conflict_general.c.

References FALSE, NULL, QUAD, QUAD_ASSIGN, QUAD_TO_DBL, SCIP_Real, SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPaggrRowGetProbvarValue(), SCIPprobGetVars(), SCIPquadprecProdDD, SCIPquadprecSumQQ, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), and TRUE.

Referenced by addLocalRows(), SCIPconflictAnalyzeDualProof(), SCIPgetDualProof(), SCIPgetFarkasProof(), and separateAlternativeProofs().