methods and datastructures for conflict analysis
SCIP contains two kinds of conflict analysis:
Definition in file conflict_general.c.
#include "lpi/lpi.h"
#include "scip/clock.h"
#include "scip/conflict.h"
#include "scip/conflictstore.h"
#include "scip/cons.h"
#include "scip/cons_linear.h"
#include "scip/cuts.h"
#include "scip/history.h"
#include "scip/lp.h"
#include "scip/presolve.h"
#include "scip/prob.h"
#include "scip/prop.h"
#include "scip/pub_conflict.h"
#include "scip/pub_cons.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_paramset.h"
#include "scip/pub_prop.h"
#include "scip/pub_tree.h"
#include "scip/pub_var.h"
#include "scip/scip_conflict.h"
#include "scip/scip_cons.h"
#include "scip/scip_mem.h"
#include "scip/scip_sol.h"
#include "scip/scip_var.h"
#include "scip/set.h"
#include "scip/sol.h"
#include "scip/struct_conflict.h"
#include "scip/struct_lp.h"
#include "scip/struct_prob.h"
#include "scip/struct_set.h"
#include "scip/struct_stat.h"
#include "scip/struct_tree.h"
#include "scip/struct_var.h"
#include "scip/tree.h"
#include "scip/var.h"
#include "scip/visual.h"
#include <string.h>
#include <strings.h>
Go to the source code of this file.
Macros | |
#define | NUMSTOP 9007199254740992.0 |
#define | SOLSTOP 10000000.0 |
#define NUMSTOP 9007199254740992.0 |
Definition at line 96 of file conflict_general.c.
Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().
#define SOLSTOP 10000000.0 |
Definition at line 100 of file conflict_general.c.
Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().
int SCIPconflictGetNConflicts | ( | SCIP_CONFLICT * | conflict | ) |
returns the current number of conflict sets in the conflict set storage
conflict | conflict analysis data |
Definition at line 103 of file conflict_general.c.
References assert(), SCIP_Conflict::nconflictsets, and NULL.
Referenced by propAndSolve(), SCIPgetNConflictConssFoundNode(), SCIPgetVarStrongbranchWithPropagation(), and solveNode().
SCIP_Longint SCIPconflictGetNAppliedConss | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of conflict constraints that were added to the problem
conflict | conflict analysis data |
Definition at line 113 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedglbconss, SCIP_Conflict::nappliedlocconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssApplied().
SCIP_Longint SCIPconflictGetNAppliedLiterals | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of literals in conflict constraints that were added to the problem
conflict | conflict analysis data |
Definition at line 123 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedglbliterals, SCIP_Conflict::nappliedlocliterals, NULL, and SCIP_Longint.
SCIP_Longint SCIPconflictGetNGlobalChgBds | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of global bound changes applied by the conflict analysis
conflict | conflict analysis data |
Definition at line 133 of file conflict_general.c.
References assert(), SCIP_Conflict::nglbchgbds, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNAppliedGlobalConss | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of conflict constraints that were added globally to the problem
conflict | conflict analysis data |
Definition at line 143 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedglbconss, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of literals in conflict constraints that were added globally to the problem
conflict | conflict analysis data |
Definition at line 153 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedglbliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNLocalChgBds | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of local bound changes applied by the conflict analysis
conflict | conflict analysis data |
Definition at line 163 of file conflict_general.c.
References assert(), SCIP_Conflict::nlocchgbds, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNAppliedLocalConss | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of conflict constraints that were added locally to the problem
conflict | conflict analysis data |
Definition at line 173 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedlocconss, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNAppliedLocalLiterals | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of literals in conflict constraints that were added locally to the problem
conflict | conflict analysis data |
Definition at line 183 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedlocliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
|
static |
compares two conflict set entries, such that bound changes inferred later are ordered prior to ones that were inferred earlier
Definition at line 196 of file conflict_general.c.
References assert(), NULL, SCIPbdchgidxIsEarlierNonNull(), SCIPbdchginfoGetIdx(), and SCIPbdchginfoIsRedundant().
void SCIPconflictEnableOrDisableClocks | ( | SCIP_CONFLICT * | conflict, |
SCIP_Bool | enable ) |
enables or disables all clocks of conflict
, depending on the value of the flag
conflict | the conflict analysis data for which all clocks should be enabled or disabled |
enable | should the clocks of the conflict analysis data be enabled? |
Definition at line 218 of file conflict_general.c.
References assert(), SCIP_Conflict::boundlpanalyzetime, SCIP_Conflict::dIBclock, SCIP_Conflict::inflpanalyzetime, NULL, SCIP_Conflict::propanalyzetime, SCIP_Conflict::pseudoanalyzetime, SCIP_Conflict::sbanalyzetime, SCIP_Bool, and SCIPclockEnableOrDisable().
Referenced by SCIPconflictCreate(), and SCIPenableOrDisableStatisticTiming().
SCIP_RETCODE SCIPconflictCreate | ( | SCIP_CONFLICT ** | conflict, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set ) |
creates conflict analysis data for propagation conflicts
conflict | pointer to conflict analysis data |
blkmem | block memory of transformed problem |
set | global SCIP settings |
Definition at line 234 of file conflict_general.c.
References assert(), BMSallocMemory, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPconflictEnableOrDisableClocks(), SCIPconflictInitProofset(), SCIPconflictsetCreate(), and SCIPpqueueCreate().
Referenced by SCIPtransformProb().
SCIP_RETCODE SCIPconflictFree | ( | SCIP_CONFLICT ** | conflict, |
BMS_BLKMEM * | blkmem ) |
frees conflict analysis data for propagation conflicts
conflict | pointer to conflict analysis data |
blkmem | block memory of transformed problem |
Definition at line 324 of file conflict_general.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_OKAY, SCIPclockFree(), SCIPconflictsetFree(), SCIPpqueueFree(), and SCIPproofsetFree().
Referenced by freeTransform(), and freeTransforming().
SCIP_Real SCIPconflictGetVarLb | ( | SCIP_CONFLICT * | conflict, |
SCIP_VAR * | var ) |
returns the conflict lower bound if the variable is present in the current conflict set; otherwise the global lower bound
conflict | conflict analysis data |
var | problem variable |
Definition at line 361 of file conflict_general.c.
References assert(), SCIP_Conflict::count, EPSGE, SCIP_Real, SCIPvarGetLbGlobal(), and var.
Referenced by SCIPgetConflictVarLb().
SCIP_Real SCIPconflictGetVarUb | ( | SCIP_CONFLICT * | conflict, |
SCIP_VAR * | var ) |
returns the conflict upper bound if the variable is present in the current conflict set; otherwise the global upper bound
conflict | conflict analysis data |
var | problem variable |
Definition at line 378 of file conflict_general.c.
References assert(), SCIP_Conflict::count, EPSLE, SCIP_Real, SCIPvarGetUbGlobal(), and var.
Referenced by SCIPgetConflictVarUb().
SCIP_Real SCIPconflictGetGlobalApplTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for preprocessing global conflict constraint before appliance
conflict | conflict analysis data |
Definition at line 393 of file conflict_general.c.
References assert(), SCIP_Conflict::dIBclock, NULL, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPprintConflictStatistics().
SCIP_Real SCIPconflictGetPropTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for analyzing propagation conflicts
conflict | conflict analysis data |
Definition at line 403 of file conflict_general.c.
References assert(), NULL, SCIP_Conflict::propanalyzetime, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPropCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to propagation conflict analysis
conflict | conflict analysis data |
Definition at line 413 of file conflict_general.c.
References assert(), SCIP_Conflict::npropcalls, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPropSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to propagation conflict analysis that yield at least one conflict constraint
conflict | conflict analysis data |
Definition at line 423 of file conflict_general.c.
References assert(), SCIP_Conflict::npropsuccess, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().
SCIP_Longint SCIPconflictGetNPropConflictConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of conflict constraints detected in propagation conflict analysis
conflict | conflict analysis data |
Definition at line 433 of file conflict_general.c.
References assert(), SCIP_Conflict::npropconfconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPropConflictLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in conflict constraints created in propagation conflict analysis
conflict | conflict analysis data |
Definition at line 443 of file conflict_general.c.
References assert(), SCIP_Conflict::npropconfliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPropReconvergenceConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of reconvergence constraints detected in propagation conflict analysis
conflict | conflict analysis data |
Definition at line 453 of file conflict_general.c.
References assert(), SCIP_Conflict::npropreconvconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in reconvergence constraints created in propagation conflict analysis
conflict | conflict analysis data |
Definition at line 463 of file conflict_general.c.
References assert(), SCIP_Conflict::npropreconvliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Real SCIPconflictGetInfeasibleLPTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for analyzing infeasible LP conflicts
conflict | conflict analysis data |
Definition at line 473 of file conflict_general.c.
References assert(), SCIP_Conflict::inflpanalyzetime, NULL, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNInfeasibleLPCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to infeasible LP conflict analysis
conflict | conflict analysis data |
Definition at line 483 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpcalls, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to infeasible LP conflict analysis that yield at least one conflict constraint
conflict | conflict analysis data |
Definition at line 493 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpsuccess, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of conflict constraints detected in infeasible LP conflict analysis
conflict | conflict analysis data |
Definition at line 503 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpconfconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in conflict constraints created in infeasible LP conflict analysis
conflict | conflict analysis data |
Definition at line 513 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpconfliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of reconvergence constraints detected in infeasible LP conflict analysis
conflict | conflict analysis data |
Definition at line 523 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpreconvconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in reconvergence constraints created in infeasible LP conflict analysis
conflict | conflict analysis data |
Definition at line 533 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpreconvliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNInfeasibleLPIterations | ( | SCIP_CONFLICT * | conflict | ) |
gets number of LP iterations in infeasible LP conflict analysis
conflict | conflict analysis data |
Definition at line 543 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpiterations, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Real SCIPconflictGetBoundexceedingLPTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for analyzing bound exceeding LP conflicts
conflict | conflict analysis data |
Definition at line 553 of file conflict_general.c.
References assert(), SCIP_Conflict::boundlpanalyzetime, NULL, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to bound exceeding LP conflict analysis
conflict | conflict analysis data |
Definition at line 563 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpcalls, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to bound exceeding LP conflict analysis that yield at least one conflict constraint
conflict | conflict analysis data |
Definition at line 573 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpsuccess, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of conflict constraints detected in bound exceeding LP conflict analysis
conflict | conflict analysis data |
Definition at line 583 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpconfconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in conflict constraints created in bound exceeding LP conflict analysis
conflict | conflict analysis data |
Definition at line 593 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpconfliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of reconvergence constraints detected in bound exceeding LP conflict analysis
conflict | conflict analysis data |
Definition at line 603 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpreconvconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in reconvergence constraints created in bound exceeding LP conflict analysis
conflict | conflict analysis data |
Definition at line 613 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpreconvliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations | ( | SCIP_CONFLICT * | conflict | ) |
gets number of LP iterations in bound exceeding LP conflict analysis
conflict | conflict analysis data |
Definition at line 623 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpiterations, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Real SCIPconflictGetStrongbranchTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for analyzing infeasible strong branching conflicts
conflict | conflict analysis data |
Definition at line 633 of file conflict_general.c.
References assert(), NULL, SCIP_Conflict::sbanalyzetime, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsInfSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of successful calls to dual proof analysis derived from infeasible LPs
conflict | conflict analysis data |
Definition at line 643 of file conflict_general.c.
References assert(), SCIP_Conflict::ndualproofsinfsuccess, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictDualproofsApplied(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsInfGlobal | ( | SCIP_CONFLICT * | conflict | ) |
gets number of globally valid dual proof constraints derived from infeasible LPs
conflict | conflict analysis data |
Definition at line 653 of file conflict_general.c.
References assert(), SCIP_Conflict::ndualproofsinfglobal, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsInfLocal | ( | SCIP_CONFLICT * | conflict | ) |
gets number of locally valid dual proof constraints derived from infeasible LPs
conflict | conflict analysis data |
Definition at line 663 of file conflict_general.c.
References assert(), SCIP_Conflict::ndualproofsinflocal, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros | ( | SCIP_CONFLICT * | conflict | ) |
gets average length of dual proof constraints derived from infeasible LPs
conflict | conflict analysis data |
Definition at line 673 of file conflict_general.c.
References assert(), SCIP_Conflict::dualproofsinfnnonzeros, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsBndSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of successfully analyzed dual proofs derived from bound exceeding LPs
conflict | conflict analysis data |
Definition at line 683 of file conflict_general.c.
References assert(), SCIP_Conflict::ndualproofsbndsuccess, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictDualproofsApplied(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsBndGlobal | ( | SCIP_CONFLICT * | conflict | ) |
gets number of globally applied dual proofs derived from bound exceeding LPs
conflict | conflict analysis data |
Definition at line 693 of file conflict_general.c.
References assert(), SCIP_Conflict::ndualproofsbndglobal, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsBndLocal | ( | SCIP_CONFLICT * | conflict | ) |
gets number of locally applied dual proofs derived from bound exceeding LPs
conflict | conflict analysis data |
Definition at line 703 of file conflict_general.c.
References assert(), SCIP_Conflict::ndualproofsbndlocal, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros | ( | SCIP_CONFLICT * | conflict | ) |
gets average length of dual proofs derived from bound exceeding LPs
conflict | conflict analysis data |
Definition at line 713 of file conflict_general.c.
References assert(), SCIP_Conflict::dualproofsbndnnonzeros, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNStrongbranchCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to infeasible strong branching conflict analysis
conflict | conflict analysis data |
Definition at line 723 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbcalls, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNStrongbranchSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to infeasible strong branching conflict analysis that yield at least one conflict constraint
conflict | conflict analysis data |
Definition at line 733 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbsuccess, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().
SCIP_Longint SCIPconflictGetNStrongbranchConflictConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of conflict constraints detected in infeasible strong branching conflict analysis
conflict | conflict analysis data |
Definition at line 743 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbconfconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in conflict constraints created in infeasible strong branching conflict analysis
conflict | conflict analysis data |
Definition at line 753 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbconfliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of reconvergence constraints detected in infeasible strong branching conflict analysis
conflict | conflict analysis data |
Definition at line 763 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbreconvconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in reconvergence constraints created in infeasible strong branching conflict analysis
conflict | conflict analysis data |
Definition at line 773 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbreconvliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNStrongbranchIterations | ( | SCIP_CONFLICT * | conflict | ) |
gets number of LP iterations in infeasible strong branching conflict analysis
conflict | conflict analysis data |
Definition at line 783 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbiterations, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
|
static |
adds a weighted LP row to an aggregation row
set | global SCIP settings |
row | LP row |
weight | weight for scaling |
aggrrow | aggregation row |
Definition at line 794 of file conflict_general.c.
References assert(), SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::local, SCIP_Row::lpdepth, NULL, SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaggrRowAddRow(), SCIPaggrRowGetRhs(), SCIProwGetName(), SCIPsetDebugMsg, and SCIPsetIsInfinity().
Referenced by addLocalRows(), SCIPgetDualProof(), and SCIPgetFarkasProof().
|
static |
checks validity of an LP row and a corresponding weight
set | global SCIP settings |
row | LP row |
weight | weight for scaling |
zerocontribution | pointer to store whether every row entry is zero within tolerances |
Definition at line 826 of file conflict_general.c.
References FALSE, i, SCIP_Row::len, SCIP_Row::lhs, QUAD_EPSILON, REALABS, SCIP_Row::rhs, SCIP_Bool, SCIP_Real, SCIProwGetName(), SCIPsetDebugMsg, SCIPsetIsDualfeasZero(), SCIPsetIsInfinity(), TRUE, valid, and SCIP_Row::vals.
Referenced by addLocalRows(), SCIPgetDualProof(), and SCIPgetFarkasProof().
SCIP_Real SCIPaggrRowGetMinActivity | ( | SCIP_SET * | set, |
SCIP_PROB * | transprob, | ||
SCIP_AGGRROW * | aggrrow, | ||
SCIP_Real * | curvarlbs, | ||
SCIP_Real * | curvarubs, | ||
SCIP_Bool * | infdelta ) |
calculates the minimal activity of a given aggregation row
set | global SCIP settings |
transprob | transformed problem data |
aggrrow | aggregation row |
curvarlbs | current lower bounds of active problem variables (or NULL for global bounds) |
curvarubs | current upper bounds of active problem variables (or NULL for global bounds) |
infdelta | pointer to store whether at least one variable contributes with an infinite value |
Definition at line 873 of file conflict_general.c.
References assert(), FALSE, i, NULL, QUAD, QUAD_ASSIGN, QUAD_TO_DBL, SCIP_Bool, SCIP_Real, SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPaggrRowGetProbvarValue(), SCIPprobGetVars(), SCIPquadprecProdDD, SCIPquadprecSumQQ, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), TRUE, and vars.
Referenced by addLocalRows(), SCIPconflictAnalyzeDualProof(), SCIPgetDualProof(), SCIPgetFarkasProof(), separateAlternativeProofs(), and tightenDualproof().
|
static |
sort local rows by increasing depth and number of nonzeros as tie-breaker
set | global SCIP settings |
aggrrow | aggregation row |
rows | array of local rows |
rowinds | array of row indices |
rowdepth | array of LP depths |
nrows | number of local rows |
Definition at line 953 of file conflict_general.c.
References assert(), i, SCIP_Row::len, NULL, SCIP_CALL, SCIP_OKAY, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsortIntInt(), and SCIPsortIntIntInt().
Referenced by addLocalRows().
|
static |
adds locally valid rows to the proof constraint
set | global SCIP settings |
transprob | transformed problem |
lp | LP data |
proofrow | aggregated row representing the proof |
rows | array if locally valid rows |
dualsols | dual solution vector |
localrowinds | array of row indecies |
localrowdepth | array of row depths |
nlocalrows | number of local rows stored in rows array |
proofact | pointer to store the activity of the proof constraint |
validdepth | pointer to store the depth where the proof constraint is valid |
curvarlbs | current lower bounds of active problem variables |
curvarubs | current upper bounds of active problem variables |
valid | pointer store whether the proof constraint is valid |
Definition at line 1021 of file conflict_general.c.
References addRowToAggrRow(), assert(), checkDualFeasibility(), SCIP_Row::cols, FALSE, i, SCIP_Row::len, SCIP_Row::local, SCIP_Row::lpdepth, SCIP_Lp::lpirows, NULL, r, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPsetDebugMsg, SCIPsetIsDualfeasZero(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), sortLocalRows(), TRUE, valid, and SCIP_Row::vals.
Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().
SCIP_RETCODE SCIPgetFarkasProof | ( | SCIP_SET * | set, |
SCIP_PROB * | prob, | ||
SCIP_LP * | lp, | ||
SCIP_LPI * | lpi, | ||
SCIP_TREE * | tree, | ||
SCIP_AGGRROW * | farkasrow, | ||
SCIP_Real * | farkasact, | ||
int * | validdepth, | ||
SCIP_Real * | curvarlbs, | ||
SCIP_Real * | curvarubs, | ||
SCIP_Bool * | valid ) |
calculates a Farkas proof from the current dual LP solution
set | global SCIP settings |
prob | transformed problem |
lp | LP data |
lpi | LPI data |
tree | tree data |
farkasrow | aggregated row representing the proof |
farkasact | maximal activity of the proof constraint |
validdepth | pointer to store the valid depth of the proof constraint |
curvarlbs | current lower bounds of active problem variables |
curvarubs | current upper bounds of active problem variables |
valid | pointer store whether the proof constraint is valid |
Definition at line 1161 of file conflict_general.c.
References addLocalRows(), addRowToAggrRow(), assert(), BMSclearMemoryArray, checkDualFeasibility(), SCIP_Row::cols, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, NULL, NUMSTOP, r, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPfreeBufferArrayNull, SCIPlpDivingObjChanged(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetDualfarkas(), SCIPlpiHasDualRay(), SCIPlpiIsDualFeasible(), SCIPlpiIsObjlimExc(), SCIPlpiIsPrimalInfeasible(), SCIProwGetLPDepth(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasLE(), SCIPtreeGetFocusDepth(), SOLSTOP, SCIP_Lp::solved, TRUE, valid, and SCIP_Row::vals.
Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().
SCIP_RETCODE SCIPgetDualProof | ( | SCIP_SET * | set, |
SCIP_PROB * | transprob, | ||
SCIP_LP * | lp, | ||
SCIP_LPI * | lpi, | ||
SCIP_TREE * | tree, | ||
SCIP_AGGRROW * | farkasrow, | ||
SCIP_Real * | farkasact, | ||
int * | validdepth, | ||
SCIP_Real * | curvarlbs, | ||
SCIP_Real * | curvarubs, | ||
SCIP_Bool * | valid ) |
calculates a dual proof from the current dual LP solution
set | global SCIP settings |
transprob | transformed problem |
lp | LP data |
lpi | LPI data |
tree | tree data |
farkasrow | aggregated row representing the proof |
farkasact | maximal activity of the proof constraint |
validdepth | pointer to store the valid depth of the proof constraint |
curvarlbs | current lower bounds of active problem variables |
curvarubs | current upper bounds of active problem variables |
valid | pointer store whether the proof constraint is valid |
Definition at line 1341 of file conflict_general.c.
References addLocalRows(), addRowToAggrRow(), assert(), checkDualFeasibility(), SCIP_Row::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, NULL, NUMSTOP, objval, r, REALABS, SCIP_Bool, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowClear(), SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPfreeBufferArrayNull, SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetObjval(), SCIPlpiGetSol(), SCIPprobIsObjIntegral(), SCIProwGetLPDepth(), SCIPsetAllocBufferArray, SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasLE(), SCIPtreeGetFocusDepth(), SOLSTOP, SCIP_Lp::solved, TRUE, valid, and SCIP_Row::vals.
Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().
SCIP_RETCODE SCIPconflictAnalyzePseudo | ( | SCIP_CONFLICT * | conflict, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | transprob, | ||
SCIP_PROB * | origprob, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_CLIQUETABLE * | cliquetable, | ||
SCIP_Bool * | success ) |
analyzes a pseudo solution with objective value exceeding the current cutoff to find out the bound changes on variables that were responsible for the objective value degradation; on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating a conflict constraint out of the resulting conflict set; updates statistics for pseudo solution conflict analysis
conflict | conflict analysis data |
blkmem | block memory of transformed problem |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cliquetable | clique table data structure |
success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 1568 of file conflict_general.c.
References assert(), SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::lpi, SCIP_Conflict::nconflictsets, SCIP_Conflict::npseudocalls, SCIP_Conflict::npseudoconfconss, SCIP_Conflict::npseudoconfliterals, SCIP_Conflict::npseudoreconvconss, SCIP_Conflict::npseudoreconvliterals, SCIP_Conflict::npseudosuccess, NULL, nvars, SCIP_Prob::nvars, SCIP_Conflict::pseudoanalyzetime, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_BNDEXCEEDING, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPconflictAnalyzeRemainingBdchgs(), SCIPconflictFlushConss(), SCIPlpGetPseudoObjval(), SCIPprobIsObjIntegral(), SCIPsetAllocBufferArray, SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPsetIsFeasGT(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPtreeGetCurrentDepth(), SCIPundoBdchgsProof(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), TRUE, SCIP_ConflictSet::usescutoffbound, var, SCIP_Prob::vars, and vars.
Referenced by applyBounding().
SCIP_Real SCIPconflictGetPseudoTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for analyzing pseudo solution conflicts
conflict | conflict analysis data |
Definition at line 1720 of file conflict_general.c.
References assert(), NULL, SCIP_Conflict::pseudoanalyzetime, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPseudoCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to pseudo solution conflict analysis
conflict | conflict analysis data |
Definition at line 1730 of file conflict_general.c.
References assert(), SCIP_Conflict::npseudocalls, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPseudoSuccess | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to pseudo solution conflict analysis that yield at least one conflict constraint
conflict | conflict analysis data |
Definition at line 1740 of file conflict_general.c.
References assert(), SCIP_Conflict::npseudosuccess, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().
SCIP_Longint SCIPconflictGetNPseudoConflictConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of conflict constraints detected in pseudo solution conflict analysis
conflict | conflict analysis data |
Definition at line 1750 of file conflict_general.c.
References assert(), SCIP_Conflict::npseudoconfconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPseudoConflictLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in conflict constraints created in pseudo solution conflict analysis
conflict | conflict analysis data |
Definition at line 1760 of file conflict_general.c.
References assert(), SCIP_Conflict::npseudoconfliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss | ( | SCIP_CONFLICT * | conflict | ) |
gets number of reconvergence constraints detected in pseudo solution conflict analysis
conflict | conflict analysis data |
Definition at line 1770 of file conflict_general.c.
References assert(), SCIP_Conflict::npseudoreconvconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().
SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals | ( | SCIP_CONFLICT * | conflict | ) |
gets total number of literals in reconvergence constraints created in pseudo solution conflict analysis
conflict | conflict analysis data |
Definition at line 1780 of file conflict_general.c.
References assert(), SCIP_Conflict::npseudoreconvliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
|
static |
actually performs analysis of infeasible LP
conflict | conflict analysis data |
conflictstore | conflict store |
blkmem | block memory of transformed problem |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cliquetable | clique table data structure |
diving | are we in strong branching or diving mode? |
dualproofsuccess | pointer to store success result of dual proof analysis |
iterations | pointer to store the total number of LP iterations used |
nconss | pointer to store the number of generated conflict constraints |
nliterals | pointer to store the number of literals in generated conflict constraints |
nreconvconss | pointer to store the number of generated reconvergence constraints |
nreconvliterals | pointer to store the number of literals generated reconvergence constraints |
marklpunsolved | whether LP should be marked unsolved after analysis (needed for strong branching) |
Definition at line 1791 of file conflict_general.c.
References assert(), BMSclearMemoryArray, SCIP_Stat::conflictlptime, SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, FALSE, SCIP_Lp::flushed, i, SCIP_Lp::lpiitlim, SCIP_Lp::lpiobjlim, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Conflict::nconflictsets, SCIP_Conflict::nproofsets, NULL, nvars, SCIP_Prob::nvars, objval, SCIP_Conflict::proofset, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_BNDEXCEEDING, SCIP_CONFTYPE_INFEASLP, SCIP_LONGINT_FORMAT, SCIP_LPERROR, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_OBJLIM, SCIP_OKAY, SCIP_Real, SCIPaggrRowCreate(), SCIPaggrRowFree(), SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPaggrRowGetProbvarValue(), SCIPaggrRowGetRhs(), SCIPclockStart(), SCIPclockStop(), SCIPconflictAnalyzeDualProof(), SCIPconflictAnalyzeRemainingBdchgs(), SCIPconflictFlushConss(), SCIPconflictFlushProofset(), SCIPgetDualProof(), SCIPgetFarkasProof(), SCIPlpDivingObjChanged(), SCIPlpGetLPI(), SCIPlpiGetIterations(), SCIPlpiGetObjval(), SCIPlpiGetRealpar(), SCIPlpiInfinity(), SCIPlpiIsDualFeasible(), SCIPlpiIsObjlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsPrimalInfeasible(), SCIPlpiSetIntpar(), SCIPlpiSetRealpar(), SCIPlpiSolveDual(), SCIPprobAllColsInLP(), SCIPprobGetNVars(), SCIPproofsetGetNVars(), SCIPrunBoundHeuristic(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPtreeGetCurrentDepth(), SCIPtreeGetEffectiveRootDepth(), SCIPvarGetLbLocal(), SCIPvarGetLbLP(), SCIPvarGetProbindex(), SCIPvarGetUbLocal(), SCIPvarGetUbLP(), SCIP_Lp::solved, TRUE, valid, var, SCIP_Prob::vars, and vars.
Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), and SCIPconflictAnalyzeStrongbranch().
SCIP_RETCODE SCIPconflictAnalyzeStrongbranch | ( | SCIP_CONFLICT * | conflict, |
SCIP_CONFLICTSTORE * | conflictstore, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | transprob, | ||
SCIP_PROB * | origprob, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_CLIQUETABLE * | cliquetable, | ||
SCIP_COL * | col, | ||
SCIP_Bool * | downconflict, | ||
SCIP_Bool * | upconflict ) |
analyses infeasible strong branching sub problems for conflicts
conflict | conflict analysis data |
conflictstore | conflict store |
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
transprob | transformed problem |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cliquetable | clique table data structure |
col | LP column with at least one infeasible strong branching subproblem |
downconflict | pointer to store whether a conflict constraint was created for an infeasible downwards branch, or NULL |
upconflict | pointer to store whether a conflict constraint was created for an infeasible upwards branch, or NULL |
Definition at line 2108 of file conflict_general.c.
References assert(), conflictAnalyzeLP(), SCIP_Stat::conflictlptime, SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Conflict::nsbcalls, SCIP_Conflict::nsbconfconss, SCIP_Conflict::nsbconfliterals, SCIP_Conflict::nsbiterations, SCIP_Conflict::nsbreconvconss, SCIP_Conflict::nsbreconvliterals, SCIP_Conflict::nsbsuccess, NULL, SCIP_Col::primsol, SCIP_Conflict::sbanalyzetime, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_INFEASLP, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPcolGetVar(), SCIPlpiChgBounds(), SCIPlpiEndStrongbranch(), SCIPlpiGetBase(), SCIPlpiGetIterations(), SCIPlpiIsStable(), SCIPlpiSetBase(), SCIPlpiSolveDual(), SCIPlpiStartStrongbranch(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetFreeBufferArray, SCIPsetIsGE(), SCIPtreeGetCurrentDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIP_Lp::solved, TRUE, and SCIP_Col::ub.
Referenced by analyzeStrongbranch().
|
static |
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
conflict | conflict analysis data |
conflictstore | conflict store |
blkmem | block memory of transformed problem |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cliquetable | clique table data structure |
success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2356 of file conflict_general.c.
References assert(), conflictAnalyzeLP(), SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, FALSE, SCIP_Conflict::inflpanalyzetime, SCIP_Conflict::ndualproofsinfsuccess, SCIP_Conflict::ninflpcalls, SCIP_Conflict::ninflpconfconss, SCIP_Conflict::ninflpconfliterals, SCIP_Conflict::ninflpiterations, SCIP_Conflict::ninflpreconvconss, SCIP_Conflict::ninflpreconvliterals, SCIP_Conflict::ninflpsuccess, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_INFEASLP, SCIP_Longint, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPlpDiving(), SCIPlpDivingObjChanged(), SCIPlpGetSolstat(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPtreeGetCurrentDepth(), and TRUE.
Referenced by SCIPconflictAnalyzeLP().
|
static |
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
conflict | conflict analysis data |
conflictstore | conflict store |
blkmem | block memory of transformed problem |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cliquetable | clique table data structure |
success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2432 of file conflict_general.c.
References assert(), SCIP_Conflict::boundlpanalyzetime, conflictAnalyzeLP(), SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, FALSE, SCIP_Conflict::nboundlpcalls, SCIP_Conflict::nboundlpconfconss, SCIP_Conflict::nboundlpconfliterals, SCIP_Conflict::nboundlpiterations, SCIP_Conflict::nboundlpreconvconss, SCIP_Conflict::nboundlpreconvliterals, SCIP_Conflict::nboundlpsuccess, SCIP_Conflict::ndualproofsbndsuccess, SCIP_Conflict::ndualproofsinfsuccess, NULL, SCIP_Bool, SCIP_CALL, SCIP_CONFTYPE_BNDEXCEEDING, SCIP_Longint, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPlpDiving(), SCIPlpDivingObjChanged(), SCIPlpGetSolstat(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPtreeGetCurrentDepth(), TRUE, and SCIP_ConflictSet::usescutoffbound.
Referenced by SCIPconflictAnalyzeLP().
SCIP_RETCODE SCIPconflictAnalyzeLP | ( | SCIP_CONFLICT * | conflict, |
SCIP_CONFLICTSTORE * | conflictstore, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | transprob, | ||
SCIP_PROB * | origprob, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_CLIQUETABLE * | cliquetable, | ||
SCIP_Bool * | success ) |
analyzes an infeasible or bound exceeding LP to find out the bound changes on variables that were responsible for the infeasibility or for exceeding the primal bound; on success, calls standard conflict analysis with the responsible variables as starting conflict set, thus creating a conflict constraint out of the resulting conflict set; updates statistics for infeasible or bound exceeding LP conflict analysis; may only be called if SCIPprobAllColsInLP()
conflict | conflict analysis data |
conflictstore | conflict store |
blkmem | block memory of transformed problem |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cliquetable | clique table data structure |
success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2511 of file conflict_general.c.
References SCIP_Row::activity, SCIP_RowSolVals::activity, assert(), SCIP_Col::basisstatus, SCIP_ColSolVals::basisstatus, SCIP_Row::basisstatus, SCIP_RowSolVals::basisstatus, c, SCIP_Lp::cols, conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIP_Lp::dualchecked, SCIP_LpSolVals::dualchecked, SCIP_Row::dualfarkas, SCIP_Lp::dualfeasible, SCIP_LpSolVals::dualfeasible, SCIP_Row::dualsol, SCIP_RowSolVals::dualsol, FALSE, SCIP_Lp::flushed, SCIP_LpSolVals::lpissolved, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpsolstat, SCIP_LpSolVals::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Lp::primalchecked, SCIP_LpSolVals::primalchecked, SCIP_Lp::primalfeasible, SCIP_LpSolVals::primalfeasible, SCIP_Col::primsol, SCIP_ColSolVals::primsol, r, SCIP_Col::redcost, SCIP_ColSolVals::redcost, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetLPI(), SCIPlpGetSolstat(), SCIPlpiIsPrimalInfeasible(), SCIPlpiWasSolved(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Lp::solisbasic, SCIP_LpSolVals::solisbasic, and SCIP_Lp::solved.
Referenced by priceAndCutLoop(), SCIPsolveDiveLP(), and solveProbingLP().