Scippy

SCIP

Solving Constraint Integer Programs

cutpool.h File Reference

Detailed Description

internal methods for storing cuts in a cut pool

Author
Tobias Achterberg

Definition in file cutpool.h.

#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_lp.h"
#include "scip/type_sepastore.h"
#include "scip/type_cutpool.h"
#include "scip/pub_cutpool.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPcutpoolCreate (SCIP_CUTPOOL **cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, int agelimit, SCIP_Bool globalcutpool)
 
SCIP_RETCODE SCIPcutpoolFree (SCIP_CUTPOOL **cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
 
SCIP_RETCODE SCIPcutpoolClear (SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
 
SCIP_Bool SCIPcutpoolIsCutNew (SCIP_CUTPOOL *cutpool, SCIP_SET *set, SCIP_ROW *row)
 
SCIP_RETCODE SCIPcutpoolAddRow (SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_ROW *row)
 
SCIP_RETCODE SCIPcutpoolAddNewRow (SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_ROW *row)
 
SCIP_RETCODE SCIPcutpoolDelRow (SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_ROW *row)
 
SCIP_RETCODE SCIPcutpoolSeparate (SCIP_CUTPOOL *cutpool, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp, SCIP_SEPASTORE *sepastore, SCIP_SOL *sol, SCIP_Bool cutpoolisdelayed, SCIP_Bool root, SCIP_RESULT *result)
 

Function Documentation

◆ SCIPcutpoolCreate()

SCIP_RETCODE SCIPcutpoolCreate ( SCIP_CUTPOOL **  cutpool,
BMS_BLKMEM blkmem,
SCIP_SET set,
int  agelimit,
SCIP_Bool  globalcutpool 
)

creates cut pool

Parameters
cutpoolpointer to store cut pool
blkmemblock memory
setglobal SCIP settings
agelimitmaximum age a cut can reach before it is deleted from the pool
globalcutpoolis this the global cut pool of SCIP?

Definition at line 417 of file cutpool.c.

References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_HASHSIZE_CUTPOOLS, SCIP_HASHSIZE_CUTPOOLS_SMALL, SCIP_INVALID, SCIP_OKAY, SCIPclockCreate(), and SCIPhashtableCreate().

Referenced by initSolve(), and SCIPcreateCutpool().

◆ SCIPcutpoolFree()

SCIP_RETCODE SCIPcutpoolFree ( SCIP_CUTPOOL **  cutpool,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_LP lp 
)

frees cut pool

Parameters
cutpoolpointer to store cut pool
blkmemblock memory
setglobal SCIP settings
lpcurrent LP data

Definition at line 456 of file cutpool.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockFree(), SCIPcutpoolClear(), and SCIPhashtableFree().

Referenced by freeReoptSolve(), freeSolve(), and SCIPfreeCutpool().

◆ SCIPcutpoolClear()

SCIP_RETCODE SCIPcutpoolClear ( SCIP_CUTPOOL cutpool,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_LP lp 
)

removes all rows from the cut pool

Parameters
cutpoolcut pool
blkmemblock memory
setglobal SCIP settings
lpcurrent LP data

Definition at line 482 of file cutpool.c.

References cutFree(), SCIP_Cutpool::cuts, FALSE, SCIP_Cutpool::globalcutpool, SCIP_Row::inglobalcutpool, SCIP_Cutpool::ncuts, SCIP_Cutpool::nremovablecuts, NULL, SCIP_Cut::row, SCIP_CALL, SCIP_OKAY, and SCIProwUnlock().

Referenced by freeReoptSolve(), freeSolve(), and SCIPcutpoolFree().

◆ SCIPcutpoolIsCutNew()

SCIP_Bool SCIPcutpoolIsCutNew ( SCIP_CUTPOOL cutpool,
SCIP_SET set,
SCIP_ROW row 
)

checks if cut is already existing

Parameters
cutpoolcut pool
setglobal SCIP settings
rowcutting plane to add

Definition at line 583 of file cutpool.c.

References SCIP_Row::constant, FALSE, SCIP_Cutpool::hashtable, SCIP_Row::len, SCIP_Row::lhs, NULL, SCIP_Row::rhs, SCIP_Cut::row, SCIP_Real, SCIPhashtableRetrieve(), SCIProwGetMaxval(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsInfinity(), and TRUE.

Referenced by SCIPisCutNew().

◆ SCIPcutpoolAddRow()

SCIP_RETCODE SCIPcutpoolAddRow ( SCIP_CUTPOOL cutpool,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp,
SCIP_ROW row 
)

if not already existing, adds row to cut pool and captures it

Parameters
cutpoolcut pool
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
lpcurrent LP data
rowcutting plane to add

Definition at line 646 of file cutpool.c.

References SCIP_Row::constant, cutpoolDelCut(), SCIP_Cutpool::hashtable, SCIP_Row::len, SCIP_Row::lhs, NULL, SCIP_Row::rhs, SCIP_Cut::row, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcutpoolAddNewRow(), SCIPcutpoolAddRow(), SCIPhashtableRetrieve(), SCIProwGetMaxval(), SCIPsetIsFeasLT(), and SCIPsetIsInfinity().

Referenced by SCIPaddDelayedPoolCut(), SCIPaddPoolCut(), SCIPaddRowCutpool(), SCIPcutpoolAddRow(), and SCIPreoptApplyCuts().

◆ SCIPcutpoolAddNewRow()

◆ SCIPcutpoolDelRow()

SCIP_RETCODE SCIPcutpoolDelRow ( SCIP_CUTPOOL cutpool,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp,
SCIP_ROW row 
)

removes the LP row from the cut pool

Parameters
cutpoolcut pool
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
lpcurrent LP data
rowrow to remove

Definition at line 785 of file cutpool.c.

References cutpoolDelCut(), SCIP_Cutpool::hashtable, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPhashtableRetrieve(), and SCIProwGetName().

Referenced by SCIPdelDelayedPoolCut(), SCIPdelPoolCut(), and SCIPdelRowCutpool().

◆ SCIPcutpoolSeparate()

SCIP_RETCODE SCIPcutpoolSeparate ( SCIP_CUTPOOL cutpool,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
SCIP_LP lp,
SCIP_SEPASTORE sepastore,
SCIP_SOL sol,
SCIP_Bool  cutpoolisdelayed,
SCIP_Bool  root,
SCIP_RESULT result 
)

separates cuts of the cut pool

Parameters
cutpoolcut pool
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
eventqueueevent queue
eventfilterevent filter for global events
lpcurrent LP data
sepastoreseparation storage
solsolution to be separated (or NULL for LP-solution)
cutpoolisdelayedis the cutpool delayed (count cuts found)?
rootare we at the root node?
resultpointer to store the result of the separation call

Definition at line 814 of file cutpool.c.

References SCIP_Cut::age, SCIP_Stat::bestefficacy, cutIsAged(), cutpoolDelCut(), FALSE, SCIP_Cutpool::firstunprocessed, SCIP_Cutpool::firstunprocessedsol, SCIP_Stat::lpcount, MAX, MIN, SCIP_Stat::minefficacyfac, SCIP_Cutpool::ncalls, SCIP_Stat::ncutpoolfails, SCIP_Cutpool::ncuts, SCIP_Cutpool::nremovablecuts, NULL, SCIP_Cut::pos, SCIP_Cut::processedlp, SCIP_Cutpool::processedlp, SCIP_Cutpool::processedlpefficacy, SCIP_Cut::processedlpsol, SCIP_Cutpool::processedlpsol, SCIP_Cutpool::processedlpsolefficacy, SCIP_Cut::row, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPconshdlrIncNCutsFound(), SCIProwGetLPEfficacy(), SCIProwGetLPFeasibility(), SCIProwGetName(), SCIProwGetNNonz(), SCIProwGetOriginCons(), SCIProwGetOriginSepa(), SCIProwGetSolEfficacy(), SCIProwGetSolFeasibility(), SCIProwIsInLP(), SCIProwIsModifiable(), SCIPsepaIncNCutsFound(), SCIPsepaIncNCutsFoundAtNode(), SCIPsepastoreAddCut(), SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIPsetGetSepaMaxcuts(), SCIPsetIsFeasPositive(), and TRUE.

Referenced by cutpoolSeparate(), SCIPseparateCutpool(), and SCIPseparateSolCutpool().