conflict_general.h
Go to the documentation of this file.
46/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
79/** return TRUE if conflict analysis is applicable; In case the function return FALSE there is no need to initialize the
105 * SCIPconflictAddRelaxedBound(), and on success, calls the conflict handlers to create a conflict constraint out of
119/** analyzes conflicting bound changes that were added with calls to SCIPconflictAddBound(), and on success,
141/** adds the collected conflict constraints to the corresponding nodes; the best set->conf_maxconss conflict constraints
142 * are added to the node of their validdepth; additionally (if not yet added, and if repropagation is activated), the
143 * conflict constraint that triggers the earliest repropagation is added to the node of its validdepth
171/** returns the total number of resolution conflict constraints that were added to the problem */
176/** returns the total number of literals in conflict constraints that were added to the problem */
191/** returns the total number of literals in conflict constraints that were added globally to the problem */
206/** returns the total number of literals in conflict constraints that were added locally to the problem */
231/** gets number of calls to propagation conflict analysis that yield at least one conflict constraint */
241/** gets total number of literals in conflict constraints created in propagation conflict analysis */
246/** gets total number of variables in resolution conflict constraints created in propagation conflict analysis */
256/** gets total number of literals in reconvergence constraints created in propagation conflict analysis */
265/** analyzes an infeasible or bound exceeding LP to find out the bound changes on variables that were responsible for the
267 * on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating
299/** gets number of calls to infeasible LP conflict analysis that yield at least one conflict constraint */
309/** gets total number of literals in conflict constraints created in infeasible LP conflict analysis */
319/** gets total number of literals in reconvergence constraints created in infeasible LP conflict analysis */
339/** gets number of calls to bound exceeding LP conflict analysis that yield at least one conflict constraint */
349/** gets total number of literals in conflict constraints created in bound exceeding LP conflict analysis */
359/** gets total number of literals in reconvergence constraints created in bound exceeding LP conflict analysis */
449/** gets number of calls to infeasible strong branching conflict analysis that yield at least one conflict constraint */
454/** gets number of conflict constraints detected in infeasible strong branching conflict analysis */
459/** gets total number of literals in conflict constraints created in infeasible strong branching conflict analysis */
464/** gets number of reconvergence constraints detected in infeasible strong branching conflict analysis */
469/** gets total number of literals in reconvergence constraints created in infeasible strong branching conflict analysis */
486/** analyzes a pseudo solution with objective value exceeding the current cutoff to find out the bound changes on
488 * on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating
519/** gets number of calls to pseudo solution conflict analysis that yield at least one conflict constraint */
529/** gets total number of literals in conflict constraints created in pseudo solution conflict analysis */
539/** gets total number of literals in reconvergence constraints created in pseudo solution conflict analysis */
546 SCIP_CONFLICT* conflict, /**< the conflict analysis data for which all clocks should be enabled or disabled */
551 * SCIPconflictAddRelaxedBound(), and on success, calls the conflict handlers to create a conflict constraint out of
563 SCIP_Bool mustresolve, /**< should the conflict set only be used, if a resolution was applied? */
565 int* nliterals, /**< pointer to store the number of literals in generated conflict constraints */
567 int* nreconvliterals /**< pointer to store the number of literals generated reconvergence constraints */
571 * This function performs generalized resolution conflict analysis by iteratively aggregating the
572 * infeasible conflict row (conflictrow) with the reason row (reasonrow) that propagated the bound change.
573 * In each iteration, the coefficient of the resolving variable is cancelled. If the aggregation does not
574 * yield an infeasible row, MIR reduction is applied to the reason row and the aggregation is retried,
575 * continuing until a first unique implication point (FUIP) is reached. On success, a linear conflict
595 int* nconfvars /**< pointer to store the number of variables in generated conflict constraints */
636 SCIP_Real* curvarlbs, /**< current lower bounds of active problem variables (or NULL for global bounds) */
637 SCIP_Real* curvarubs, /**< current upper bounds of active problem variables (or NULL for global bounds) */
638 SCIP_Bool* infdelta /**< pointer to store whether at least one variable contributes with an infinite value */
int SCIPconflictGetNConflicts(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:130
SCIP_Longint SCIPconflictGetNAppliedGlobalConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:180
SCIP_Longint SCIPconflictGetNDualproofsInfLocal(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:766
SCIP_Longint SCIPconflictGetNAppliedLocalLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:220
SCIP_Longint SCIPconflictGetNResConflictVars(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:546
SCIP_Longint SCIPconflictGetNPropCalls(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:506
SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:776
SCIP_Longint SCIPconflictGetNStrongbranchIterations(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:886
SCIP_Real SCIPconflictGetInfeasibleLPTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:576
SCIP_Longint SCIPconflictGetNInfeasibleLPCalls(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:586
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)
Definition: conflict_general.c:1370
SCIP_RETCODE SCIPconflictCreate(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
Definition: conflict_general.c:272
SCIP_Real SCIPconflictGetGlobalApplTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:476
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)
Definition: conflict_general.c:1710
SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:596
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:706
SCIP_Longint SCIPconflictGetNGlobalChgBds(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:170
SCIP_RETCODE SCIPconflictClearQueues(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:429
SCIP_Longint SCIPconflictGetNAppliedLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:160
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_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
Definition: conflict_general.c:2979
SCIP_Longint SCIPconflictGetNPropConflictLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:536
SCIP_Longint SCIPconflictGetNAppliedConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:140
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:606
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:686
SCIP_RETCODE conflictAnalyzeResolution(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_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_ROW *initialconflictrow, int validdepth, int *nconss, int *nconfvars)
Definition: conflict_resolution.c:2961
SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:676
SCIP_Longint SCIPconflictGetNStrongbranchCalls(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:826
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:636
SCIP_Longint SCIPconflictGetNPropReconvergenceConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:556
SCIP_Real SCIPconflictGetBoundexceedingLPTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:656
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)
Definition: conflict_graphanalysis.c:5571
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:876
SCIP_Real SCIPconflictGetPseudoTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2175
SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2235
SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:566
SCIP_Bool SCIPconflictApplicable(SCIP_SET *set)
Definition: conflict_general.c:117
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:626
SCIP_Longint SCIPconflictGetNAppliedLocalConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:210
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_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_COL *col, SCIP_Bool *downconflict, SCIP_Bool *upconflict)
Definition: conflict_general.c:2573
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:866
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:696
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_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *success)
Definition: conflict_general.c:2015
SCIP_Real SCIPconflictGetStrongbranchTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:736
SCIP_Longint SCIPconflictGetNPseudoSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2195
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:616
SCIP_Real SCIPaggrRowGetMinActivity(SCIP_SET *set, SCIP_PROB *transprob, SCIP_AGGRROW *aggrrow, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *infdelta)
Definition: conflict_general.c:1076
SCIP_Longint SCIPconflictGetNPseudoConflictLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2215
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)
Definition: conflict_graphanalysis.c:3780
SCIP_Longint SCIPconflictGetNLocalChgBds(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:200
SCIP_Longint SCIPconflictGetNDualproofsBndSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:786
SCIP_Longint SCIPconflictGetNPropSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:516
SCIP_Longint SCIPconflictGetNDualproofsInfSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:746
SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:666
SCIP_Longint SCIPconflictGetNPropConflictConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:526
SCIP_Longint SCIPconflictGetNStrongbranchSuccess(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:836
SCIP_Real SCIPconflictGetResTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:496
SCIP_Longint SCIPconflictGetNDualproofsBndGlobal(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:796
SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2225
SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:190
SCIP_Longint SCIPconflictGetNDualproofsBndLocal(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:806
SCIP_RETCODE SCIPconflictAnalyzeResolution(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_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_ROW *initialconflictrow, int validdepth, SCIP_Bool *success)
Definition: conflict_resolution.c:3336
SCIP_Longint SCIPconflictGetNPseudoCalls(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2185
SCIP_Longint SCIPconflictGetNAppliedResConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:150
void SCIPconflictEnableOrDisableClocks(SCIP_CONFLICT *conflict, SCIP_Bool enable)
Definition: conflict_general.c:255
SCIP_Real SCIPconflictGetPropTime(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:486
SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:726
SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:856
SCIP_Longint SCIPconflictGetNPseudoConflictConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:2205
SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:816
SCIP_Longint SCIPconflictGetNDualproofsInfGlobal(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:756
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_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
Definition: conflict_graphanalysis.c:1916
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:716
SCIP_RETCODE SCIPconflictFree(SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
Definition: conflict_general.c:384
SCIP_Longint SCIPconflictGetNStrongbranchConflictConss(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:846
SCIP_Longint SCIPconflictGetNInfeasibleLPIterations(SCIP_CONFLICT *conflict)
Definition: conflict_general.c:646
common defines and data types used in all packages of SCIP
memory allocation routines
Definition: struct_cuts.h:41
Definition: struct_branch.h:47
Definition: struct_implics.h:98
Definition: struct_lp.h:138
Definition: struct_conflictstore.h:46
Definition: struct_conflict.h:137
Definition: struct_event.h:202
Definition: struct_event.h:237
Definition: lpi_clp.cpp:105
Definition: struct_lp.h:275
Definition: struct_prob.h:49
Definition: struct_reopt.h:140
Definition: struct_lp.h:205
Definition: struct_set.h:75
Definition: struct_stat.h:62
Definition: struct_tree.h:187
Definition: heur_padm.c:135
type definitions for branching rules
type definitions for conflict analysis
type definitions for conflict store
type definitions for constraints and constraint handlers
type definitions for cuts
type definitions for managing events
type definitions for implications, variable bounds, and cliques
type definitions for LP management
type definitions for specific LP solvers interface
type definitions for storing and manipulating the main problem
type definitions for collecting reoptimization information
type definitions for return codes for SCIP methods
type definitions for global SCIP settings
type definitions for problem statistics
type definitions for branch and bound tree
type definitions for problem variables