|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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/vbc.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 4950 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_Set::scip, SCIP_CALL, SCIP_OKAY, SCIPconflicthdlrGetName(), and SCIPdebugMessage.
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_Set::scip, 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_Set::misc_resetstat, SCIP_Conflicthdlr::name, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Conflicthdlr::setuptime, and TRUE.
calls exit method of conflict handler
Definition at line 496 of file conflict.c. References FALSE, SCIP_Conflicthdlr::initialized, SCIP_Conflicthdlr::name, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Conflicthdlr::setuptime.
informs conflict handler that the branch and bound process is being started
Definition at line 527 of file conflict.c. References NULL, SCIP_Set::scip, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime.
informs conflict handler that the branch and bound process data is being freed
Definition at line 551 of file conflict.c. References NULL, SCIP_Set::scip, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Conflicthdlr::setuptime.
calls execution method of conflict handler
Definition at line 575 of file conflict.c. References SCIP_Set::conf_dynamic, SCIP_Set::conf_removable, SCIP_Set::conf_seperate, SCIP_Conflicthdlr::conflicttime, SCIP_Conflicthdlr::name, NULL, SCIP_Set::scip, SCIP_CALL, SCIP_CONSADDED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIPnodeGetDepth(). Referenced by conflictAddConflictCons().
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(), and SCIPincludeDialogDefaultSet().
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 SCIP_Set::conflicthdlrssorted, 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.
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 832 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 852 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 876 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 900 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 916 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 932 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 952 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 986 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 1002 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 1029 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 1072 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 1115 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 1185 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 1351 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 1395 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 1442 of file conflict.c. References SCIP_ConflictSet::bdchginfos, FALSE, SCIP_ConflictSet::nbdchginfos, NULL, SCIPbdchginfoIsTighter(), 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 1504 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 1529 of file conflict.c. References SCIP_Set::conf_allowlocal, SCIP_Set::conf_repropagate, 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 1624 of file conflict.c. References SCIP_Set::conf_maxvarsfac, SCIP_Set::conf_minmaxvars, 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 1642 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 1673 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_Set::conf_conflictweight, 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 1727 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 1792 of file conflict.c. References SCIP_ConflictSet::bdchginfos, checkRedundancy(), SCIP_Set::conf_fullshortenconflict, SCIP_Set::conf_maxvarsdetectimpliedbounds, FALSE, SCIP_ConflictSet::nbdchginfos, NULL, SCIP_ConflictSet::relaxedbds, SCIP_Set::scip, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPbdchginfoGetBoundtype(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetVar(), SCIPboundtypeOpposite(), SCIPdebugMessage, SCIPdebugPrintf, SCIPprobGetName(), SCIPprobGetNVars(), SCIPprobIsTransformed(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsGE(), SCIPsetIsIntegral(), SCIPsetIsLE(), SCIPsetIsZero(), SCIPshrinkDisjunctiveVarSet(), SCIPsortLongPtrRealRealBool(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetNBinImpls(), 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 2064 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_BdChgInfo::boundtype, SCIP_ConflictSet::conflictdepth, SCIP_Set::conflicthdlrs, detectImpliedBounds(), SCIP_Conflict::dIBclock, SCIP_Lp::diving, FALSE, SCIP_ConflictSet::nbdchginfos, SCIP_Set::nconflicthdlrs, 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 2200 of file conflict.c. References SCIP_Set::conf_keepreprop, SCIP_Set::conf_maxconss, SCIP_Set::conf_repropagate, conflictAddConflictCons(), conflictCalcMaxsize(), SCIP_ConflictSet::conflictdepth, conflictFreeTmpBdchginfos(), conflictsetFree(), SCIP_Conflict::conflictsets, SCIP_Node::depth, SCIP_ConflictSet::insertdepth, SCIP_ConflictSet::nbdchginfos, SCIP_Conflict::nconflictsets, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_ConflictSet::repropagate, SCIP_ConflictSet::repropdepth, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebug, SCIPdebugMessage, SCIPnodeCutoff(), SCIPnodePropagateAgain(), SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPvbcFoundConflict(), SCIP_ConflictSet::validdepth, and SCIP_Stat::vbc. Referenced by conflictAnalyzeLP(), SCIPconflictAnalyzePseudo(), SCIPpropagateDomains(), and solveNode().
returns the current number of conflict sets in the conflict set storage
Definition at line 2376 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 2386 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 2396 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 2406 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 2416 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 2426 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 2436 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 2446 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 2456 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 2474 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 2490 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 2511 of file conflict.c. References SCIP_Set::conf_enable, SCIP_Set::conf_useprop, FALSE, SCIP_Set::nconflicthdlrs, and TRUE. Referenced by SCIPconflictAnalyze(), and SCIPisConflictAnalysisApplicable().
creates conflict analysis data for propagation conflicts
Definition at line 2527 of file conflict.c. References BMSallocMemory, conflictsetCreate(), SCIP_Set::mem_arraygrowfac, SCIP_Set::mem_arraygrowinit, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPconflictEnableOrDisableClocks(), SCIPpqueueCreate(), and SCIP_Set::time_statistictiming. Referenced by SCIPtransformProb().
frees conflict analysis data for propagation conflicts
Definition at line 2604 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 2637 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 2649 of file conflict.c. References SCIP_Set::conf_scorefac, conflictClear(), SCIP_Conflict::count, SCIP_Stat::glbhistory, SCIP_Stat::glbhistorycrun, SCIP_Stat::lastconflictnode, SCIP_Stat::nnodes, NULL, SCIP_Prob::nvars, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPhistoryScaleVSIDS(), SCIPvarScaleVSIDS(), SCIP_Prob::vars, and SCIP_Stat::vsidsweight. Referenced by conflictAnalyzeRemainingBdchgs(), conflictCreateReconvergenceConss(), and SCIPinitConflictAnalysis().
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 2708 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 2796 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 2839 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 2859 of file conflict.c. References SCIP_Conflict::bdchgqueue, SCIP_Set::conf_preferbinary, 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 2905 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 2940 of file conflict.c. References SCIP_Set::conf_conflictgraphweight, 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 2996 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 3057 of file conflict.c. References SCIP_BdChgInfo::bdchgidx, SCIP_Set::conf_ignorerelaxedbd, conflictAddBound(), convertToActiveVar(), FALSE, MAX, MIN, NULL, SCIP_BdChgInfo::pos, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPbdchgidxGetPos(), SCIPbdchgidxIsEarlier(), SCIPbdchginfoGetDepth(), SCIPbdchginfoGetIdx(), SCIPbdchginfoGetNewbound(), SCIPbdchginfoGetOldbound(), SCIPbdchginfoGetPos(), SCIPbdchginfoIsRedundant(), SCIPconflictAddBound(), SCIPdebugMessage, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetBdchgInfo(), SCIPvarGetBdchgInfoLb(), SCIPvarGetBdchgInfoUb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), and SCIPvarIsActive(). Referenced by SCIPaddConflictRelaxedBd(), SCIPaddConflictRelaxedLb(), and SCIPaddConflictRelaxedUb().
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 3221 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 3281 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 3298 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 3314 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 3358 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 3412 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, SCIP_Set::conf_allowlocal, SCIP_Set::conf_settlelocal, 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 3511 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_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(), 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 3719 of file conflict.c. References bdchginfoIsResolvable(), SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, SCIP_Set::conf_allowlocal, 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 3947 of file conflict.c. References SCIP_ConflictSet::bdchginfos, SCIP_Conflict::bdchgqueue, SCIP_DomChgBound::boundchgs, SCIP_Set::conf_allowlocal, SCIP_Set::conf_fuiplevels, SCIP_Set::conf_interconss, SCIP_Set::conf_reconvlevels, 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 4227 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 4286 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 4296 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 4306 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 4316 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 4326 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 4336 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 4346 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 4356 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 4374 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 4413 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 4482 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(), 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 4554 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 4591 of file conflict.c. References SCIP_BdChgInfo::bdchgidx, bdchginfoIsResolvable(), SCIP_Set::conf_depthscorefac, 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 4727 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 4759 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 4954 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 5162 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 5408 of file conflict.c. References SCIP_Set::conf_conflictgraphweight, 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 5536 of file conflict.c. References addSideRemoval(), SCIP_LPBdChgs::bdchginds, SCIP_LPBdChgs::bdchglbs, SCIP_LPBdChgs::bdchgubs, SCIP_Set::conf_lpiterations, SCIP_Set::conf_maxlploops, 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 SCIP_Set::conf_enable, SCIP_Set::conf_useinflp, conflictAnalyzeLP(), FALSE, SCIP_Conflict::inflpanalyzetime, SCIP_Set::nconflicthdlrs, 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 6069 of file conflict.c. References SCIP_Conflict::boundlpanalyzetime, SCIP_Set::conf_enable, SCIP_Set::conf_useboundlp, conflictAnalyzeLP(), FALSE, SCIP_Conflict::nboundlpcalls, SCIP_Conflict::nboundlpconfconss, SCIP_Conflict::nboundlpconfliterals, SCIP_Conflict::nboundlpiterations, SCIP_Conflict::nboundlpreconvconss, SCIP_Conflict::nboundlpreconvliterals, SCIP_Conflict::nboundlpsuccess, SCIP_Set::nconflicthdlrs, 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 6137 of file conflict.c. References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_ColSolVals::basisstatus, SCIP_RowSolVals::basisstatus, SCIP_Col::basisstatus, SCIP_Row::basisstatus, SCIP_Lp::cols, conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIP_Row::dualfarkas, SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Set::lp_disablecutoff, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_ColSolVals::primsol, SCIP_Col::primsol, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_Lp::rows, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetLPI(), SCIPlpGetSolstat(), SCIPlpiIsPrimalInfeasible(), SCIPlpiWasSolved(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by priceAndCutLoop(), SCIPsolveDiveLP(), and solveProbingLP().
gets time in seconds used for analyzing infeasible LP conflicts
Definition at line 6271 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 6281 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 6291 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 6301 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 6311 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 6321 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 6331 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 6341 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 6351 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 6361 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 6371 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 6381 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 6391 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 6401 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 6411 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 6421 of file conflict.c. References SCIP_Conflict::nboundlpiterations, and NULL. Referenced by printConflictStatistics().
analyses infeasible strong branching sub problems for conflicts
Definition at line 6438 of file conflict.c. References SCIP_Set::conf_enable, SCIP_Set::conf_usesb, conflictAnalyzeLP(), SCIP_Stat::conflictlptime, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Set::nconflicthdlrs, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Conflict::nsbcalls, SCIP_Conflict::nsbconfconss, SCIP_Conflict::nsbconfliterals, SCIP_Conflict::nsbiterations, SCIP_Conflict::nsbreconvconss, SCIP_Conflict::nsbreconvliterals, SCIP_Conflict::nsbsuccess, NULL, SCIP_Col::primsol, SCIP_Conflict::sbanalyzetime, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPcolGetVar(), SCIPdebugMessage, SCIPlpiChgBounds(), SCIPlpiEndStrongbranch(), SCIPlpiGetBase(), SCIPlpiGetIterations(), SCIPlpiSetBase(), SCIPlpiSolveDual(), SCIPlpiStartStrongbranch(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetFreeBufferArray, SCIPsetIsGE(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIP_Lp::solved, TRUE, and SCIP_Col::ub. Referenced by analyzeStrongbranch().
gets time in seconds used for analyzing infeasible strong branching conflicts
Definition at line 6667 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 6677 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 6687 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 6697 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 6707 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 6717 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 6727 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 6737 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 6759 of file conflict.c. References SCIP_Set::conf_enable, SCIP_Set::conf_usepseudo, conflictAnalyzeRemainingBdchgs(), SCIP_Lp::cutoffbound, FALSE, SCIP_Set::nconflicthdlrs, SCIP_Conflict::nconflictsets, SCIP_Var::nlbchginfos, SCIP_Conflict::npseudocalls, SCIP_Conflict::npseudoconfconss, SCIP_Conflict::npseudoconfliterals, SCIP_Conflict::npseudoreconvconss, SCIP_Conflict::npseudoreconvliterals, SCIP_Conflict::npseudosuccess, SCIP_Var::nubchginfos, NULL, SCIP_Prob::nvars, SCIP_Conflict::pseudoanalyzetime, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPconflictFlushConss(), SCIPdebugMessage, SCIPlpGetPseudoObjval(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPsetIsFeasGT(), SCIPsetIsInfinity(), SCIPsetSumepsilon(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), undoBdchgsProof(), and SCIP_Prob::vars. Referenced by applyBounding().
gets time in seconds used for analyzing pseudo solution conflicts
Definition at line 6899 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 6909 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 6919 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 6929 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 6939 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 6949 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 6959 of file conflict.c. References SCIP_Conflict::npseudoreconvliterals, and NULL. Referenced by printConflictStatistics().
enables or disables all clocks of
Definition at line 6969 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(). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||