Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for storing conflicts

Author
Jakob Witzig

Definition in file conflictstore.c.

#include <assert.h>
#include <string.h>
#include "scip/conflictstore.h"
#include "scip/cons.h"
#include "scip/event.h"
#include "scip/set.h"
#include "scip/tree.h"
#include "scip/misc.h"
#include "scip/prob.h"
#include "scip/reopt.h"
#include "scip/scip.h"
#include "scip/def.h"
#include "scip/cons_linear.h"
#include "scip/struct_conflictstore.h"

Go to the source code of this file.

Macros

#define CONFLICTSTORE_DUALRAYSIZE   100 /* default size of conflict store */
 
#define CONFLICTSTORE_DUALSOLSIZE   75 /* default size of conflict store */
 
#define CONFLICTSTORE_MINSIZE   2000 /* default minimal size of a dynamic conflict store */
 
#define CONFLICTSTORE_MAXSIZE   60000 /* maximal size of a dynamic conflict store (multiplied by 3) */
 
#define CONFLICTSTORE_SIZE   10000 /* default size of conflict store */
 
#define CONFLICTSTORE_SORTFREQ   20 /* frequency to resort the conflict array */
 
#define EVENTHDLR_NAME   "ConflictStore"
 
#define EVENTHDLR_DESC   "Solution event handler for conflict store."
 

Functions

static SCIP_DECL_EVENTEXEC (eventExecConflictstore)
 
static SCIP_DECL_EVENTINITSOL (eventInitsolConflictstore)
 
static SCIP_DECL_EVENTEXITSOL (eventExitsolConflictstore)
 
static SCIP_DECL_SORTPTRCOMP (compareConss)
 
static SCIP_RETCODE initConflictstore (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_PROB *transprob)
 
static SCIP_RETCODE conflictstoreEnsureMem (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, BMS_BLKMEM *blkmem, int num)
 
static void adjustStorageSize (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set)
 
static SCIP_RETCODE delPosConflict (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt, int pos, SCIP_Bool deleteconflict)
 
static SCIP_RETCODE delPosDualray (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt, int pos, SCIP_Bool deleteconflict)
 
static SCIP_RETCODE delPosDualsol (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt, int pos, SCIP_Bool deleteconflict)
 
static SCIP_RETCODE cleanDeletedAndCheckedConflicts (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt, int *ndelconfs)
 
static SCIP_RETCODE cleanDeletedAndCheckedDualrayCons (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt, int *ndelproofs)
 
static SCIP_RETCODE cleanDeletedAndCheckedDualsolCons (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt, int *ndelproofs)
 
static SCIP_RETCODE conflictstoreCleanUpStorage (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, BMS_BLKMEM *blkmem, SCIP_REOPT *reopt)
 
static SCIP_RETCODE conflictstoreAddOrigConflict (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONS *cons)
 
SCIP_RETCODE SCIPconflictstoreCreate (SCIP_CONFLICTSTORE **conflictstore, SCIP_SET *set)
 
SCIP_RETCODE SCIPconflictstoreFree (SCIP_CONFLICTSTORE **conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_REOPT *reopt)
 
SCIP_RETCODE SCIPconflictstoreClear (SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_REOPT *reopt)
 
SCIP_RETCODE SCIPconflictstoreClean (SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_REOPT *reopt)
 
SCIP_RETCODE SCIPconflictstoreAddDualraycons (SCIP_CONFLICTSTORE *conflictstore, SCIP_CONS *dualproof, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_REOPT *reopt, SCIP_Bool hasrelaxvar)
 
SCIP_RETCODE SCIPconflictstoreAddDualsolcons (SCIP_CONFLICTSTORE *conflictstore, SCIP_CONS *dualproof, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_REOPT *reopt, SCIP_Real scale, SCIP_Bool updateside, SCIP_Bool hasrelaxvar)
 
SCIP_RETCODE SCIPconflictstoreAddConflict (SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_REOPT *reopt, SCIP_CONS *cons, SCIP_CONFTYPE conftype, SCIP_Bool cutoffinvolved, SCIP_Real primalbound)
 
SCIP_RETCODE SCIPconflictstoreCleanNewIncumbent (SCIP_CONFLICTSTORE *conflictstore, SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_PROB *transprob, SCIP_REOPT *reopt, SCIP_Real cutoffbound)
 
int SCIPconflictstoreGetMaxPoolSize (SCIP_CONFLICTSTORE *conflictstore)
 
int SCIPconflictstoreGetInitPoolSize (SCIP_CONFLICTSTORE *conflictstore)
 
int SCIPconflictstoreGetNConflictsInStore (SCIP_CONFLICTSTORE *conflictstore)
 
SCIP_RETCODE SCIPconflictstoreGetConflicts (SCIP_CONFLICTSTORE *conflictstore, SCIP_CONS **conflicts, int conflictsize, int *nconflicts)
 
SCIP_RETCODE SCIPconflictstoreTransform (SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_REOPT *reopt)
 
SCIP_Real SCIPconflictstoreGetAvgNnzDualInfProofs (SCIP_CONFLICTSTORE *conflictstore)
 
int SCIPconflictstoreGetNDualInfProofs (SCIP_CONFLICTSTORE *conflictstore)
 
SCIP_Real SCIPconflictstoreGetAvgNnzDualBndProofs (SCIP_CONFLICTSTORE *conflictstore)
 
int SCIPconflictstoreGetNDualBndProofs (SCIP_CONFLICTSTORE *conflictstore)
 

Macro Definition Documentation

◆ CONFLICTSTORE_DUALRAYSIZE

#define CONFLICTSTORE_DUALRAYSIZE   100 /* default size of conflict store */

Definition at line 41 of file conflictstore.c.

Referenced by SCIPconflictstoreAddDualraycons(), and SCIPconflictstoreFree().

◆ CONFLICTSTORE_DUALSOLSIZE

#define CONFLICTSTORE_DUALSOLSIZE   75 /* default size of conflict store */

Definition at line 42 of file conflictstore.c.

Referenced by SCIPconflictstoreAddDualsolcons(), and SCIPconflictstoreFree().

◆ CONFLICTSTORE_MINSIZE

#define CONFLICTSTORE_MINSIZE   2000 /* default minimal size of a dynamic conflict store */

Definition at line 43 of file conflictstore.c.

Referenced by conflictstoreAddOrigConflict(), and initConflictstore().

◆ CONFLICTSTORE_MAXSIZE

#define CONFLICTSTORE_MAXSIZE   60000 /* maximal size of a dynamic conflict store (multiplied by 3) */

Definition at line 44 of file conflictstore.c.

Referenced by initConflictstore().

◆ CONFLICTSTORE_SIZE

#define CONFLICTSTORE_SIZE   10000 /* default size of conflict store */

Definition at line 45 of file conflictstore.c.

Referenced by conflictstoreEnsureMem().

◆ CONFLICTSTORE_SORTFREQ

#define CONFLICTSTORE_SORTFREQ   20 /* frequency to resort the conflict array */

Definition at line 46 of file conflictstore.c.

Referenced by conflictstoreCleanUpStorage().

◆ EVENTHDLR_NAME

#define EVENTHDLR_NAME   "ConflictStore"

◆ EVENTHDLR_DESC

#define EVENTHDLR_DESC   "Solution event handler for conflict store."

Definition at line 50 of file conflictstore.c.

Referenced by SCIPconflictstoreCreate().

Function Documentation

◆ SCIP_DECL_EVENTEXEC()

◆ SCIP_DECL_EVENTINITSOL()

static SCIP_DECL_EVENTINITSOL ( eventInitsolConflictstore  )
static

solving process initialization method of event handler (called when branch and bound process is about to begin)

Definition at line 72 of file conflictstore.c.

References EVENTHDLR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_OKAY, SCIPcatchEvent(), SCIPeventhdlrGetName(), and SCIPgetBoolParam().

◆ SCIP_DECL_EVENTEXITSOL()

static SCIP_DECL_EVENTEXITSOL ( eventExitsolConflictstore  )
static

solving process deinitialization method of event handler (called before branch and bound process data is freed)

Definition at line 92 of file conflictstore.c.

References EVENTHDLR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_OKAY, SCIPdropEvent(), SCIPeventhdlrGetName(), and SCIPgetBoolParam().

◆ SCIP_DECL_SORTPTRCOMP()

static SCIP_DECL_SORTPTRCOMP ( compareConss  )
static

◆ initConflictstore()

static SCIP_RETCODE initConflictstore ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_PROB transprob 
)
static

◆ conflictstoreEnsureMem()

static SCIP_RETCODE conflictstoreEnsureMem ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
BMS_BLKMEM blkmem,
int  num 
)
static

resizes conflict and primal bound arrays to be able to store at least num entries

Parameters
conflictstoreconflict store
setglobal SCIP settings
blkmemblock memory
numminimal number of slots in array

Definition at line 220 of file conflictstore.c.

References BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_ConflictStore::conflicts, SCIP_ConflictStore::conflictsize, CONFLICTSTORE_SIZE, SCIP_ConflictStore::confprimalbnds, MAX, SCIP_ConflictStore::maxstoresize, SCIP_ConflictStore::nconflicts, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIPsetInfinity(), and SCIP_ConflictStore::storesize.

Referenced by SCIPconflictstoreAddConflict().

◆ adjustStorageSize()

static void adjustStorageSize ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set 
)
static
Parameters
conflictstoreconflict store
setglobal SCIP settings

Definition at line 281 of file conflictstore.c.

References SCIP_ConflictStore::maxstoresize, SCIP_ConflictStore::nconflicts, NULL, SCIP_Real, and SCIP_ConflictStore::storesize.

Referenced by conflictstoreCleanUpStorage().

◆ delPosConflict()

static SCIP_RETCODE delPosConflict ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt,
int  pos,
SCIP_Bool  deleteconflict 
)
static
Parameters
conflictstoreconflict store
setglobal SCIP settings
statdynamic SCIP statistics
transprobtransformed problem, or NULL if delete = FALSE
blkmemblock memory
reoptreoptimization data
posposition to remove
deleteconflictshould the conflict be deleted?

Definition at line 302 of file conflictstore.c.

References SCIP_ConflictStore::conflicts, SCIP_ConflictStore::confprimalbnds, SCIP_ConflictStore::ncbconflicts, SCIP_ConflictStore::nconflicts, NULL, REALABS, SCIP_CALL, SCIP_LOCKTYPE_CONFLICT, SCIP_OKAY, SCIPconsAddLocks(), SCIPconsDelete(), SCIPconsGetAge(), SCIPconsGetName(), SCIPconsIsDeleted(), SCIPconsRelease(), SCIPsetDebugMsg, SCIPsetInfinity(), and SCIPsetIsInfinity().

Referenced by cleanDeletedAndCheckedConflicts(), conflictstoreCleanUpStorage(), SCIPconflictstoreCleanNewIncumbent(), and SCIPconflictstoreClear().

◆ delPosDualray()

static SCIP_RETCODE delPosDualray ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt,
int  pos,
SCIP_Bool  deleteconflict 
)
static
Parameters
conflictstoreconflict store
setglobal SCIP settings
statdynamic SCIP statistics
transprobtransformed problem, or NULL if delete = FALSE
blkmemblock memory
reoptreoptimization data
posposition to remove
deleteconflictshould the dual ray be deleted?

Definition at line 361 of file conflictstore.c.

References SCIP_ConflictStore::drayrelaxonly, SCIP_ConflictStore::dualrayconfs, SCIP_ConflictStore::ndualrayconfs, SCIP_ConflictStore::nnzdualrays, NULL, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_CONFLICT, SCIP_OKAY, SCIPconsAddLocks(), SCIPconsDelete(), SCIPconsGetAge(), SCIPconsGetNVars(), SCIPconsIsDeleted(), SCIPconsRelease(), SCIPsetDebugMsg, and TRUE.

Referenced by cleanDeletedAndCheckedDualrayCons(), SCIPconflictstoreAddDualraycons(), SCIPconflictstoreClean(), and SCIPconflictstoreClear().

◆ delPosDualsol()

static SCIP_RETCODE delPosDualsol ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt,
int  pos,
SCIP_Bool  deleteconflict 
)
static

◆ cleanDeletedAndCheckedConflicts()

static SCIP_RETCODE cleanDeletedAndCheckedConflicts ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt,
int *  ndelconfs 
)
static

removes all deleted conflicts from the storage

Parameters
conflictstoreconflict store
setglobal SCIP settings
statdynamic SCIP statistics
blkmemblock memory
reoptreoptimization data
ndelconfspointer to store the number of deleted conflicts

Definition at line 492 of file conflictstore.c.

References SCIP_ConflictStore::conflicts, delPosConflict(), FALSE, SCIP_ConflictStore::nconflicts, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsIsChecked(), SCIPconsIsDeleted(), and SCIPsetDebugMsg.

Referenced by conflictstoreCleanUpStorage(), and SCIPconflictstoreClean().

◆ cleanDeletedAndCheckedDualrayCons()

static SCIP_RETCODE cleanDeletedAndCheckedDualrayCons ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt,
int *  ndelproofs 
)
static

removes all deleted dual proofs of infeasible LP relaxations from the storage

Parameters
conflictstoreconflict store
setglobal SCIP settings
statdynamic SCIP statistics
blkmemblock memory
reoptreoptimization data
ndelproofspointer to store the number of deleted conflicts

Definition at line 528 of file conflictstore.c.

References delPosDualray(), SCIP_ConflictStore::dualrayconfs, FALSE, SCIP_ConflictStore::ndualrayconfs, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsIsChecked(), SCIPconsIsDeleted(), and SCIPsetDebugMsg.

Referenced by SCIPconflictstoreAddDualraycons(), and SCIPconflictstoreClean().

◆ cleanDeletedAndCheckedDualsolCons()

static SCIP_RETCODE cleanDeletedAndCheckedDualsolCons ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt,
int *  ndelproofs 
)
static

removes all deleted dual proofs of bound exceeding LP relaxations from the storage

Parameters
conflictstoreconflict store
setglobal SCIP settings
statdynamic SCIP statistics
blkmemblock memory
reoptreoptimization data
ndelproofspointer to store the number of deleted conflicts

Definition at line 566 of file conflictstore.c.

References delPosDualsol(), SCIP_ConflictStore::dualsolconfs, FALSE, SCIP_ConflictStore::ndualrayconfs, SCIP_ConflictStore::ndualsolconfs, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsIsChecked(), SCIPconsIsDeleted(), and SCIPsetDebugMsg.

Referenced by SCIPconflictstoreAddDualsolcons(), and SCIPconflictstoreClean().

◆ conflictstoreCleanUpStorage()

static SCIP_RETCODE conflictstoreCleanUpStorage ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
BMS_BLKMEM blkmem,
SCIP_REOPT reopt 
)
static

◆ conflictstoreAddOrigConflict()

static SCIP_RETCODE conflictstoreAddOrigConflict ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
BMS_BLKMEM blkmem,
SCIP_CONS cons 
)
static

adds an original conflict constraint to the store

Note
the constraint will be only transfered to the storage of the transformed problem after calling SCIPconflictstoreTransform()
Parameters
conflictstoreconflict store
setglobal SCIP settings
blkmemblock memory
consconflict constraint

Definition at line 705 of file conflictstore.c.

References BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, CONFLICTSTORE_MINSIZE, SCIP_ConflictStore::norigconfs, NULL, SCIP_ConflictStore::origconflictsize, SCIP_ConflictStore::origconfs, SCIP_ALLOC, SCIP_OKAY, SCIPconsCapture(), and SCIPsetCalcMemGrowSize().

Referenced by SCIPconflictstoreAddConflict().

◆ SCIPconflictstoreCreate()

SCIP_RETCODE SCIPconflictstoreCreate ( SCIP_CONFLICTSTORE **  conflictstore,
SCIP_SET set 
)

creates conflict store

Parameters
conflictstorepointer to store conflict store
setglobal SCIP settings

Definition at line 736 of file conflictstore.c.

References BMSallocMemory, EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPeventhdlrCreate(), SCIPsetFindEventhdlr(), and SCIPsetIncludeEventhdlr().

Referenced by copyProb(), and SCIPcreateProb().

◆ SCIPconflictstoreFree()

SCIP_RETCODE SCIPconflictstoreFree ( SCIP_CONFLICTSTORE **  conflictstore,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_REOPT reopt 
)

frees conflict store

Parameters
conflictstorepointer to store conflict store
blkmemblock memory
setglobal SCIP settings
statdynamic SCIP statistics
reoptreoptimization data

Definition at line 786 of file conflictstore.c.

References BMSfreeBlockMemoryArrayNull, BMSfreeMemoryNull, CONFLICTSTORE_DUALRAYSIZE, CONFLICTSTORE_DUALSOLSIZE, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconflictstoreClear().

Referenced by SCIPfreeProb().

◆ SCIPconflictstoreClear()

SCIP_RETCODE SCIPconflictstoreClear ( SCIP_CONFLICTSTORE conflictstore,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_REOPT reopt 
)

◆ SCIPconflictstoreClean()

SCIP_RETCODE SCIPconflictstoreClean ( SCIP_CONFLICTSTORE conflictstore,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
SCIP_REOPT reopt 
)

cleans up conflict store

Parameters
conflictstoreconflict store
blkmemblock memory
setglobal SCIP settings
statdynamic SCIP statistics
transprobtransformed problem
reoptreoptimization data

Definition at line 879 of file conflictstore.c.

References cleanDeletedAndCheckedConflicts(), cleanDeletedAndCheckedDualrayCons(), cleanDeletedAndCheckedDualsolCons(), delPosDualray(), delPosDualsol(), SCIP_ConflictStore::drayrelaxonly, SCIP_ConflictStore::dsolrelaxonly, FALSE, SCIP_ConflictStore::nconflicts, SCIP_ConflictStore::ndualrayconfs, SCIP_ConflictStore::ndualsolconfs, NULL, SCIP_CALL, SCIP_OKAY, SCIPisInRestart(), SCIPsetDebugMsg, TRUE, and SCIP_ConflictStore::updateside.

Referenced by freeSolve().

◆ SCIPconflictstoreAddDualraycons()

SCIP_RETCODE SCIPconflictstoreAddDualraycons ( SCIP_CONFLICTSTORE conflictstore,
SCIP_CONS dualproof,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
SCIP_REOPT reopt,
SCIP_Bool  hasrelaxvar 
)

adds a constraint to the pool of proof constraints based on dual rays

Note
this methods captures the constraint
Parameters
conflictstoreconflict store
dualproofconstraint based on a dual ray
blkmemblock memory
setglobal SCIP settings
statdynamic SCIP statistics
transprobtransformed problem
reoptreoptimization data
hasrelaxvardoes the dual proof contain at least one variable that exists in the current relaxation only?

Definition at line 952 of file conflictstore.c.

References BMSallocBlockMemoryArray, cleanDeletedAndCheckedDualrayCons(), CONFLICTSTORE_DUALRAYSIZE, delPosDualray(), SCIP_ConflictStore::drayrelaxonly, SCIP_ConflictStore::dualrayconfs, SCIP_ConflictStore::ndualrayconfs, SCIP_ConflictStore::nnzdualrays, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_CONFLICT, SCIP_OKAY, SCIPconsAddLocks(), SCIPconsCapture(), SCIPconsDelete(), SCIPconsGetAge(), SCIPconsGetNVars(), SCIPconsIsLocal(), SCIPconsMarkConflict(), SCIPsetIsGE(), SCIPsortPtrBool(), and TRUE.

Referenced by createAndAddProofcons().

◆ SCIPconflictstoreAddDualsolcons()

SCIP_RETCODE SCIPconflictstoreAddDualsolcons ( SCIP_CONFLICTSTORE conflictstore,
SCIP_CONS dualproof,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB transprob,
SCIP_REOPT reopt,
SCIP_Real  scale,
SCIP_Bool  updateside,
SCIP_Bool  hasrelaxvar 
)

adds a constraint to the pool of proof constraints based on dual solutions

Note
this methods captures the constraint
Parameters
conflictstoreconflict store
dualproofconstraint based on a dual solution
blkmemblock memory
setglobal SCIP settings
statdynamic SCIP statistics
transprobtransformed problem
reoptreoptimization data
scalescaling factor that needs to be considered when updating the side
updatesideshould the side be updated if a new incumbent is found
hasrelaxvardoes the dual proof contain at least one variable that exists in the current relaxation only?

Definition at line 1039 of file conflictstore.c.

References BMSallocBlockMemoryArray, cleanDeletedAndCheckedDualsolCons(), CONFLICTSTORE_DUALSOLSIZE, delPosDualsol(), SCIP_ConflictStore::dsolrelaxonly, SCIP_ConflictStore::dualprimalbnds, SCIP_ConflictStore::dualsolconfs, SCIP_ConflictStore::ndualsolconfs, SCIP_ConflictStore::nnzdualsols, NULL, SCIP_ConflictStore::scalefactors, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_CONFLICT, SCIP_OKAY, SCIPconsAddLocks(), SCIPconsCapture(), SCIPconsDelete(), SCIPconsGetAge(), SCIPconsGetNVars(), SCIPconsIsLocal(), SCIPconsMarkConflict(), SCIPgetCutoffbound(), SCIPsetIsGE(), SCIPsetSumepsilon(), SCIPsortPtrRealRealBoolBool(), TRUE, and SCIP_ConflictStore::updateside.

Referenced by createAndAddProofcons().

◆ SCIPconflictstoreAddConflict()

SCIP_RETCODE SCIPconflictstoreAddConflict ( SCIP_CONFLICTSTORE conflictstore,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_TREE tree,
SCIP_PROB transprob,
SCIP_REOPT reopt,
SCIP_CONS cons,
SCIP_CONFTYPE  conftype,
SCIP_Bool  cutoffinvolved,
SCIP_Real  primalbound 
)

adds a conflict to the conflict store

Note
this method captures the constraint
Parameters
conflictstoreconflict store
blkmemblock memory
setglobal SCIP settings
statdynamic SCIP statistics
treebranch and bound tree (or NULL for an original constraint)
transprobtransformed problem (or NULL for an original constraint)
reoptreoptimization data
consconstraint representing the conflict
conftypetype of the conflict
cutoffinvolvedis a cutoff bound involved in this conflict
primalboundprimal bound the conflict depend on (or -SCIPinfinity)

Definition at line 1135 of file conflictstore.c.

References SCIP_ConflictStore::conflicts, SCIP_ConflictStore::conflictsize, conflictstoreAddOrigConflict(), conflictstoreCleanUpStorage(), conflictstoreEnsureMem(), SCIP_ConflictStore::confprimalbnds, initConflictstore(), SCIP_ConflictStore::initstoresize, SCIP_ConflictStore::lastnodenum, SCIP_ConflictStore::maxstoresize, SCIP_ConflictStore::ncbconflicts, SCIP_ConflictStore::nconflicts, SCIP_ConflictStore::nconflictsfound, NULL, REALABS, SCIP_CALL, SCIP_CONFTYPE_BNDEXCEEDING, SCIP_LOCKTYPE_CONFLICT, SCIP_Longint, SCIP_OKAY, SCIP_STAGE_PROBLEM, SCIPconsAddLocks(), SCIPconsCapture(), SCIPconsGetName(), SCIPconsIsOriginal(), SCIPconsMarkConflict(), SCIPnodeGetNumber(), SCIPsetDebugMsg, SCIPsetGetStage(), SCIPsetIsInfinity(), and SCIPtreeGetFocusNode().

Referenced by SCIPaddConflict(), SCIPconflictstoreTransform(), and SCIPcopyConss().

◆ SCIPconflictstoreCleanNewIncumbent()

SCIP_RETCODE SCIPconflictstoreCleanNewIncumbent ( SCIP_CONFLICTSTORE conflictstore,
SCIP_SET set,
SCIP_STAT stat,
BMS_BLKMEM blkmem,
SCIP_PROB transprob,
SCIP_REOPT reopt,
SCIP_Real  cutoffbound 
)

◆ SCIPconflictstoreGetMaxPoolSize()

int SCIPconflictstoreGetMaxPoolSize ( SCIP_CONFLICTSTORE conflictstore)

returns the maximal size of the conflict pool

Parameters
conflictstoreconflict store

Definition at line 1399 of file conflictstore.c.

References SCIP_ConflictStore::maxstoresize, NULL, and SCIP_ConflictStore::storesize.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictstoreGetInitPoolSize()

int SCIPconflictstoreGetInitPoolSize ( SCIP_CONFLICTSTORE conflictstore)

returns the initial size of the conflict pool

Parameters
conflictstoreconflict store

Definition at line 1409 of file conflictstore.c.

References SCIP_ConflictStore::initstoresize, and NULL.

Referenced by SCIPprintConflictStatistics().

◆ SCIPconflictstoreGetNConflictsInStore()

int SCIPconflictstoreGetNConflictsInStore ( SCIP_CONFLICTSTORE conflictstore)

returns the number of stored conflicts on the conflict pool

Note
the number of active conflicts can be less
Parameters
conflictstoreconflict store

Definition at line 1422 of file conflictstore.c.

References SCIP_ConflictStore::nconflicts, and NULL.

Referenced by SCIPcopyConflicts().

◆ SCIPconflictstoreGetConflicts()

SCIP_RETCODE SCIPconflictstoreGetConflicts ( SCIP_CONFLICTSTORE conflictstore,
SCIP_CONS **  conflicts,
int  conflictsize,
int *  nconflicts 
)

returns all active conflicts stored in the conflict store

Parameters
conflictstoreconflict store
conflictsarray to store conflicts
conflictsizesize of the conflict array
nconflictspointer to store the number of conflicts

Definition at line 1432 of file conflictstore.c.

References SCIP_ConflictStore::conflicts, SCIP_ConflictStore::nconflicts, NULL, SCIP_OKAY, SCIPconsIsActive(), and SCIPconsIsDeleted().

Referenced by SCIPcopyConflicts().

◆ SCIPconflictstoreTransform()

SCIP_RETCODE SCIPconflictstoreTransform ( SCIP_CONFLICTSTORE conflictstore,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_TREE tree,
SCIP_PROB transprob,
SCIP_REOPT reopt 
)

transformes all original conflicts into transformed conflicts

Parameters
conflictstoreconflict store
blkmemblock memory
setglobal SCIP settings
statdynamic SCIP statistics
treebranch and bound tree
transprobtransformed problem
reoptreoptimization data

Definition at line 1476 of file conflictstore.c.

References FALSE, SCIP_ConflictStore::norigconfs, NULL, SCIP_ConflictStore::origconfs, SCIP_CALL, SCIP_CONFTYPE_UNKNOWN, SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconflictstoreAddConflict(), SCIPconsGetTransformed(), SCIPconsIsOriginal(), SCIPconsRelease(), SCIPsetDebugMsg, SCIPsetGetStage(), and SCIPsetInfinity().

Referenced by SCIPprobTransform().

◆ SCIPconflictstoreGetAvgNnzDualInfProofs()

SCIP_Real SCIPconflictstoreGetAvgNnzDualInfProofs ( SCIP_CONFLICTSTORE conflictstore)

returns the average number of non-zeros over all stored dual ray constraints

Parameters
conflictstoreconflict store

Definition at line 1527 of file conflictstore.c.

References SCIP_ConflictStore::ndualrayconfs, SCIP_ConflictStore::nnzdualrays, NULL, and SCIP_Real.

Referenced by createAndAddProofcons().

◆ SCIPconflictstoreGetNDualInfProofs()

int SCIPconflictstoreGetNDualInfProofs ( SCIP_CONFLICTSTORE conflictstore)

returns the number of all stored dual ray constraints

Parameters
conflictstoreconflict store

Definition at line 1540 of file conflictstore.c.

References SCIP_ConflictStore::ndualrayconfs, and NULL.

Referenced by createAndAddProofcons().

◆ SCIPconflictstoreGetAvgNnzDualBndProofs()

SCIP_Real SCIPconflictstoreGetAvgNnzDualBndProofs ( SCIP_CONFLICTSTORE conflictstore)

returns the average number of non-zeros over all stored boundexceeding proofs

Parameters
conflictstoreconflict store

Definition at line 1550 of file conflictstore.c.

References SCIP_ConflictStore::ndualsolconfs, SCIP_ConflictStore::nnzdualsols, NULL, and SCIP_Real.

Referenced by createAndAddProofcons().

◆ SCIPconflictstoreGetNDualBndProofs()

int SCIPconflictstoreGetNDualBndProofs ( SCIP_CONFLICTSTORE conflictstore)

returns the number of all stored boundexceeding proofs

Parameters
conflictstoreconflict store

Definition at line 1564 of file conflictstore.c.

References SCIP_ConflictStore::ndualsolconfs, and NULL.

Referenced by createAndAddProofcons().