Detailed Descriptionmethods and datastructures for conflict analysis This file implements a conflict analysis method like the one used in modern SAT solvers like zchaff. The algorithm works as follows: Given is a set of bound changes that are not allowed being applied simultaneously, because they render the current node infeasible (e.g. because a single constraint is infeasible in the these bounds, or because the LP relaxation is infeasible). The goal is to deduce a clause on variables – a conflict clause – representing the "reason" for this conflict, i.e., the branching decisions or the deductions (applied e.g. in domain propagation) that lead to the conflict. This clause can then be added to the constraint set to help cutting off similar parts of the branch and bound tree, that would lead to the same conflict. A conflict clause can also be generated, if the conflict was detected by a locally valid constraint. In this case, the resulting conflict clause is also locally valid in the same depth as the conflict detecting constraint. If all involved variables are binary, a linear (set covering) constraint can be generated, otherwise a bound disjunction constraint is generated. Details are given in Tobias Achterberg, Conflict Analysis in Mixed Integer Programming See also How to use conflict analysis. Here is an outline of the algorithm:
If all deduced bound changes come with (global) inference information, depending on the conflict analyzing strategy, the resulting conflict set has the following property:
The user has to do the following to get the conflict analysis running in its current implementation:
Definition in file conflict.c. #include <assert.h> #include <string.h> #include "scip/def.h" #include "scip/set.h" #include "scip/stat.h" #include "scip/clock.h" #include "scip/visual.h" #include "scip/history.h" #include "scip/paramset.h" #include "scip/lp.h" #include "scip/var.h" #include "scip/prob.h" #include "scip/tree.h" #include "scip/scip.h" #include "scip/conflict.h" #include "scip/cons.h" #include "scip/prop.h" #include "scip/presolve.h" #include "scip/debug.h" #include "scip/pub_message.h" #include "scip/pub_misc.h" #include "lpi/lpi.h" #include "scip/struct_conflict.h" Go to the source code of this file.
Macro Definition Documentation
Value:
(-(conflictset)->nbdchginfos - 100*(conflictset)->repropdepth \ - 1000*(conflictset)->validdepth) Definition at line 143 of file conflict.c. Referenced by conflictsetCalcScore().
Definition at line 4947 of file conflict.c. Referenced by undoBdchgsDualfarkas(). Function Documentation
compares two conflict handlers w. r. to their priority Definition at line 333 of file conflict.c.
comparison method for sorting conflict handler w.r.t. to their name Definition at line 339 of file conflict.c. References SCIPconflicthdlrGetName().
method to call, when the priority of a conflict handler was changed Definition at line 346 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetConflicthdlrPriority().
copies the given conflict handler to a new scip
Definition at line 360 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPconflicthdlrGetName(), and SCIPdebugMessage. Referenced by SCIPsetCopyPlugins().
creates a conflict handler
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().
calls destructor and frees memory of conflict handler
Definition at line 432 of file conflict.c. References BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
calls initialization method of conflict handler
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().
calls exit method of conflict handler
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().
informs conflict handler that the branch and bound process is being started
Definition at line 527 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime. Referenced by SCIPsetExitprePlugins().
informs conflict handler that the branch and bound process data is being freed
Definition at line 551 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime. Referenced by SCIPsetInitsolPlugins().
calls execution method of conflict handler
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().
gets user data of conflict handler
Definition at line 619 of file conflict.c. References SCIP_Conflicthdlr::conflicthdlrdata, and NULL. Referenced by SCIP_DECL_CONFLICTEXEC(), and SCIP_DECL_CONFLICTFREE().
sets user data of conflict handler; user has to free old data in advance!
Definition at line 629 of file conflict.c. References SCIP_Conflicthdlr::conflicthdlrdata, and NULL.
set copy method of conflict handler
Definition at line 640 of file conflict.c. References NULL. Referenced by SCIPsetConflicthdlrCopy().
set destructor of conflict handler
Definition at line 651 of file conflict.c. References NULL. Referenced by SCIPsetConflicthdlrFree().
set initialization method of conflict handler
Definition at line 662 of file conflict.c. References NULL. Referenced by SCIPsetConflicthdlrInit().
set deinitialization method of conflict handler
Definition at line 673 of file conflict.c. References NULL. Referenced by SCIPsetConflicthdlrExit().
set solving process initialization method of conflict handler
Definition at line 684 of file conflict.c. References NULL. Referenced by SCIPsetConflicthdlrInitsol().
set solving process deinitialization method of conflict handler
Definition at line 695 of file conflict.c. References NULL. Referenced by SCIPsetConflicthdlrExitsol().
gets name of conflict handler
Definition at line 706 of file conflict.c. References SCIP_Conflicthdlr::name, and NULL. Referenced by conflictAddConflictCons(), SCIP_DECL_CONFLICTEXEC(), SCIP_DECL_CONFLICTFREE(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SORTPTRCOMP(), SCIPconflicthdlrCopyInclude(), SCIPincludeDialogDefaultFix(), SCIPincludeDialogDefaultSet(), and SCIPsetFindConshdlr().
gets description of conflict handler
Definition at line 716 of file conflict.c. References SCIP_Conflicthdlr::desc, and NULL. Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().
gets priority of conflict handler
Definition at line 726 of file conflict.c. References NULL, and SCIP_Conflicthdlr::priority. Referenced by conflictAddConflictCons(), and SCIP_DECL_DIALOGEXEC().
sets priority of conflict handler
Definition at line 736 of file conflict.c. References FALSE, NULL, and SCIP_Conflicthdlr::priority. Referenced by SCIPsetConflicthdlrPriority().
is conflict handler initialized?
Definition at line 750 of file conflict.c. References SCIP_Conflicthdlr::initialized, and NULL.
enables or disables all clocks of
Definition at line 760 of file conflict.c. References SCIP_Conflicthdlr::conflicttime, NULL, SCIPclockEnableOrDisable(), and SCIP_Conflicthdlr::setuptime. Referenced by SCIPsetSetReoptimizationParams().
gets time in seconds used in this conflict handler for setting up for next stages
Definition at line 772 of file conflict.c. References NULL, SCIPclockGetTime(), and SCIP_Conflicthdlr::setuptime.
gets time in seconds used in this conflict handler
Definition at line 782 of file conflict.c. References SCIP_Conflicthdlr::conflicttime, NULL, and SCIPclockGetTime().
create conflict LP bound change data structure
Definition at line 798 of file conflict.c. References BMSclearMemoryArray, SCIP_CALL, SCIP_OKAY, SCIPsetAllocBuffer, and SCIPsetAllocBufferArray. Referenced by conflictAnalyzeLP().
reset conflict LP bound change data structure
Definition at line 820 of file conflict.c. References BMSclearMemoryArray, SCIP_LPBdChgs::nbdchgs, NULL, and SCIP_LPBdChgs::usedcols. Referenced by conflictAnalyzeLP().
free conflict LP bound change data structure
Definition at line 833 of file conflict.c. References SCIPsetFreeBuffer, and SCIPsetFreeBufferArray. Referenced by conflictAnalyzeLP().
resizes the array of the temporary bound change informations to be able to store at least num bound change entries
Definition at line 853 of file conflict.c. References BMSreallocMemoryArray, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Conflict::tmpbdchginfos, and SCIP_Conflict::tmpbdchginfossize. Referenced by conflictCreateTmpBdchginfo().
creates a temporary bound change information object that is destroyed after the conflict sets are flushed
Definition at line 877 of file conflict.c. References conflictEnsureTmpbdchginfosMem(), SCIP_Conflict::ntmpbdchginfos, NULL, SCIP_CALL, SCIP_OKAY, SCIPbdchginfoCreate(), and SCIP_Conflict::tmpbdchginfos. Referenced by conflictAnalyzeRemainingBdchgs(), and conflictCreateReconvergenceConss().
frees all temporarily created bound change information data
Definition at line 901 of file conflict.c. References SCIP_Conflict::ntmpbdchginfos, NULL, SCIPbdchginfoFree(), and SCIP_Conflict::tmpbdchginfos. Referenced by SCIPconflictFlushConss().
clears the given conflict set
Definition at line 917 of file conflict.c. References SCIP_ConflictSet::conflictdepth, SCIP_ConflictSet::insertdepth, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::repropagate, SCIP_ConflictSet::repropdepth, TRUE, and SCIP_ConflictSet::validdepth. Referenced by conflictClear(), and conflictsetCreate().
creates an empty conflict set
Definition at line 933 of file conflict.c. References BMSallocBlockMemory, conflictsetClear(), NULL, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPconflictCreate().
creates a copy of the given conflict set, allocating an additional amount of memory
Definition at line 953 of file conflict.c. References SCIP_ConflictSet::bdchginfos, BMSallocBlockMemory, BMSallocBlockMemoryArray, BMScopyMemoryArray, SCIP_ConflictSet::conflictdepth, SCIP_ConflictSet::insertdepth, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_ConflictSet::repropdepth, SCIP_ALLOC, SCIP_OKAY, SCIP_ConflictSet::sortvals, and SCIP_ConflictSet::validdepth. Referenced by conflictAddConflictset().
frees a conflict set
Definition at line 987 of file conflict.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, and NULL. Referenced by conflictAddConflictset(), conflictInsertConflictset(), SCIPconflictFlushConss(), and SCIPconflictFree().
resizes the arrays of the conflict set to be able to store at least num bound change entries
Definition at line 1003 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_ConflictSet::bdchginfossize, BMSreallocBlockMemoryArray, NULL, SCIP_ConflictSet::relaxedbds, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_ConflictSet::sortvals. Referenced by conflictsetAddBound(), and conflictsetAddBounds().
updates the score of the conflict set
Definition at line 1030 of file conflict.c. References CONFLICTSETSCORE, NULL, and SCIP_Real. Referenced by conflictInsertConflictset().
check if the bound change info (which is the potential next candidate which is queued) is valid for the current conflict analysis; a bound change info can get invalid if after this one was added to the queue, a weaker bound change was added to the queue (due the bound widening idea) which immediately makes this bound change redundant; due to the priority we did not removed that bound change info since that cost O(log(n)); hence we have to skip/ignore it now The following situations can occur before for example the bound change info (x >= 3) is potentially popped from the queue. Postcondition: the reason why (x >= 3) was queued is that at this time point no lower bound of x was involved yet in the current conflict or the lower bound which was involved until then was stronger, e.g., (x >= 2). 1) during the time until (x >= 3) gets potentially popped no weaker lower bound was added to the queue, in that case the conflictlbcount is valid and conflictlb is 3; that is (var->conflictlbcount == conflict->count && var->conflictlb == 3) 2) a weaker bound change info gets queued (e.g., x >= 4); this bound change is popped before (x >= 3) since it has higher priority (which is the time stamp of the bound change info and (x >= 4) has to be done after (x >= 3) during propagation or branching) a) if (x >= 4) is popped and added to the conflict set the conflictlbcount is still valid and conflictlb is at most 4; that is (var->conflictlbcount == conflict->count && var->conflictlb >= 4); it follows that any bound change info which is stronger than (x >= 4) gets ignored (for example x >= 2) b) if (x >= 4) is popped and resolved without introducing a new lower bound on x until (x >= 3) is a potentially candidate the conflictlbcount indicates that bound change is currently not present; that is (var->conflictlbcount != conflict->count) c) if (x >= 4) is popped and resolved and a new lower bound on x (e.g., x >= 2) is introduced until (x >= 3) is pooped, the conflictlbcount indicates that bound change is currently present; that is (var->conflictlbcount == conflict->count); however the (x >= 3) only has be explained if conflictlb matches that one; that is (var->conflictlb == bdchginfo->newbound); otherwise it redundant/invalid.
Definition at line 1073 of file conflict.c. References SCIP_Var::conflictlb, SCIP_Var::conflictlbcount, SCIP_Var::conflictub, SCIP_Var::conflictubcount, SCIP_Conflict::count, FALSE, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPvarIsBinary(), and TRUE. Referenced by conflictFirstCand(), conflictRemoveCand(), conflictResolveBound(), and conflictsetAddBounds().
adds a bound change to a conflict set
Definition at line 1116 of file conflict.c. References SCIP_ConflictSet::bdchginfos, conflictsetEnsureBdchginfosMem(), MAX, MIN, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsTighter(), SCIPsortedvecDelPosIntPtrReal(), SCIPsortedvecInsertIntPtrReal(), SCIPvarGetIndex(), and SCIP_ConflictSet::sortvals. Referenced by conflictAddConflictBound(), and conflictsetAddBounds().
adds given bound changes to a conflict set
Definition at line 1186 of file conflict.c. References bdchginfoIsInvalid(), SCIP_ConflictSet::bdchginfos, conflictsetAddBound(), conflictsetEnsureBdchginfosMem(), FALSE, MAX, MIN, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetRelaxedBound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsTighter(), SCIPdebugMessage, SCIPsortIntPtrReal(), SCIPvarGetIndex(), SCIPvarGetName(), SCIP_ConflictSet::sortvals, and TRUE. Referenced by conflictAddConflictset().
calculates the conflict and the repropagation depths of the conflict set
Definition at line 1352 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_ConflictSet::conflictdepth, SCIP_ConflictSet::insertdepth, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::repropdepth, SCIPbdchginfoGetDepth(), and SCIP_ConflictSet::validdepth. Referenced by conflictInsertConflictset().
identifies the depth, at which the conflict set should be added:
Definition at line 1396 of file conflict.c. References SCIP_ConflictSet::bdchginfos, BMSclearMemoryArray, SCIP_ConflictSet::insertdepth, MIN, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_Tree::pathlen, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPbdchginfoGetDepth(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPtreeGetCurrentDepth(), TRUE, and SCIP_ConflictSet::validdepth. Referenced by conflictAddConflictset().
checks whether the first conflict set is redundant to the second one
Definition at line 1443 of file conflict.c. References SCIP_ConflictSet::bdchginfos, FALSE, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_BOUNDTYPE_LOWER, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsTighter(), SCIPdebugPrintf, SCIPvarGetName(), SCIP_ConflictSet::sortvals, and SCIP_ConflictSet::validdepth. Referenced by conflictInsertConflictset().
resizes conflictsets array to be able to store at least num entries
Definition at line 1505 of file conflict.c. References BMSreallocMemoryArray, SCIP_Conflict::conflictsets, SCIP_Conflict::conflictsetscores, SCIP_Conflict::conflictsetssize, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by conflictInsertConflictset().
inserts conflict set into sorted conflictsets array and deletes the conflict set pointer
Definition at line 1530 of file conflict.c. References conflictEnsureConflictsetsMem(), conflictsetCalcConflictDepth(), conflictsetCalcScore(), conflictsetFree(), conflictsetIsRedundant(), SCIP_Conflict::conflictsets, SCIP_Conflict::conflictsetscores, MIN, SCIP_Conflict::nconflictsets, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebug, and SCIPdebugMessage. Referenced by conflictAddConflictset(). calculates the maximal size of conflict sets to be used
Definition at line 1625 of file conflict.c. References MAX, SCIP_Prob::ncontvars, NULL, and SCIP_Prob::nvars. Referenced by conflictAnalyzeRemainingBdchgs(), SCIPconflictAnalyze(), and SCIPconflictFlushConss().
increases the conflict score of the variable in the given direction
Definition at line 1643 of file conflict.c. References SCIP_Stat::glbhistory, SCIP_Stat::glbhistorycrun, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_OKAY, SCIPhistoryIncVSIDS(), SCIPsetIsZero(), SCIPvarIncVSIDS(), and SCIP_Stat::vsidsweight. Referenced by conflictAddBound(), conflictAnalyzeRemainingBdchgs(), and updateStatistics().
update conflict statistics
Definition at line 1674 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_Stat::glbhistory, SCIP_Stat::glbhistorycrun, incVSIDS(), SCIP_Conflict::nappliedglbconss, SCIP_Conflict::nappliedglbliterals, SCIP_Conflict::nappliedlocconss, SCIP_Conflict::nappliedlocliterals, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_BOUNDTYPE_LOWER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPhistoryIncNActiveConflicts(), SCIPvarIncNActiveConflicts(), and SCIP_BdChgInfo::var. Referenced by conflictAddConflictCons().
check conflict set for redundancy, other conflicts in the same conflict analysis could have led to global reductions an made this conflict set redundant
Definition at line 1728 of file conflict.c. References SCIP_ConflictSet::bdchginfos, FALSE, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsIntegral(), SCIPsetIsLE(), SCIPvarGetLbGlobal(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and TRUE. Referenced by detectImpliedBounds().
find global fixings which can be derived from the new conflict set
Definition at line 1793 of file conflict.c. References SCIP_ConflictSet::bdchginfos, BMSclearMemoryArray, checkRedundancy(), FALSE, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPboundtypeOpposite(), SCIPdebugMessage, SCIPdebugPrintf, SCIPprobGetName(), SCIPprobIsTransformed(), SCIPsetAllocBufferArray, SCIPsetAllocCleanBufferArray, SCIPsetFreeBufferArray, SCIPsetFreeCleanBufferArray, SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsGE(), SCIPsetIsIntegral(), SCIPsetIsLE(), SCIPsetIsZero(), SCIPshrinkDisjunctiveVarSet(), SCIPsortLongPtrRealRealBool(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNCliques(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPvarIsIntegral(), SCIP_ConflictSet::sortvals, and TRUE. Referenced by conflictAddConflictCons().
adds the given conflict set as conflict constraint to the problem
Definition at line 2046 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_BdChgInfo::boundtype, SCIP_ConflictSet::conflictdepth, detectImpliedBounds(), SCIP_Conflict::dIBclock, SCIP_Lp::diving, FALSE, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_Tree::path, SCIP_ConflictSet::relaxedbds, SCIP_Tree::root, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_CONSADDED, SCIP_OKAY, SCIP_Real, SCIPboundtypeOpposite(), SCIPclockStart(), SCIPclockStop(), SCIPconflicthdlrExec(), SCIPconflicthdlrGetName(), SCIPconflicthdlrGetPriority(), SCIPdebug, SCIPdebugCheckConflict, SCIPdebugMessage, SCIPnodeAddBoundchg(), SCIPsetIsIntegral(), SCIPsetSortConflicthdlrs(), SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvarGetName(), SCIPvarIsIntegral(), SCIP_Lp::strongbranching, TRUE, updateStatistics(), SCIP_ConflictSet::validdepth, and SCIP_BdChgInfo::var. Referenced by SCIPconflictFlushConss().
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
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().
returns the current number of conflict sets in the conflict set storage
Definition at line 2362 of file conflict.c. References SCIP_Conflict::nconflictsets, and NULL. Referenced by propAndSolve(), SCIPgetNConflictConssFoundNode(), SCIPgetVarStrongbranchWithPropagation(), and solveNode().
returns the total number of conflict constraints that were added to the problem
Definition at line 2372 of file conflict.c. References SCIP_Conflict::nappliedglbconss, SCIP_Conflict::nappliedlocconss, and NULL. Referenced by SCIPgetNConflictConssApplied().
returns the total number of literals in conflict constraints that were added to the problem
Definition at line 2382 of file conflict.c. References SCIP_Conflict::nappliedglbliterals, SCIP_Conflict::nappliedlocliterals, and NULL.
returns the total number of global bound changes applied by the conflict analysis
Definition at line 2392 of file conflict.c. References SCIP_Conflict::nglbchgbds, and NULL. Referenced by printConflictStatistics().
returns the total number of conflict constraints that were added globally to the problem
Definition at line 2402 of file conflict.c. References SCIP_Conflict::nappliedglbconss, and NULL. Referenced by printConflictStatistics().
returns the total number of literals in conflict constraints that were added globally to the problem
Definition at line 2412 of file conflict.c. References SCIP_Conflict::nappliedglbliterals, and NULL. Referenced by printConflictStatistics().
returns the total number of local bound changes applied by the conflict analysis
Definition at line 2422 of file conflict.c. References SCIP_Conflict::nlocchgbds, and NULL. Referenced by printConflictStatistics().
returns the total number of conflict constraints that were added locally to the problem
Definition at line 2432 of file conflict.c. References SCIP_Conflict::nappliedlocconss, and NULL. Referenced by printConflictStatistics().
returns the total number of literals in conflict constraints that were added locally to the problem
Definition at line 2442 of file conflict.c. References SCIP_Conflict::nappliedlocliterals, and NULL. Referenced by printConflictStatistics().
returns whether bound change has a valid reason that can be resolved in conflict analysis
Definition at line 2460 of file conflict.c. References NULL, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIPbdchginfoGetChgtype(), SCIPbdchginfoGetInferProp(), and SCIPbdchginfoIsRedundant(). Referenced by addCand(), and conflictCreateReconvergenceConss().
compares two conflict set entries, such that bound changes infered later are ordered prior to ones that were infered earlier Definition at line 2476 of file conflict.c. References NULL, SCIPbdchgidxIsEarlierNonNull(), SCIPbdchginfoGetIdx(), and SCIPbdchginfoIsRedundant(). 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
Definition at line 2497 of file conflict.c. Referenced by SCIPconflictAnalyze(), and SCIPisConflictAnalysisApplicable().
creates conflict analysis data for propagation conflicts
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().
frees conflict analysis data for propagation conflicts
Definition at line 2590 of file conflict.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, conflictsetFree(), NULL, SCIP_OKAY, SCIPclockFree(), and SCIPpqueueFree(). Referenced by freeTransform().
clears the conflict queue and the current conflict set
Definition at line 2623 of file conflict.c. References SCIP_Conflict::bdchgqueue, SCIP_Conflict::conflictset, conflictsetClear(), SCIP_Conflict::forcedbdchgqueue, NULL, and SCIPpqueueClear(). Referenced by conflictAnalyze(), conflictCreateReconvergenceConss(), and SCIPconflictInit().
initializes the propagation conflict analysis by clearing the conflict candidate queue
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().
marks bound to be present in the current conflict and returns whether a bound which is at least as tight was already member of the current conflict (i.e., the given bound change does not need to be added)
Definition at line 2694 of file conflict.c. References SCIP_Var::conflictlb, SCIP_Var::conflictlbcount, SCIP_Var::conflictrelaxedlb, SCIP_Var::conflictrelaxedub, SCIP_Var::conflictub, SCIP_Var::conflictubcount, SCIP_Conflict::count, FALSE, MAX, MIN, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_Real, SCIPABORT, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPdebugMessage, SCIPerrorMessage, SCIPvarGetName(), and TRUE. Referenced by conflictAddConflictBound(), and conflictQueueBound().
puts bound change into the current conflict set
Definition at line 2782 of file conflict.c. References conflictMarkBoundCheckPresence(), SCIP_Conflict::conflictset, conflictsetAddBound(), NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPdebugMessage, SCIPsetIsGE(), SCIPsetIsLE(), and SCIPvarGetName(). Referenced by conflictAnalyze(), conflictAnalyzeRemainingBdchgs(), and conflictCreateReconvergenceConss().
returns whether the negation of the given bound change would lead to a globally valid literal
Definition at line 2825 of file conflict.c. References SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPvarGetLbGlobal(), SCIPvarGetType(), and SCIPvarGetUbGlobal(). Referenced by conflictQueueBound().
adds given bound change information to the conflict candidate queue
Definition at line 2845 of file conflict.c. References SCIP_Conflict::bdchgqueue, conflictMarkBoundCheckPresence(), SCIP_Conflict::forcedbdchgqueue, isBoundchgUseless(), NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPpqueueInsert(), SCIPsetIsGE(), SCIPsetIsLE(), and SCIPvarIsBinary(). Referenced by conflictAddBound(), and conflictCreateReconvergenceConss().
convert variable and bound change to active variable
Definition at line 2891 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIPboundtypeOpposite(), SCIPvarGetProbvarSum(), and SCIPvarGetStatus(). Referenced by SCIPconflictAddBound(), SCIPconflictAddRelaxedBound(), and SCIPconflictIsVarUsed().
adds variable's bound to conflict candidate queue
Definition at line 2926 of file conflict.c. References conflictQueueBound(), incVSIDS(), NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetChgtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetInferCons(), SCIPbdchginfoGetInferInfo(), SCIPbdchginfoGetInferProp(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetOldbound(), SCIPbdchginfoGetPos(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPconsGetName(), SCIPdebugMessage, SCIPpropGetName(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetType(), and SCIPvarIsActive(). Referenced by conflictAnalyzeRemainingBdchgs(), SCIPconflictAddBound(), and SCIPconflictAddRelaxedBound().
adds variable's bound to conflict candidate queue
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().
adds variable's bound to conflict candidate queue
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().
checks if the given variable is already part of the current conflict set or queued for resolving with the same or even stronger bound
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().
returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower bound
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().
returns the conflict upper bound if the variable is present in the current conflict set; otherwise the global upper bound
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().
removes and returns next conflict analysis candidate from the candidate queue
Definition at line 3300 of file conflict.c. References bdchginfoIsInvalid(), SCIP_Conflict::bdchgqueue, SCIP_Var::conflictlbcount, SCIP_Var::conflictrelaxedlb, SCIP_Var::conflictrelaxedub, SCIP_Var::conflictubcount, SCIP_Conflict::forcedbdchgqueue, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPpqueueNElems(), and SCIPpqueueRemove(). Referenced by conflictAnalyze(), and conflictCreateReconvergenceConss().
returns next conflict analysis candidate from the candidate queue without removing it
Definition at line 3344 of file conflict.c. References bdchginfoIsInvalid(), SCIP_Conflict::bdchgqueue, SCIP_Conflict::forcedbdchgqueue, NULL, SCIP_BOUNDTYPE_LOWER, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPdebugMessage, SCIPpqueueFirst(), SCIPpqueueNElems(), SCIPpqueueRemove(), and SCIPvarGetName(). Referenced by conflictAnalyze(), and conflictCreateReconvergenceConss().
adds the current conflict set (extended by all remaining bound changes in the queue) to the pool of conflict sets
Definition at line 3398 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, conflictInsertConflictset(), SCIP_Conflict::conflictset, conflictsetAddBounds(), conflictsetCalcInsertDepth(), conflictsetCopy(), conflictsetFree(), FALSE, SCIP_Conflict::forcedbdchgqueue, SCIP_ConflictSet::insertdepth, MAX, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_ConflictSet::relaxedbds, SCIP_ConflictSet::repropagate, SCIP_CALL, SCIP_OKAY, SCIPdebugCheckConflict, SCIPdebugMessage, SCIPpqueueElems(), SCIPpqueueNElems(), SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), TRUE, and SCIP_ConflictSet::validdepth. Referenced by conflictAnalyze(), and conflictCreateReconvergenceConss().
tries to resolve given bound change
Definition at line 3497 of file conflict.c. References bdchginfoIsInvalid(), SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, SCIP_Conflict::conflictset, FALSE, SCIP_Conflict::forcedbdchgqueue, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetChgtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetIdx(), SCIPbdchginfoGetInferBoundtype(), SCIPbdchginfoGetInferCons(), SCIPbdchginfoGetInferInfo(), SCIPbdchginfoGetInferProp(), SCIPbdchginfoGetInferVar(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetPos(), SCIPbdchginfoGetRelaxedBound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPconsGetName(), SCIPconsGetValidDepth(), SCIPconsIsGlobal(), SCIPconsResolvePropagation(), SCIPdebugMessage, SCIPdebugPrintf, SCIPerrorMessage, SCIPpqueueElems(), SCIPpqueueNElems(), SCIPpropGetName(), SCIPpropResolvePropagation(), SCIPvarGetBdAtIndex(), SCIPvarGetMultaggrNVars(), SCIPvarGetName(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarIsActive(), and TRUE. Referenced by conflictAnalyze(), and conflictCreateReconvergenceConss().
if only one conflicting bound change of the last depth level was used, and if this can be resolved, creates GRASP-like reconvergence conflict constraints in the conflict graph up to the branching variable of this depth level
Definition at line 3706 of file conflict.c. References bdchginfoIsResolvable(), SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, conflictAddConflictBound(), conflictAddConflictset(), conflictClear(), conflictCreateTmpBdchginfo(), conflictFirstCand(), conflictQueueBound(), conflictRemoveCand(), conflictResolveBound(), SCIP_Conflict::conflictset, FALSE, SCIP_Conflict::forcedbdchgqueue, MIN, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_ConflictSet::relaxedbds, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetPos(), SCIPbdchginfoGetRelaxedBound(), SCIPbdchginfoGetVar(), SCIPbdchginfoIsRedundant(), SCIPboundtypeOpposite(), SCIPconflictInit(), SCIPdebugCheckConflictFrontier, SCIPdebugMessage, SCIPpqueueNElems(), SCIPsetIsIntegral(), SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvarGetName(), SCIPvarIsActive(), and SCIPvarIsIntegral(). Referenced by conflictAnalyze().
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
Definition at line 3934 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, SCIP_DomChgBound::boundchgs, conflictAddConflictBound(), conflictAddConflictset(), conflictClear(), conflictCreateReconvergenceConss(), conflictFirstCand(), conflictRemoveCand(), conflictResolveBound(), SCIP_Conflict::conflictset, 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, SCIPdebugMessage, SCIPpqueueNElems(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarIsActive(), and TRUE. Referenced by conflictAnalyzeRemainingBdchgs(), and SCIPconflictAnalyze().
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
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().
gets time in seconds used for preprocessing global conflict constraint before appliance
Definition at line 4273 of file conflict.c. References SCIP_Conflict::dIBclock, NULL, and SCIPclockGetTime(). Referenced by printConflictStatistics().
gets time in seconds used for analyzing propagation conflicts
Definition at line 4283 of file conflict.c. References NULL, SCIP_Conflict::propanalyzetime, and SCIPclockGetTime(). Referenced by printConflictStatistics().
gets number of calls to propagation conflict analysis
Definition at line 4293 of file conflict.c. References SCIP_Conflict::npropcalls, and NULL. Referenced by printConflictStatistics().
gets number of calls to propagation conflict analysis that yield at least one conflict constraint
Definition at line 4303 of file conflict.c. References SCIP_Conflict::npropsuccess, and NULL. Referenced by printConflictStatistics(), and SCIPsolveCIP().
gets number of conflict constraints detected in propagation conflict analysis
Definition at line 4313 of file conflict.c. References SCIP_Conflict::npropconfconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in conflict constraints created in propagation conflict analysis
Definition at line 4323 of file conflict.c. References SCIP_Conflict::npropconfliterals, and NULL. Referenced by printConflictStatistics().
gets number of reconvergence constraints detected in propagation conflict analysis
Definition at line 4333 of file conflict.c. References SCIP_Conflict::npropreconvconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in reconvergence constraints created in propagation conflict analysis
Definition at line 4343 of file conflict.c. References SCIP_Conflict::npropreconvliterals, and NULL. Referenced by printConflictStatistics().
ensures, that side change arrays can store at least num entries
Definition at line 4361 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIPsetReallocBufferArray. Referenced by addSideRemoval().
adds removal of row's side to side change arrays; finite sides are only replaced by near infinite sides, such that the row's sense in the LP solver is not changed
Definition at line 4400 of file conflict.c. References ensureSidechgsSize(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIProwGetConstant(), SCIProwGetLhs(), SCIProwGetLPPos(), SCIProwGetRhs(), and SCIPsetIsInfinity(). Referenced by conflictAnalyzeLP().
inserts variable's new bounds into bound change arrays
Definition at line 4469 of file conflict.c. References SCIP_LPBdChgs::bdchgcolinds, SCIP_LPBdChgs::bdchginds, SCIP_LPBdChgs::bdchglbs, SCIP_LPBdChgs::bdchgubs, SCIP_LPBdChgs::nbdchgs, NULL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPcolGetLPPos(), SCIPlpiInfinity(), SCIPlpiIsInfinity(), SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPvarGetCol(), SCIPvarGetLbLP(), SCIPvarGetStatus(), SCIPvarGetUbLP(), TRUE, and SCIP_LPBdChgs::usedcols. Referenced by undoBdchgsProof().
ensures, that candidate array can store at least num entries
Definition at line 4550 of file conflict.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIPsetReallocBufferArray. Referenced by addCand().
adds variable to candidate list, if the current best bound corresponding to the proof coefficient is local; returns the array position in the candidate list, where the new candidate was inserted, or -1 if the variable can relaxed to global bounds immediately without increasing the proof's activity; the candidates are sorted with respect to the following two criteria:
Definition at line 4587 of file conflict.c. References SCIP_BdChgInfo::bdchgidx, bdchginfoIsResolvable(), SCIP_BdChgIdx::depth, ensureCandsSize(), FALSE, SCIP_Var::lbchginfos, MAX, SCIP_BdChgInfo::newbound, SCIP_Var::nlbchginfos, SCIP_Var::nubchginfos, NULL, SCIP_BdChgInfo::oldbound, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPsetIsGT(), SCIPsetIsZero(), SCIPvarGetLbLocal(), SCIPvarGetLbLP(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIPvarGetUbLP(), SCIPvarIsBinary(), and SCIP_Var::ubchginfos. Referenced by undoBdchgsProof().
after changing the global bound of a variable, the bdchginfos that are now redundant are replaced with oldbound = newbound = global bound; if the current bdchginfo is of such kind, the bound is equal to the global bound and we can ignore it by installing a -1 as the corresponding bound change info position
Definition at line 4723 of file conflict.c. References SCIP_Var::lbchginfos, SCIP_BdChgInfo::newbound, SCIP_Var::nlbchginfos, SCIP_Var::nubchginfos, NULL, SCIP_BdChgInfo::oldbound, SCIP_BdChgInfo::redundant, SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and SCIP_Var::ubchginfos. Referenced by undoBdchgsProof().
undoes bound changes on variables, still leaving the given infeasibility proof valid
Definition at line 4755 of file conflict.c. References addBdchg(), addCand(), FALSE, NULL, SCIP_Prob::nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsFeasGT(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), SCIPvarIsInLP(), skipRedundantBdchginfos(), TRUE, and SCIP_Prob::vars. Referenced by SCIPconflictAnalyzePseudo(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
analyzes an infeasible LP and undoes additional bound changes while staying infeasible
Definition at line 4951 of file conflict.c. References BMSclearMemoryArray, SCIP_Row::cols, SCIP_Row::constant, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, NULL, NUMSTOP, SCIP_Prob::nvars, REALABS, SCIP_Row::rhs, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPcolGetLPPos(), SCIPcolGetVar(), SCIPdebugMessage, SCIPlpGetLPI(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetDualfarkas(), SCIPlpiGetSides(), SCIPlpiHasDualRay(), SCIProwGetName(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasGT(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsRelEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetLbLP(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLP(), SCIP_Lp::solved, TRUE, undoBdchgsProof(), SCIP_Row::vals, and SCIP_Prob::vars. Referenced by conflictAnalyzeLP().
analyzes an LP exceeding the objective limit and undoes additional bound changes while staying beyond the objective limit
Definition at line 5159 of file conflict.c. References BMSclearMemoryArray, SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::local, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, NULL, SCIP_Prob::nvars, SCIP_Row::rhs, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPcolCalcRedcost(), SCIPcolGetLPPos(), SCIPcolGetVar(), SCIPdebugMessage, SCIPlpGetLPI(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetObjval(), SCIPlpiGetSol(), SCIProwGetName(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsFeasGT(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsZero(), SCIPsetSumepsilon(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIP_Lp::solved, TRUE, undoBdchgsProof(), SCIP_Row::vals, and SCIP_Prob::vars. Referenced by conflictAnalyzeLP().
applies conflict analysis starting with given bound changes, that could not be undone during previous infeasibility analysis
Definition at line 5405 of file conflict.c. References conflictAddBound(), conflictAddConflictBound(), conflictAnalyze(), conflictCalcMaxsize(), conflictCreateTmpBdchginfo(), FALSE, incVSIDS(), SCIP_Var::lbchginfos, SCIP_Var::nlbchginfos, SCIP_Var::nubchginfos, NULL, SCIP_Prob::nvars, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoIsRedundant(), SCIPconflictInit(), SCIPdebugMessage, SCIPvarGetLbLocal(), SCIPvarGetLbLP(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarGetUbLP(), SCIP_Var::ubchginfos, and SCIP_Prob::vars. Referenced by conflictAnalyzeLP(), and SCIPconflictAnalyzePseudo().
actually performs analysis of infeasible LP
Definition at line 5533 of file conflict.c. References addSideRemoval(), SCIP_LPBdChgs::bdchginds, SCIP_LPBdChgs::bdchglbs, SCIP_LPBdChgs::bdchgubs, conflictAnalyzeRemainingBdchgs(), SCIP_Stat::conflictlptime, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, lpbdchgsCreate(), lpbdchgsFree(), lpbdchgsReset(), SCIP_Lp::lpiitlim, SCIP_Lp::lpiuobjlim, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_LPBdChgs::nbdchgs, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Conflict::nconflictsets, SCIP_Var::nlbchginfos, SCIP_Var::nubchginfos, NULL, SCIP_Prob::nvars, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_UOBJLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPconflictFlushConss(), SCIPdebugMessage, SCIPlpDivingObjChanged(), SCIPlpGetLPI(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiChgBounds(), SCIPlpiChgSides(), SCIPlpiGetIterations(), SCIPlpiGetObjval(), SCIPlpiGetRealpar(), SCIPlpiInfinity(), SCIPlpiIsDualFeasible(), SCIPlpiIsObjlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsPrimalInfeasible(), SCIPlpiSetIntpar(), SCIPlpiSetRealpar(), SCIPlpiSolveDual(), SCIPprobAllColsInLP(), SCIProwGetLhs(), SCIProwGetLPPos(), SCIProwGetName(), SCIProwGetRhs(), SCIProwIsLocal(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetLbLP(), SCIPvarGetUbLocal(), SCIPvarGetUbLP(), SCIP_Lp::solved, TRUE, undoBdchgsDualfarkas(), undoBdchgsDualsol(), and SCIP_Prob::vars. Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), and SCIPconflictAnalyzeStrongbranch().
analyzes an infeasible LP to find out the bound changes on variables that were responsible for the infeasibility; 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 LP conflict analysis
Definition at line 6002 of file conflict.c. References conflictAnalyzeLP(), FALSE, SCIP_Conflict::inflpanalyzetime, SCIP_Conflict::ninflpcalls, SCIP_Conflict::ninflpconfconss, SCIP_Conflict::ninflpconfliterals, SCIP_Conflict::ninflpiterations, SCIP_Conflict::ninflpreconvconss, SCIP_Conflict::ninflpreconvliterals, SCIP_Conflict::ninflpsuccess, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPlpDiving(), SCIPlpDivingObjChanged(), SCIPlpGetSolstat(), SCIPprobAllColsInLP(), SCIPtreeGetCurrentDepth(), and TRUE. Referenced by SCIPconflictAnalyzeLP().
analyzes a bound exceeding LP to find out the bound changes on variables that were responsible 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 bound exceeding LP conflict analysis
Definition at line 6071 of file conflict.c. References SCIP_Conflict::boundlpanalyzetime, conflictAnalyzeLP(), FALSE, SCIP_Conflict::nboundlpcalls, SCIP_Conflict::nboundlpconfconss, SCIP_Conflict::nboundlpconfliterals, SCIP_Conflict::nboundlpiterations, SCIP_Conflict::nboundlpreconvconss, SCIP_Conflict::nboundlpreconvliterals, SCIP_Conflict::nboundlpsuccess, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPlpDiving(), SCIPlpDivingObjChanged(), SCIPlpGetSolstat(), SCIPprobAllColsInLP(), SCIPtreeGetCurrentDepth(), and TRUE. Referenced by SCIPconflictAnalyzeLP().
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()
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().
gets time in seconds used for analyzing infeasible LP conflicts
Definition at line 6279 of file conflict.c. References SCIP_Conflict::inflpanalyzetime, NULL, and SCIPclockGetTime(). Referenced by printConflictStatistics().
gets number of calls to infeasible LP conflict analysis
Definition at line 6289 of file conflict.c. References SCIP_Conflict::ninflpcalls, and NULL. Referenced by printConflictStatistics().
gets number of calls to infeasible LP conflict analysis that yield at least one conflict constraint
Definition at line 6299 of file conflict.c. References SCIP_Conflict::ninflpsuccess, and NULL. Referenced by printConflictStatistics(), and SCIPsolveCIP().
gets number of conflict constraints detected in infeasible LP conflict analysis
Definition at line 6309 of file conflict.c. References SCIP_Conflict::ninflpconfconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in conflict constraints created in infeasible LP conflict analysis
Definition at line 6319 of file conflict.c. References SCIP_Conflict::ninflpconfliterals, and NULL. Referenced by printConflictStatistics().
gets number of reconvergence constraints detected in infeasible LP conflict analysis
Definition at line 6329 of file conflict.c. References SCIP_Conflict::ninflpreconvconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in reconvergence constraints created in infeasible LP conflict analysis
Definition at line 6339 of file conflict.c. References SCIP_Conflict::ninflpreconvliterals, and NULL. Referenced by printConflictStatistics().
gets number of LP iterations in infeasible LP conflict analysis
Definition at line 6349 of file conflict.c. References SCIP_Conflict::ninflpiterations, and NULL. Referenced by printConflictStatistics().
gets time in seconds used for analyzing bound exceeding LP conflicts
Definition at line 6359 of file conflict.c. References SCIP_Conflict::boundlpanalyzetime, NULL, and SCIPclockGetTime(). Referenced by printConflictStatistics().
gets number of calls to bound exceeding LP conflict analysis
Definition at line 6369 of file conflict.c. References SCIP_Conflict::nboundlpcalls, and NULL. Referenced by printConflictStatistics().
gets number of calls to bound exceeding LP conflict analysis that yield at least one conflict constraint
Definition at line 6379 of file conflict.c. References SCIP_Conflict::nboundlpsuccess, and NULL. Referenced by printConflictStatistics(), and SCIPsolveCIP().
gets number of conflict constraints detected in bound exceeding LP conflict analysis
Definition at line 6389 of file conflict.c. References SCIP_Conflict::nboundlpconfconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in conflict constraints created in bound exceeding LP conflict analysis
Definition at line 6399 of file conflict.c. References SCIP_Conflict::nboundlpconfliterals, and NULL. Referenced by printConflictStatistics().
gets number of reconvergence constraints detected in bound exceeding LP conflict analysis
Definition at line 6409 of file conflict.c. References SCIP_Conflict::nboundlpreconvconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in reconvergence constraints created in bound exceeding LP conflict analysis
Definition at line 6419 of file conflict.c. References SCIP_Conflict::nboundlpreconvliterals, and NULL. Referenced by printConflictStatistics().
gets number of LP iterations in bound exceeding LP conflict analysis
Definition at line 6429 of file conflict.c. References SCIP_Conflict::nboundlpiterations, and NULL. Referenced by printConflictStatistics().
analyses infeasible strong branching sub problems for conflicts
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().
gets time in seconds used for analyzing infeasible strong branching conflicts
Definition at line 6677 of file conflict.c. References NULL, SCIP_Conflict::sbanalyzetime, and SCIPclockGetTime(). Referenced by printConflictStatistics().
gets number of calls to infeasible strong branching conflict analysis
Definition at line 6687 of file conflict.c. References SCIP_Conflict::nsbcalls, and NULL. Referenced by printConflictStatistics().
gets number of calls to infeasible strong branching conflict analysis that yield at least one conflict constraint
Definition at line 6697 of file conflict.c. References SCIP_Conflict::nsbsuccess, and NULL. Referenced by printConflictStatistics(), and SCIPsolveCIP().
gets number of conflict constraints detected in infeasible strong branching conflict analysis
Definition at line 6707 of file conflict.c. References SCIP_Conflict::nsbconfconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in conflict constraints created in infeasible strong branching conflict analysis
Definition at line 6717 of file conflict.c. References SCIP_Conflict::nsbconfliterals, and NULL. Referenced by printConflictStatistics().
gets number of reconvergence constraints detected in infeasible strong branching conflict analysis
Definition at line 6727 of file conflict.c. References SCIP_Conflict::nsbreconvconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in reconvergence constraints created in infeasible strong branching conflict analysis
Definition at line 6737 of file conflict.c. References SCIP_Conflict::nsbreconvliterals, and NULL. Referenced by printConflictStatistics().
gets number of LP iterations in infeasible strong branching conflict analysis
Definition at line 6747 of file conflict.c. References SCIP_Conflict::nsbiterations, and NULL. Referenced by printConflictStatistics().
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
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().
gets time in seconds used for analyzing pseudo solution conflicts
Definition at line 6911 of file conflict.c. References NULL, SCIP_Conflict::pseudoanalyzetime, and SCIPclockGetTime(). Referenced by printConflictStatistics().
gets number of calls to pseudo solution conflict analysis
Definition at line 6921 of file conflict.c. References SCIP_Conflict::npseudocalls, and NULL. Referenced by printConflictStatistics().
gets number of calls to pseudo solution conflict analysis that yield at least one conflict constraint
Definition at line 6931 of file conflict.c. References SCIP_Conflict::npseudosuccess, and NULL. Referenced by printConflictStatistics(), and SCIPsolveCIP().
gets number of conflict constraints detected in pseudo solution conflict analysis
Definition at line 6941 of file conflict.c. References SCIP_Conflict::npseudoconfconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in conflict constraints created in pseudo solution conflict analysis
Definition at line 6951 of file conflict.c. References SCIP_Conflict::npseudoconfliterals, and NULL. Referenced by printConflictStatistics().
gets number of reconvergence constraints detected in pseudo solution conflict analysis
Definition at line 6961 of file conflict.c. References SCIP_Conflict::npseudoreconvconss, and NULL. Referenced by printConflictStatistics(), and SCIPgetNConflictConssFound().
gets total number of literals in reconvergence constraints created in pseudo solution conflict analysis
Definition at line 6971 of file conflict.c. References SCIP_Conflict::npseudoreconvliterals, and NULL. Referenced by printConflictStatistics().
enables or disables all clocks of
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(). |