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/certificate.h"#include "scip/cons.h"#include "scip/cons_linear.h"#include "scip/cuts.h"#include "scip/history.h"#include "scip/lp.h"#include "scip/lpexact.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_certificate.h"#include "scip/scip_conflict.h"#include "scip/scip_cons.h"#include "scip/scip_exact.h"#include "scip/scip_mem.h"#include "scip/scip_numerics.h"#include "scip/scip_sol.h"#include "scip/scip_var.h"#include "scip/scip_prob.h"#include "scip/scip_lp.h"#include "scip/scip_lpexact.h"#include "scip/scip_solvingstats.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_scip.h"#include "scip/struct_set.h"#include "scip/struct_certificate.h"#include "scip/struct_stat.h"#include "scip/struct_tree.h"#include "scip/struct_lpexact.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 108 of file conflict_general.c.
Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().
| #define SOLSTOP 10000000.0 |
Definition at line 112 of file conflict_general.c.
Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().
return TRUE if conflict analysis is applicable; In case the function returns FALSE there is no need to initialize the conflict analysis since it will not be applied
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
| set | global SCIP settings |
Definition at line 117 of file conflict_general.c.
References assert(), FALSE, NULL, SCIP_Bool, and TRUE.
Referenced by SCIPisConflictAnalysisApplicable().
| int SCIPconflictGetNConflicts | ( | SCIP_CONFLICT * | conflict | ) |
returns the current number of conflict sets in the conflict set storage
| conflict | conflict analysis data |
Definition at line 130 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 140 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedglbconss, SCIP_Conflict::nappliedlocconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNConflictConssApplied().
| SCIP_Longint SCIPconflictGetNAppliedResConss | ( | SCIP_CONFLICT * | conflict | ) |
returns the total number of resolution conflict constraints that were added to the problem
| conflict | conflict analysis data |
Definition at line 150 of file conflict_general.c.
References assert(), SCIP_Conflict::nappliedglbresconss, NULL, and SCIP_Longint.
Referenced by SCIPgetNResConflictConssApplied().
| 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 160 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 170 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 180 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 190 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 200 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 210 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 220 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 233 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 255 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::resanalyzetime, 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 272 of file conflict_general.c.
References assert(), BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPconflictEnableOrDisableClocks(), SCIPconflictInitProofset(), SCIPconflictInitRows(), 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 384 of file conflict_general.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_OKAY, SCIPclockFree(), SCIPconflictRowFree(), SCIPconflictsetFree(), SCIPpqueueFree(), and SCIPproofsetFree().
Referenced by freeTransform(), and freeTransforming().
| SCIP_RETCODE SCIPconflictClearQueues | ( | SCIP_CONFLICT * | conflict | ) |
clears conflict analysis bound changes queues for propagation conflicts
| conflict | pointer to conflict analysis data |
Definition at line 429 of file conflict_general.c.
References assert(), SCIP_Conflict::bdchgqueue, SCIP_Conflict::forcedbdchgqueue, NULL, SCIP_OKAY, and SCIPpqueueClear().
| 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 444 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 461 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 476 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 486 of file conflict_general.c.
References assert(), NULL, SCIP_Conflict::propanalyzetime, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().
| SCIP_Real SCIPconflictGetResTime | ( | SCIP_CONFLICT * | conflict | ) |
gets time in seconds used for analyzing propagation conflicts with generalized resolution
| conflict | conflict analysis data |
Definition at line 496 of file conflict_general.c.
References assert(), NULL, SCIP_Conflict::resanalyzetime, 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 506 of file conflict_general.c.
References assert(), SCIP_Conflict::npropcalls, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), and 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 516 of file conflict_general.c.
References assert(), SCIP_Conflict::npropsuccess, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), 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 526 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 536 of file conflict_general.c.
References assert(), SCIP_Conflict::npropconfliterals, NULL, and SCIP_Longint.
Referenced by SCIPprintConflictStatistics().
| SCIP_Longint SCIPconflictGetNResConflictVars | ( | SCIP_CONFLICT * | conflict | ) |
returns total number of variables in resolution conflict constraints created in propagation conflict analysis
gets total number of variables in resolution conflict constraints created in propagation conflict analysis
| conflict | conflict analysis data |
Definition at line 546 of file conflict_general.c.
References assert(), SCIP_Conflict::nresconfvariables, 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 556 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 566 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 576 of file conflict_general.c.
References assert(), SCIP_Conflict::inflpanalyzetime, NULL, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().
| SCIP_Longint SCIPconflictGetNInfeasibleLPCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to infeasible LP conflict analysis
| conflict | conflict analysis data |
Definition at line 586 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpcalls, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), and 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 596 of file conflict_general.c.
References assert(), SCIP_Conflict::ninflpsuccess, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), 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 606 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 616 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 626 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 636 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 646 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 656 of file conflict_general.c.
References assert(), SCIP_Conflict::boundlpanalyzetime, NULL, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().
| SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls | ( | SCIP_CONFLICT * | conflict | ) |
gets number of calls to bound exceeding LP conflict analysis
| conflict | conflict analysis data |
Definition at line 666 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpcalls, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), and 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 676 of file conflict_general.c.
References assert(), SCIP_Conflict::nboundlpsuccess, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), 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 686 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 696 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 706 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 716 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 726 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 736 of file conflict_general.c.
References assert(), NULL, SCIP_Conflict::sbanalyzetime, SCIP_Real, and SCIPclockGetTime().
Referenced by SCIPcollectConflictStatistics(), and 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 746 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 756 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 766 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 776 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 786 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 796 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 806 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 816 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 826 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbcalls, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), and 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 836 of file conflict_general.c.
References assert(), SCIP_Conflict::nsbsuccess, NULL, and SCIP_Longint.
Referenced by SCIPcollectConflictStatistics(), 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 846 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 856 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 866 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 876 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 886 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 |
| safely | should the addition be performed safely? |
| success | was adding the row successful? |
Definition at line 897 of file conflict_general.c.
References assert(), SCIP_Row::constant, FALSE, SCIP_Row::lhs, SCIP_Row::local, SCIP_Row::lpdepth, NULL, SCIP_Row::rhs, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaggrRowAddRow(), SCIPaggrRowAddRowSafely(), SCIPaggrRowGetRhs(), SCIProwGetName(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and TRUE.
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 941 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().
|
static |
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 989 of file conflict_general.c.
References assert(), FALSE, i, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPintervalGetRoundingMode(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPprobGetVars(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), TRUE, SCIP_AggrRow::vals, and vars.
Referenced by SCIPaggrRowGetMinActivity().
| SCIP_Real SCIPaggrRowGetMinActivity | ( | SCIP_SET * | set, |
| SCIP_PROB * | transprob, | ||
| SCIP_AGGRROW * | aggrrow, | ||
| SCIP_Real * | curvarlbs, | ||
| SCIP_Real * | curvarubs, | ||
| SCIP_Bool * | infdelta ) |
calculates the minimal activity of a given aggregation row
| 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 1076 of file conflict_general.c.
References aggrRowGetMinActivitySafely(), 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 1159 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 1227 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 1370 of file conflict_general.c.
References ABS, addLocalRows(), addRowToAggrRow(), assert(), BMSclearMemoryArray, SCIP_AggrRow::certificateline, checkDualFeasibility(), SCIP_Row::cols, FALSE, SCIP_Lp::flushed, i, SCIP_AggrRow::inds, SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, SCIP_AggrRow::nnz, SCIP_AggrRow::nrows, NULL, NUMSTOP, r, REALABS, SCIP_Certificate::rowdatahash, SCIP_Row::rowexact, SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_ROWORIGINTYPE_SEPA, SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPallocBufferArray, SCIPcertificateGetRowIndex(), SCIPcertificatePrintAggrrow(), SCIPcertificatePrintMirCut(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetCertificate(), SCIPgetLPRows(), SCIPhashmapGetImageLong(), SCIPisCertified(), SCIPlpDivingObjChanged(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetDualfarkas(), SCIPlpiHasDualRay(), SCIPlpiIsDualFeasible(), SCIPlpiIsObjlimExc(), SCIPlpiIsPrimalInfeasible(), SCIProwGetLPDepth(), SCIProwGetOrigintype(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPtreeGetFocusDepth(), SOLSTOP, SCIP_Lp::solved, TRUE, valid, SCIP_AggrRow::vals, and SCIP_Row::vals.
Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().
|
static |
creates a numerically safe row (with corresponding exact row) from the objective, provided rhs is an exactly valid cutoffbound
| scip | SCIP data structure |
| row | pointer to store the row |
| rhs | right-hand side of the artificial row |
| success | pointer to store whether adding the row was successful |
Definition at line 1593 of file conflict_general.c.
References assert(), FALSE, i, SCIP_ColExact::lb, SCIP_ColExact::obj, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIPallocBufferArray, SCIPbuffer(), SCIPcreateRowExact(), SCIPcreateRowUnspec(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetNLPCols(), SCIPinfinity(), SCIPintervalGetRoundingMode(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeUpwards(), SCIPisExact(), SCIPisObjIntegral(), SCIPisZero(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsFpRepresentable(), SCIPrationalIsInfinity(), SCIPrationalIsNegInfinity(), SCIPrationalIsZero(), SCIPrationalRoundInteger(), SCIPrationalRoundReal(), SCIPrationalSetNegInfinity(), SCIPrationalSetReal(), SCIProwGetNNonz(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), TRUE, SCIP_ColExact::ub, and SCIP_ColExact::var.
Referenced by SCIPgetDualProof().
| SCIP_RETCODE SCIPgetDualProof | ( | SCIP_SET * | set, |
| SCIP_PROB * | transprob, | ||
| SCIP_LP * | lp, | ||
| SCIP_LPI * | lpi, | ||
| SCIP_TREE * | tree, | ||
| SCIP_AGGRROW * | farkasrow, | ||
| SCIP_Real * | farkasact, | ||
| int * | validdepth, | ||
| SCIP_Real * | curvarlbs, | ||
| SCIP_Real * | curvarubs, | ||
| SCIP_Bool * | valid ) |
calculates a Farkas proof from the current dual LP solution
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 1710 of file conflict_general.c.
References addLocalRows(), addRowToAggrRow(), assert(), SCIP_AggrRow::certificateline, checkDualFeasibility(), SCIP_Row::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getObjectiveRow(), i, SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, SCIP_AggrRow::nrows, NULL, NUMSTOP, objval, r, REALABS, SCIP_Certificate::rowdatahash, SCIP_Row::rowexact, SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_LPERROR, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIP_ROWORIGINTYPE_SEPA, SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowClear(), SCIPaggrRowClearSafely(), SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPallocBufferArray, SCIPcertificatePrintAggrrow(), SCIPcertificatePrintCutoffBound(), SCIPcertificatePrintMirCut(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetCertificate(), SCIPgetCutoffboundExact(), SCIPgetLPCols(), SCIPgetLPRows(), SCIPgetNLPCols(), SCIPhashmapGetImageLong(), SCIPhashmapInsertLong(), SCIPhashmapRemove(), SCIPisCertified(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetRows(), SCIPlpiGetObjval(), SCIPlpiGetSol(), SCIPprobIsObjIntegral(), SCIPrationalRoundReal(), SCIPreleaseRow(), SCIPreleaseRowExact(), SCIProwGetLPDepth(), SCIProwGetOrigintype(), SCIPsetAllocBufferArray, SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPtreeGetFocusDepth(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SOLSTOP, SCIP_Lp::solved, TRUE, valid, SCIP_Row::vals, and var.
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_EVENTFILTER * | eventfilter, | ||
| 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 |
| eventfilter | global event filter |
| cliquetable | clique table data structure |
| success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2015 of file conflict_general.c.
References assert(), SCIP_Conflict::bdchgonlyconfqueue, 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 2175 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 2185 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 2195 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 2205 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 2215 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 2225 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 2235 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 |
| eventfilter | global event filter |
| 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 2246 of file conflict_general.c.
References assert(), SCIP_Conflict::bdchgonlyconfqueue, 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(), SCIPgetCutoffbound(), 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_EVENTFILTER * | eventfilter, | ||
| 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 |
| eventfilter | global event filter |
| 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 2578 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 |
| eventfilter | global event filter |
| cliquetable | clique table data structure |
| success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2827 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 |
| eventfilter | global event filter |
| cliquetable | clique table data structure |
| success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2904 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_EVENTFILTER * | eventfilter, | ||
| 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()
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
| 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 |
| eventfilter | global event filter |
| cliquetable | clique table data structure |
| success | pointer to store whether a conflict constraint was created, or NULL |
Definition at line 2984 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().