Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods and datastructures for conflict analysis

    Author
    Tobias Achterberg
    Timo Berthold
    Stefan Heinz
    Marc Pfetsch
    Michael Winkler
    Jakob Witzig
    Sander Borst

    SCIP contains two kinds of conflict analysis:

    • In graph based conflict analysis, the graph consisting of derived is analysed. Code and documentation is available in conflict_graphanalysis.h
    • In dual proof analysis, an infeasible LP relaxation is analysed. Using the dual solution, a valid constraint is derived that is violated by all values in the domain. This constraint is added to the problem and can then be used for domain propagation. Code is available in conflict_dualproofanalysis.h This file contains the methods that are shared by both 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
     

    Functions

    SCIP_Bool SCIPconflictApplicable (SCIP_SET *set)
     
    int SCIPconflictGetNConflicts (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedResConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNGlobalChgBds (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedGlobalConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNLocalChgBds (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedLocalConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNAppliedLocalLiterals (SCIP_CONFLICT *conflict)
     
    static SCIP_DECL_SORTPTRCOMP (conflictBdchginfoComp)
     
    void SCIPconflictEnableOrDisableClocks (SCIP_CONFLICT *conflict, SCIP_Bool enable)
     
    SCIP_RETCODE SCIPconflictCreate (SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem, SCIP_SET *set)
     
    SCIP_RETCODE SCIPconflictFree (SCIP_CONFLICT **conflict, BMS_BLKMEM *blkmem)
     
    SCIP_RETCODE SCIPconflictClearQueues (SCIP_CONFLICT *conflict)
     
    SCIP_Real SCIPconflictGetVarLb (SCIP_CONFLICT *conflict, SCIP_VAR *var)
     
    SCIP_Real SCIPconflictGetVarUb (SCIP_CONFLICT *conflict, SCIP_VAR *var)
     
    SCIP_Real SCIPconflictGetGlobalApplTime (SCIP_CONFLICT *conflict)
     
    SCIP_Real SCIPconflictGetPropTime (SCIP_CONFLICT *conflict)
     
    SCIP_Real SCIPconflictGetResTime (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPropCalls (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPropSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPropConflictConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPropConflictLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNResConflictVars (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPropReconvergenceConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Real SCIPconflictGetInfeasibleLPTime (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPCalls (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNInfeasibleLPIterations (SCIP_CONFLICT *conflict)
     
    SCIP_Real SCIPconflictGetBoundexceedingLPTime (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations (SCIP_CONFLICT *conflict)
     
    SCIP_Real SCIPconflictGetStrongbranchTime (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsInfSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsInfGlobal (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsInfLocal (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsBndSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsBndGlobal (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsBndLocal (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchCalls (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchConflictConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNStrongbranchIterations (SCIP_CONFLICT *conflict)
     
    static SCIP_RETCODE addRowToAggrRow (SCIP_SET *set, SCIP_ROW *row, SCIP_Real weight, SCIP_AGGRROW *aggrrow, SCIP_Bool safely, SCIP_Bool *success)
     
    static SCIP_Bool checkDualFeasibility (SCIP_SET *set, SCIP_ROW *row, SCIP_Real weight, SCIP_Bool *zerocontribution)
     
    static SCIP_Real aggrRowGetMinActivitySafely (SCIP_SET *set, SCIP_PROB *transprob, SCIP_AGGRROW *aggrrow, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *infdelta)
     
    SCIP_Real SCIPaggrRowGetMinActivity (SCIP_SET *set, SCIP_PROB *transprob, SCIP_AGGRROW *aggrrow, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *infdelta)
     
    static SCIP_RETCODE sortLocalRows (SCIP_SET *set, SCIP_AGGRROW *aggrrow, SCIP_ROW **rows, int *rowinds, int *rowdepth, int nrows)
     
    static SCIP_RETCODE addLocalRows (SCIP_SET *set, SCIP_PROB *transprob, SCIP_LP *lp, SCIP_AGGRROW *proofrow, SCIP_ROW **rows, SCIP_Real *dualsols, int *localrowinds, int *localrowdepth, int nlocalrows, SCIP_Real *proofact, int *validdepth, SCIP_Real *curvarlbs, SCIP_Real *curvarubs, SCIP_Bool *valid)
     
    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)
     
    static SCIP_RETCODE getObjectiveRow (SCIP *scip, SCIP_ROW **row, SCIP_Real rhs, SCIP_Bool *success)
     
    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)
     
    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)
     
    SCIP_Real SCIPconflictGetPseudoTime (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPseudoCalls (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPseudoSuccess (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPseudoConflictConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPseudoConflictLiterals (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss (SCIP_CONFLICT *conflict)
     
    SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals (SCIP_CONFLICT *conflict)
     
    static SCIP_RETCODE conflictAnalyzeLP (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 diving, SCIP_Bool *dualproofsuccess, int *iterations, int *nconss, int *nliterals, int *nreconvconss, int *nreconvliterals, SCIP_Bool marklpunsolved)
     
    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)
     
    static SCIP_RETCODE conflictAnalyzeInfeasibleLP (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)
     
    static SCIP_RETCODE conflictAnalyzeBoundexceedingLP (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)
     
    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)
     

    Macro Definition Documentation

    ◆ NUMSTOP

    #define NUMSTOP   9007199254740992.0

    Definition at line 108 of file conflict_general.c.

    ◆ SOLSTOP

    #define SOLSTOP   10000000.0

    Definition at line 112 of file conflict_general.c.

    Function Documentation

    ◆ SCIPconflictApplicable()

    SCIP_Bool SCIPconflictApplicable ( SCIP_SET set)

    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

    Parameters
    setglobal SCIP settings

    Definition at line 117 of file conflict_general.c.

    References FALSE, NULL, and TRUE.

    Referenced by SCIPisConflictAnalysisApplicable().

    ◆ SCIPconflictGetNConflicts()

    int SCIPconflictGetNConflicts ( SCIP_CONFLICT conflict)

    returns the current number of conflict sets in the conflict set storage

    Parameters
    conflictconflict analysis data

    Definition at line 130 of file conflict_general.c.

    References SCIP_Conflict::nconflictsets, and NULL.

    Referenced by propAndSolve(), SCIPgetNConflictConssFoundNode(), SCIPgetVarStrongbranchWithPropagation(), and solveNode().

    ◆ SCIPconflictGetNAppliedConss()

    SCIP_Longint SCIPconflictGetNAppliedConss ( SCIP_CONFLICT conflict)

    returns the total number of conflict constraints that were added to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 140 of file conflict_general.c.

    References SCIP_Conflict::nappliedglbconss, SCIP_Conflict::nappliedlocconss, and NULL.

    Referenced by SCIPgetNConflictConssApplied().

    ◆ SCIPconflictGetNAppliedResConss()

    SCIP_Longint SCIPconflictGetNAppliedResConss ( SCIP_CONFLICT conflict)

    returns the total number of resolution conflict constraints that were added to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 150 of file conflict_general.c.

    References SCIP_Conflict::nappliedglbresconss, and NULL.

    Referenced by SCIPgetNResConflictConssApplied().

    ◆ SCIPconflictGetNAppliedLiterals()

    SCIP_Longint SCIPconflictGetNAppliedLiterals ( SCIP_CONFLICT conflict)

    returns the total number of literals in conflict constraints that were added to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 160 of file conflict_general.c.

    References SCIP_Conflict::nappliedglbliterals, SCIP_Conflict::nappliedlocliterals, and NULL.

    ◆ SCIPconflictGetNGlobalChgBds()

    SCIP_Longint SCIPconflictGetNGlobalChgBds ( SCIP_CONFLICT conflict)

    returns the total number of global bound changes applied by the conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 170 of file conflict_general.c.

    References SCIP_Conflict::nglbchgbds, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNAppliedGlobalConss()

    SCIP_Longint SCIPconflictGetNAppliedGlobalConss ( SCIP_CONFLICT conflict)

    returns the total number of conflict constraints that were added globally to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 180 of file conflict_general.c.

    References SCIP_Conflict::nappliedglbconss, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNAppliedGlobalLiterals()

    SCIP_Longint SCIPconflictGetNAppliedGlobalLiterals ( SCIP_CONFLICT conflict)

    returns the total number of literals in conflict constraints that were added globally to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 190 of file conflict_general.c.

    References SCIP_Conflict::nappliedglbliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNLocalChgBds()

    SCIP_Longint SCIPconflictGetNLocalChgBds ( SCIP_CONFLICT conflict)

    returns the total number of local bound changes applied by the conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 200 of file conflict_general.c.

    References SCIP_Conflict::nlocchgbds, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNAppliedLocalConss()

    SCIP_Longint SCIPconflictGetNAppliedLocalConss ( SCIP_CONFLICT conflict)

    returns the total number of conflict constraints that were added locally to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 210 of file conflict_general.c.

    References SCIP_Conflict::nappliedlocconss, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNAppliedLocalLiterals()

    SCIP_Longint SCIPconflictGetNAppliedLocalLiterals ( SCIP_CONFLICT conflict)

    returns the total number of literals in conflict constraints that were added locally to the problem

    Parameters
    conflictconflict analysis data

    Definition at line 220 of file conflict_general.c.

    References SCIP_Conflict::nappliedlocliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIP_DECL_SORTPTRCOMP()

    static SCIP_DECL_SORTPTRCOMP ( conflictBdchginfoComp  )
    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 NULL, SCIPbdchgidxIsEarlierNonNull(), SCIPbdchginfoGetIdx(), and SCIPbdchginfoIsRedundant().

    ◆ SCIPconflictEnableOrDisableClocks()

    void SCIPconflictEnableOrDisableClocks ( SCIP_CONFLICT conflict,
    SCIP_Bool  enable 
    )

    enables or disables all clocks of conflict, depending on the value of the flag

    Parameters
    conflictthe conflict analysis data for which all clocks should be enabled or disabled
    enableshould the clocks of the conflict analysis data be enabled?

    Definition at line 255 of file conflict_general.c.

    References SCIP_Conflict::boundlpanalyzetime, SCIP_Conflict::dIBclock, SCIP_Conflict::inflpanalyzetime, NULL, SCIP_Conflict::propanalyzetime, SCIP_Conflict::pseudoanalyzetime, SCIP_Conflict::resanalyzetime, SCIP_Conflict::sbanalyzetime, and SCIPclockEnableOrDisable().

    Referenced by SCIPconflictCreate(), and SCIPenableOrDisableStatisticTiming().

    ◆ SCIPconflictCreate()

    SCIP_RETCODE SCIPconflictCreate ( SCIP_CONFLICT **  conflict,
    BMS_BLKMEM blkmem,
    SCIP_SET set 
    )

    creates conflict analysis data for propagation conflicts

    Parameters
    conflictpointer to conflict analysis data
    blkmemblock memory of transformed problem
    setglobal SCIP settings

    Definition at line 272 of file conflict_general.c.

    References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIPclockCreate(), SCIPconflictEnableOrDisableClocks(), SCIPconflictInitProofset(), SCIPconflictInitRows(), SCIPconflictsetCreate(), and SCIPpqueueCreate().

    Referenced by SCIPtransformProb().

    ◆ SCIPconflictFree()

    SCIP_RETCODE SCIPconflictFree ( SCIP_CONFLICT **  conflict,
    BMS_BLKMEM blkmem 
    )

    frees conflict analysis data for propagation conflicts

    Parameters
    conflictpointer to conflict analysis data
    blkmemblock memory of transformed problem

    Definition at line 384 of file conflict_general.c.

    References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_OKAY, SCIPclockFree(), SCIPconflictRowFree(), SCIPconflictsetFree(), SCIPpqueueFree(), and SCIPproofsetFree().

    Referenced by freeTransform(), and freeTransforming().

    ◆ SCIPconflictClearQueues()

    SCIP_RETCODE SCIPconflictClearQueues ( SCIP_CONFLICT conflict)

    clears conflict analysis bound changes queues for propagation conflicts

    Parameters
    conflictpointer to conflict analysis data

    Definition at line 429 of file conflict_general.c.

    References SCIP_Conflict::bdchgqueue, SCIP_Conflict::forcedbdchgqueue, NULL, SCIP_OKAY, and SCIPpqueueClear().

    ◆ SCIPconflictGetVarLb()

    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

    Parameters
    conflictconflict analysis data
    varproblem variable

    Definition at line 444 of file conflict_general.c.

    References SCIP_Var::conflictlb, SCIP_Var::conflictlbcount, SCIP_Var::conflictrelaxedlb, SCIP_Conflict::count, EPSGE, and SCIPvarGetLbGlobal().

    Referenced by SCIPgetConflictVarLb().

    ◆ SCIPconflictGetVarUb()

    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

    Parameters
    conflictconflict analysis data
    varproblem variable

    Definition at line 461 of file conflict_general.c.

    References SCIP_Var::conflictrelaxedub, SCIP_Var::conflictub, SCIP_Var::conflictubcount, SCIP_Conflict::count, EPSLE, and SCIPvarGetUbGlobal().

    Referenced by SCIPgetConflictVarUb().

    ◆ SCIPconflictGetGlobalApplTime()

    SCIP_Real SCIPconflictGetGlobalApplTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for preprocessing global conflict constraint before appliance

    Parameters
    conflictconflict analysis data

    Definition at line 476 of file conflict_general.c.

    References SCIP_Conflict::dIBclock, NULL, and SCIPclockGetTime().

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetPropTime()

    SCIP_Real SCIPconflictGetPropTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for analyzing propagation conflicts

    Parameters
    conflictconflict analysis data

    Definition at line 486 of file conflict_general.c.

    References NULL, SCIP_Conflict::propanalyzetime, and SCIPclockGetTime().

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetResTime()

    SCIP_Real SCIPconflictGetResTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for analyzing propagation conflicts with generalized resolution

    Parameters
    conflictconflict analysis data

    Definition at line 496 of file conflict_general.c.

    References NULL, SCIP_Conflict::resanalyzetime, and SCIPclockGetTime().

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPropCalls()

    SCIP_Longint SCIPconflictGetNPropCalls ( SCIP_CONFLICT conflict)

    gets number of calls to propagation conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 506 of file conflict_general.c.

    References SCIP_Conflict::npropcalls, and NULL.

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPropSuccess()

    SCIP_Longint SCIPconflictGetNPropSuccess ( SCIP_CONFLICT conflict)

    gets number of calls to propagation conflict analysis that yield at least one conflict constraint

    Parameters
    conflictconflict analysis data

    Definition at line 516 of file conflict_general.c.

    References SCIP_Conflict::npropsuccess, and NULL.

    Referenced by SCIPcollectConflictStatistics(), SCIPprintConflictStatistics(), and SCIPsolveCIP().

    ◆ SCIPconflictGetNPropConflictConss()

    SCIP_Longint SCIPconflictGetNPropConflictConss ( SCIP_CONFLICT conflict)

    gets number of conflict constraints detected in propagation conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 526 of file conflict_general.c.

    References SCIP_Conflict::npropconfconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPropConflictLiterals()

    SCIP_Longint SCIPconflictGetNPropConflictLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in conflict constraints created in propagation conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 536 of file conflict_general.c.

    References SCIP_Conflict::npropconfliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNResConflictVars()

    SCIP_Longint SCIPconflictGetNResConflictVars ( SCIP_CONFLICT conflict)

    returns total number of variables in resolution conflict constraints created in propagation conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 546 of file conflict_general.c.

    References SCIP_Conflict::nresconfvariables, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPropReconvergenceConss()

    SCIP_Longint SCIPconflictGetNPropReconvergenceConss ( SCIP_CONFLICT conflict)

    gets number of reconvergence constraints detected in propagation conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 556 of file conflict_general.c.

    References SCIP_Conflict::npropreconvconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPropReconvergenceLiterals()

    SCIP_Longint SCIPconflictGetNPropReconvergenceLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in reconvergence constraints created in propagation conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 566 of file conflict_general.c.

    References SCIP_Conflict::npropreconvliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetInfeasibleLPTime()

    SCIP_Real SCIPconflictGetInfeasibleLPTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for analyzing infeasible LP conflicts

    Parameters
    conflictconflict analysis data

    Definition at line 576 of file conflict_general.c.

    References SCIP_Conflict::inflpanalyzetime, NULL, and SCIPclockGetTime().

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNInfeasibleLPCalls()

    SCIP_Longint SCIPconflictGetNInfeasibleLPCalls ( SCIP_CONFLICT conflict)

    gets number of calls to infeasible LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 586 of file conflict_general.c.

    References SCIP_Conflict::ninflpcalls, and NULL.

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNInfeasibleLPSuccess()

    SCIP_Longint SCIPconflictGetNInfeasibleLPSuccess ( SCIP_CONFLICT conflict)

    gets number of calls to infeasible LP conflict analysis that yield at least one conflict constraint

    Parameters
    conflictconflict analysis data

    Definition at line 596 of file conflict_general.c.

    References SCIP_Conflict::ninflpsuccess, and NULL.

    Referenced by SCIPcollectConflictStatistics(), SCIPprintConflictStatistics(), and SCIPsolveCIP().

    ◆ SCIPconflictGetNInfeasibleLPConflictConss()

    SCIP_Longint SCIPconflictGetNInfeasibleLPConflictConss ( SCIP_CONFLICT conflict)

    gets number of conflict constraints detected in infeasible LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 606 of file conflict_general.c.

    References SCIP_Conflict::ninflpconfconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNInfeasibleLPConflictLiterals()

    SCIP_Longint SCIPconflictGetNInfeasibleLPConflictLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in conflict constraints created in infeasible LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 616 of file conflict_general.c.

    References SCIP_Conflict::ninflpconfliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNInfeasibleLPReconvergenceConss()

    SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceConss ( SCIP_CONFLICT conflict)

    gets number of reconvergence constraints detected in infeasible LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 626 of file conflict_general.c.

    References SCIP_Conflict::ninflpreconvconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNInfeasibleLPReconvergenceLiterals()

    SCIP_Longint SCIPconflictGetNInfeasibleLPReconvergenceLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in reconvergence constraints created in infeasible LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 636 of file conflict_general.c.

    References SCIP_Conflict::ninflpreconvliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNInfeasibleLPIterations()

    SCIP_Longint SCIPconflictGetNInfeasibleLPIterations ( SCIP_CONFLICT conflict)

    gets number of LP iterations in infeasible LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 646 of file conflict_general.c.

    References SCIP_Conflict::ninflpiterations, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetBoundexceedingLPTime()

    SCIP_Real SCIPconflictGetBoundexceedingLPTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for analyzing bound exceeding LP conflicts

    Parameters
    conflictconflict analysis data

    Definition at line 656 of file conflict_general.c.

    References SCIP_Conflict::boundlpanalyzetime, NULL, and SCIPclockGetTime().

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNBoundexceedingLPCalls()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPCalls ( SCIP_CONFLICT conflict)

    gets number of calls to bound exceeding LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 666 of file conflict_general.c.

    References SCIP_Conflict::nboundlpcalls, and NULL.

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNBoundexceedingLPSuccess()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPSuccess ( SCIP_CONFLICT conflict)

    gets number of calls to bound exceeding LP conflict analysis that yield at least one conflict constraint

    Parameters
    conflictconflict analysis data

    Definition at line 676 of file conflict_general.c.

    References SCIP_Conflict::nboundlpsuccess, and NULL.

    Referenced by SCIPcollectConflictStatistics(), SCIPprintConflictStatistics(), and SCIPsolveCIP().

    ◆ SCIPconflictGetNBoundexceedingLPConflictConss()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictConss ( SCIP_CONFLICT conflict)

    gets number of conflict constraints detected in bound exceeding LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 686 of file conflict_general.c.

    References SCIP_Conflict::nboundlpconfconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNBoundexceedingLPConflictLiterals()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPConflictLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in conflict constraints created in bound exceeding LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 696 of file conflict_general.c.

    References SCIP_Conflict::nboundlpconfliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNBoundexceedingLPReconvergenceConss()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceConss ( SCIP_CONFLICT conflict)

    gets number of reconvergence constraints detected in bound exceeding LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 706 of file conflict_general.c.

    References SCIP_Conflict::nboundlpreconvconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNBoundexceedingLPReconvergenceLiterals()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPReconvergenceLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in reconvergence constraints created in bound exceeding LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 716 of file conflict_general.c.

    References SCIP_Conflict::nboundlpreconvliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNBoundexceedingLPIterations()

    SCIP_Longint SCIPconflictGetNBoundexceedingLPIterations ( SCIP_CONFLICT conflict)

    gets number of LP iterations in bound exceeding LP conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 726 of file conflict_general.c.

    References SCIP_Conflict::nboundlpiterations, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetStrongbranchTime()

    SCIP_Real SCIPconflictGetStrongbranchTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for analyzing infeasible strong branching conflicts

    Parameters
    conflictconflict analysis data

    Definition at line 736 of file conflict_general.c.

    References NULL, SCIP_Conflict::sbanalyzetime, and SCIPclockGetTime().

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsInfSuccess()

    SCIP_Longint SCIPconflictGetNDualproofsInfSuccess ( SCIP_CONFLICT conflict)

    gets number of successful calls to dual proof analysis derived from infeasible LPs

    Parameters
    conflictconflict analysis data

    Definition at line 746 of file conflict_general.c.

    References SCIP_Conflict::ndualproofsinfsuccess, and NULL.

    Referenced by SCIPgetNConflictDualproofsApplied(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsInfGlobal()

    SCIP_Longint SCIPconflictGetNDualproofsInfGlobal ( SCIP_CONFLICT conflict)

    gets number of globally valid dual proof constraints derived from infeasible LPs

    Parameters
    conflictconflict analysis data

    Definition at line 756 of file conflict_general.c.

    References SCIP_Conflict::ndualproofsinfglobal, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsInfLocal()

    SCIP_Longint SCIPconflictGetNDualproofsInfLocal ( SCIP_CONFLICT conflict)

    gets number of locally valid dual proof constraints derived from infeasible LPs

    Parameters
    conflictconflict analysis data

    Definition at line 766 of file conflict_general.c.

    References SCIP_Conflict::ndualproofsinflocal, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsInfNonzeros()

    SCIP_Longint SCIPconflictGetNDualproofsInfNonzeros ( SCIP_CONFLICT conflict)

    gets average length of dual proof constraints derived from infeasible LPs

    Parameters
    conflictconflict analysis data

    Definition at line 776 of file conflict_general.c.

    References SCIP_Conflict::dualproofsinfnnonzeros, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsBndSuccess()

    SCIP_Longint SCIPconflictGetNDualproofsBndSuccess ( SCIP_CONFLICT conflict)

    gets number of successfully analyzed dual proofs derived from bound exceeding LPs

    Parameters
    conflictconflict analysis data

    Definition at line 786 of file conflict_general.c.

    References SCIP_Conflict::ndualproofsbndsuccess, and NULL.

    Referenced by SCIPgetNConflictDualproofsApplied(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsBndGlobal()

    SCIP_Longint SCIPconflictGetNDualproofsBndGlobal ( SCIP_CONFLICT conflict)

    gets number of globally applied dual proofs derived from bound exceeding LPs

    Parameters
    conflictconflict analysis data

    Definition at line 796 of file conflict_general.c.

    References SCIP_Conflict::ndualproofsbndglobal, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsBndLocal()

    SCIP_Longint SCIPconflictGetNDualproofsBndLocal ( SCIP_CONFLICT conflict)

    gets number of locally applied dual proofs derived from bound exceeding LPs

    Parameters
    conflictconflict analysis data

    Definition at line 806 of file conflict_general.c.

    References SCIP_Conflict::ndualproofsbndlocal, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNDualproofsBndNonzeros()

    SCIP_Longint SCIPconflictGetNDualproofsBndNonzeros ( SCIP_CONFLICT conflict)

    gets average length of dual proofs derived from bound exceeding LPs

    Parameters
    conflictconflict analysis data

    Definition at line 816 of file conflict_general.c.

    References SCIP_Conflict::dualproofsbndnnonzeros, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNStrongbranchCalls()

    SCIP_Longint SCIPconflictGetNStrongbranchCalls ( SCIP_CONFLICT conflict)

    gets number of calls to infeasible strong branching conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 826 of file conflict_general.c.

    References SCIP_Conflict::nsbcalls, and NULL.

    Referenced by SCIPcollectConflictStatistics(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNStrongbranchSuccess()

    SCIP_Longint SCIPconflictGetNStrongbranchSuccess ( SCIP_CONFLICT conflict)

    gets number of calls to infeasible strong branching conflict analysis that yield at least one conflict constraint

    Parameters
    conflictconflict analysis data

    Definition at line 836 of file conflict_general.c.

    References SCIP_Conflict::nsbsuccess, and NULL.

    Referenced by SCIPcollectConflictStatistics(), SCIPprintConflictStatistics(), and SCIPsolveCIP().

    ◆ SCIPconflictGetNStrongbranchConflictConss()

    SCIP_Longint SCIPconflictGetNStrongbranchConflictConss ( SCIP_CONFLICT conflict)

    gets number of conflict constraints detected in infeasible strong branching conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 846 of file conflict_general.c.

    References SCIP_Conflict::nsbconfconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNStrongbranchConflictLiterals()

    SCIP_Longint SCIPconflictGetNStrongbranchConflictLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in conflict constraints created in infeasible strong branching conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 856 of file conflict_general.c.

    References SCIP_Conflict::nsbconfliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNStrongbranchReconvergenceConss()

    SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceConss ( SCIP_CONFLICT conflict)

    gets number of reconvergence constraints detected in infeasible strong branching conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 866 of file conflict_general.c.

    References SCIP_Conflict::nsbreconvconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNStrongbranchReconvergenceLiterals()

    SCIP_Longint SCIPconflictGetNStrongbranchReconvergenceLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in reconvergence constraints created in infeasible strong branching conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 876 of file conflict_general.c.

    References SCIP_Conflict::nsbreconvliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNStrongbranchIterations()

    SCIP_Longint SCIPconflictGetNStrongbranchIterations ( SCIP_CONFLICT conflict)

    gets number of LP iterations in infeasible strong branching conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 886 of file conflict_general.c.

    References SCIP_Conflict::nsbiterations, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ addRowToAggrRow()

    static SCIP_RETCODE addRowToAggrRow ( SCIP_SET set,
    SCIP_ROW row,
    SCIP_Real  weight,
    SCIP_AGGRROW aggrrow,
    SCIP_Bool  safely,
    SCIP_Bool success 
    )
    static

    adds a weighted LP row to an aggregation row

    Parameters
    setglobal SCIP settings
    rowLP row
    weightweight for scaling
    aggrrowaggregation row
    safelyshould the addition be performed safely?
    successwas adding the row successful?

    Definition at line 897 of file conflict_general.c.

    References SCIP_Row::constant, FALSE, SCIP_Row::lhs, SCIP_Row::local, SCIP_Row::lpdepth, NULL, SCIP_Row::rhs, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggrRowAddRow(), SCIPaggrRowAddRowSafely(), SCIPaggrRowGetRhs(), SCIProwGetName(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and TRUE.

    Referenced by addLocalRows(), SCIPgetDualProof(), and SCIPgetFarkasProof().

    ◆ checkDualFeasibility()

    static SCIP_Bool checkDualFeasibility ( SCIP_SET set,
    SCIP_ROW row,
    SCIP_Real  weight,
    SCIP_Bool zerocontribution 
    )
    static

    checks validity of an LP row and a corresponding weight

    Parameters
    setglobal SCIP settings
    rowLP row
    weightweight for scaling
    zerocontributionpointer to store whether every row entry is zero within tolerances

    Definition at line 941 of file conflict_general.c.

    References FALSE, SCIP_Row::len, SCIP_Row::lhs, QUAD_EPSILON, REALABS, SCIP_Row::rhs, SCIP_Bool, SCIProwGetName(), SCIPsetDebugMsg, SCIPsetIsDualfeasZero(), SCIPsetIsInfinity(), TRUE, and SCIP_Row::vals.

    Referenced by addLocalRows(), SCIPgetDualProof(), and SCIPgetFarkasProof().

    ◆ aggrRowGetMinActivitySafely()

    static SCIP_Real aggrRowGetMinActivitySafely ( SCIP_SET set,
    SCIP_PROB transprob,
    SCIP_AGGRROW aggrrow,
    SCIP_Real curvarlbs,
    SCIP_Real curvarubs,
    SCIP_Bool infdelta 
    )
    static

    calculates the minimal activity of a given aggregation row

    Parameters
    setglobal SCIP settings
    transprobtransformed problem data
    aggrrowaggregation row
    curvarlbscurrent lower bounds of active problem variables (or NULL for global bounds)
    curvarubscurrent upper bounds of active problem variables (or NULL for global bounds)
    infdeltapointer to store whether at least one variable contributes with an infinite value

    Definition at line 989 of file conflict_general.c.

    References FALSE, NULL, REALABS, SCIP_Real, SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPintervalGetRoundingMode(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPprobGetVars(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), TRUE, and SCIP_AggrRow::vals.

    Referenced by SCIPaggrRowGetMinActivity().

    ◆ 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

    Note
    in exact solving mode, this returns a safe underestimation of the minimal activity
    Parameters
    setglobal SCIP settings
    transprobtransformed problem data
    aggrrowaggregation row
    curvarlbscurrent lower bounds of active problem variables (or NULL for global bounds)
    curvarubscurrent upper bounds of active problem variables (or NULL for global bounds)
    infdeltapointer to store whether at least one variable contributes with an infinite value

    Definition at line 1076 of file conflict_general.c.

    References aggrRowGetMinActivitySafely(), FALSE, NULL, QUAD, QUAD_ASSIGN, QUAD_TO_DBL, SCIP_Real, SCIPaggrRowGetInds(), SCIPaggrRowGetNNz(), SCIPaggrRowGetProbvarValue(), SCIPprobGetVars(), SCIPquadprecProdDD, SCIPquadprecSumQQ, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetLbGlobal(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), and TRUE.

    Referenced by addLocalRows(), SCIPconflictAnalyzeDualProof(), SCIPgetDualProof(), SCIPgetFarkasProof(), separateAlternativeProofs(), and tightenDualproof().

    ◆ sortLocalRows()

    static SCIP_RETCODE sortLocalRows ( SCIP_SET set,
    SCIP_AGGRROW aggrrow,
    SCIP_ROW **  rows,
    int *  rowinds,
    int *  rowdepth,
    int  nrows 
    )
    static

    sort local rows by increasing depth and number of nonzeros as tie-breaker

    Parameters
    setglobal SCIP settings
    aggrrowaggregation row
    rowsarray of local rows
    rowindsarray of row indices
    rowdeptharray of LP depths
    nrowsnumber of local rows

    Definition at line 1159 of file conflict_general.c.

    References SCIP_Row::len, NULL, SCIP_CALL, SCIP_OKAY, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsortIntInt(), and SCIPsortIntIntInt().

    Referenced by addLocalRows().

    ◆ addLocalRows()

    static SCIP_RETCODE addLocalRows ( SCIP_SET set,
    SCIP_PROB transprob,
    SCIP_LP lp,
    SCIP_AGGRROW proofrow,
    SCIP_ROW **  rows,
    SCIP_Real dualsols,
    int *  localrowinds,
    int *  localrowdepth,
    int  nlocalrows,
    SCIP_Real proofact,
    int *  validdepth,
    SCIP_Real curvarlbs,
    SCIP_Real curvarubs,
    SCIP_Bool valid 
    )
    static

    adds locally valid rows to the proof constraint

    Parameters
    setglobal SCIP settings
    transprobtransformed problem
    lpLP data
    proofrowaggregated row representing the proof
    rowsarray if locally valid rows
    dualsolsdual solution vector
    localrowindsarray of row indecies
    localrowdeptharray of row depths
    nlocalrowsnumber of local rows stored in rows array
    proofactpointer to store the activity of the proof constraint
    validdepthpointer to store the depth where the proof constraint is valid
    curvarlbscurrent lower bounds of active problem variables
    curvarubscurrent upper bounds of active problem variables
    validpointer store whether the proof constraint is valid

    Definition at line 1227 of file conflict_general.c.

    References addRowToAggrRow(), checkDualFeasibility(), SCIP_Row::cols, FALSE, SCIP_Row::len, SCIP_Row::local, SCIP_Row::lpdepth, SCIP_Lp::lpirows, NULL, r, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggrRowGetMinActivity(), SCIPaggrRowGetRhs(), SCIPaggrRowRemoveZeros(), SCIPsetDebugMsg, SCIPsetIsDualfeasZero(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), sortLocalRows(), TRUE, and SCIP_Row::vals.

    Referenced by SCIPgetDualProof(), and SCIPgetFarkasProof().

    ◆ 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

    Parameters
    setglobal SCIP settings
    probtransformed problem
    lpLP data
    lpiLPI data
    treetree data
    farkasrowaggregated row representing the proof
    farkasactmaximal activity of the proof constraint
    validdepthpointer to store the valid depth of the proof constraint
    curvarlbscurrent lower bounds of active problem variables
    curvarubscurrent upper bounds of active problem variables
    validpointer store whether the proof constraint is valid

    Definition at line 1370 of file conflict_general.c.

    References ABS, addLocalRows(), addRowToAggrRow(), BMSclearMemoryArray, SCIP_AggrRow::certificateline, checkDualFeasibility(), SCIP_Row::cols, FALSE, SCIP_Lp::flushed, 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, SCIP_AggrRow::vals, and SCIP_Row::vals.

    Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().

    ◆ getObjectiveRow()

    ◆ 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

    Parameters
    setglobal SCIP settings
    transprobtransformed problem
    lpLP data
    lpiLPI data
    treetree data
    farkasrowaggregated row representing the proof
    farkasactmaximal activity of the proof constraint
    validdepthpointer to store the valid depth of the proof constraint
    curvarlbscurrent lower bounds of active problem variables
    curvarubscurrent upper bounds of active problem variables
    validpointer store whether the proof constraint is valid

    Definition at line 1710 of file conflict_general.c.

    References addLocalRows(), addRowToAggrRow(), SCIP_AggrRow::certificateline, checkDualFeasibility(), SCIP_Row::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getObjectiveRow(), SCIP_Row::len, SCIP_Row::local, SCIP_Lp::lpirows, SCIP_Lp::nlpirows, 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_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, and SCIP_Row::vals.

    Referenced by conflictAnalyzeLP(), and SCIPrunBoundHeuristic().

    ◆ SCIPconflictAnalyzePseudo()

    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

    Parameters
    conflictconflict analysis data
    blkmemblock memory of transformed problem
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpLP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    successpointer to store whether a conflict constraint was created, or NULL

    Definition at line 2015 of file conflict_general.c.

    References SCIP_Conflict::bdchgonlyconfqueue, SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::lpi, SCIP_Conflict::nconflictsets, SCIP_Var::nlbchginfos, SCIP_Conflict::npseudocalls, SCIP_Conflict::npseudoconfconss, SCIP_Conflict::npseudoconfliterals, SCIP_Conflict::npseudoreconvconss, SCIP_Conflict::npseudoreconvliterals, SCIP_Conflict::npseudosuccess, SCIP_Var::nubchginfos, NULL, SCIP_Prob::nvars, SCIP_Conflict::pseudoanalyzetime, SCIP_CALL, SCIP_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, and SCIP_Prob::vars.

    Referenced by applyBounding().

    ◆ SCIPconflictGetPseudoTime()

    SCIP_Real SCIPconflictGetPseudoTime ( SCIP_CONFLICT conflict)

    gets time in seconds used for analyzing pseudo solution conflicts

    Parameters
    conflictconflict analysis data

    Definition at line 2175 of file conflict_general.c.

    References NULL, SCIP_Conflict::pseudoanalyzetime, and SCIPclockGetTime().

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPseudoCalls()

    SCIP_Longint SCIPconflictGetNPseudoCalls ( SCIP_CONFLICT conflict)

    gets number of calls to pseudo solution conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 2185 of file conflict_general.c.

    References SCIP_Conflict::npseudocalls, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPseudoSuccess()

    SCIP_Longint SCIPconflictGetNPseudoSuccess ( SCIP_CONFLICT conflict)

    gets number of calls to pseudo solution conflict analysis that yield at least one conflict constraint

    Parameters
    conflictconflict analysis data

    Definition at line 2195 of file conflict_general.c.

    References SCIP_Conflict::npseudosuccess, and NULL.

    Referenced by SCIPprintConflictStatistics(), and SCIPsolveCIP().

    ◆ SCIPconflictGetNPseudoConflictConss()

    SCIP_Longint SCIPconflictGetNPseudoConflictConss ( SCIP_CONFLICT conflict)

    gets number of conflict constraints detected in pseudo solution conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 2205 of file conflict_general.c.

    References SCIP_Conflict::npseudoconfconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPseudoConflictLiterals()

    SCIP_Longint SCIPconflictGetNPseudoConflictLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in conflict constraints created in pseudo solution conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 2215 of file conflict_general.c.

    References SCIP_Conflict::npseudoconfliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPseudoReconvergenceConss()

    SCIP_Longint SCIPconflictGetNPseudoReconvergenceConss ( SCIP_CONFLICT conflict)

    gets number of reconvergence constraints detected in pseudo solution conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 2225 of file conflict_general.c.

    References SCIP_Conflict::npseudoreconvconss, and NULL.

    Referenced by SCIPgetNConflictConssFound(), and SCIPprintConflictStatistics().

    ◆ SCIPconflictGetNPseudoReconvergenceLiterals()

    SCIP_Longint SCIPconflictGetNPseudoReconvergenceLiterals ( SCIP_CONFLICT conflict)

    gets total number of literals in reconvergence constraints created in pseudo solution conflict analysis

    Parameters
    conflictconflict analysis data

    Definition at line 2235 of file conflict_general.c.

    References SCIP_Conflict::npseudoreconvliterals, and NULL.

    Referenced by SCIPprintConflictStatistics().

    ◆ conflictAnalyzeLP()

    static SCIP_RETCODE conflictAnalyzeLP ( 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  diving,
    SCIP_Bool dualproofsuccess,
    int *  iterations,
    int *  nconss,
    int *  nliterals,
    int *  nreconvconss,
    int *  nreconvliterals,
    SCIP_Bool  marklpunsolved 
    )
    static

    actually performs analysis of infeasible LP

    Parameters
    conflictconflict analysis data
    conflictstoreconflict store
    blkmemblock memory of transformed problem
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpLP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    divingare we in strong branching or diving mode?
    dualproofsuccesspointer to store success result of dual proof analysis
    iterationspointer to store the total number of LP iterations used
    nconsspointer to store the number of generated conflict constraints
    nliteralspointer to store the number of literals in generated conflict constraints
    nreconvconsspointer to store the number of generated reconvergence constraints
    nreconvliteralspointer to store the number of literals generated reconvergence constraints
    marklpunsolvedwhether LP should be marked unsolved after analysis (needed for strong branching)

    Definition at line 2246 of file conflict_general.c.

    References SCIP_Conflict::bdchgonlyconfqueue, BMSclearMemoryArray, SCIP_Stat::conflictlptime, SCIP_Conflict::conflictset, SCIP_ConflictSet::conflicttype, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpiitlim, SCIP_Lp::lpiobjlim, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Conflict::nconflictsets, SCIP_Var::nlbchginfos, SCIP_Conflict::nproofsets, SCIP_Var::nubchginfos, NULL, SCIP_Prob::nvars, 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, and SCIP_Prob::vars.

    Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), and SCIPconflictAnalyzeStrongbranch().

    ◆ 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

    Parameters
    conflictconflict analysis data
    conflictstoreconflict store
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    transprobtransformed problem
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpLP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    colLP column with at least one infeasible strong branching subproblem
    downconflictpointer to store whether a conflict constraint was created for an infeasible downwards branch, or NULL
    upconflictpointer to store whether a conflict constraint was created for an infeasible upwards branch, or NULL

    Definition at line 2573 of file conflict_general.c.

    References 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().

    ◆ conflictAnalyzeInfeasibleLP()

    static SCIP_RETCODE conflictAnalyzeInfeasibleLP ( 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 
    )
    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

    Parameters
    conflictconflict analysis data
    conflictstoreconflict store
    blkmemblock memory of transformed problem
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpLP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    successpointer to store whether a conflict constraint was created, or NULL

    Definition at line 2822 of file conflict_general.c.

    References 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().

    ◆ conflictAnalyzeBoundexceedingLP()

    static SCIP_RETCODE conflictAnalyzeBoundexceedingLP ( 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 
    )
    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

    Parameters
    conflictconflict analysis data
    conflictstoreconflict store
    blkmemblock memory of transformed problem
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpLP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    successpointer to store whether a conflict constraint was created, or NULL

    Definition at line 2899 of file conflict_general.c.

    References 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().

    ◆ 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()

    Parameters
    conflictconflict analysis data
    conflictstoreconflict store
    blkmemblock memory of transformed problem
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpLP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    successpointer to store whether a conflict constraint was created, or NULL

    Definition at line 2979 of file conflict_general.c.

    References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_ColSolVals::basisstatus, SCIP_RowSolVals::basisstatus, SCIP_Col::basisstatus, SCIP_Row::basisstatus, SCIP_Lp::cols, conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIP_LpSolVals::dualchecked, SCIP_Lp::dualchecked, SCIP_Row::dualfarkas, SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_LpSolVals::primalchecked, SCIP_Lp::primalchecked, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_ColSolVals::primsol, SCIP_Col::primsol, r, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_Lp::rows, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetLPI(), SCIPlpGetSolstat(), SCIPlpiIsPrimalInfeasible(), SCIPlpiWasSolved(), SCIPprobAllColsInLP(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, and SCIP_Lp::solved.

    Referenced by priceAndCutLoop(), SCIPsolveDiveLP(), and solveProbingLP().