All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cutpool.c File Reference Detailed Descriptionmethods for storing cuts in a cut pool Definition in file cutpool.c. #include <assert.h> #include "scip/def.h" #include "scip/set.h" #include "scip/stat.h" #include "scip/clock.h" #include "scip/lp.h" #include "scip/cons.h" #include "scip/sepa.h" #include "scip/sepastore.h" #include "scip/cutpool.h" #include "scip/pub_message.h" #include "scip/pub_misc.h" #include "scip/struct_cutpool.h" Go to the source code of this file. Function Documentation
gets the hash key of a cut Definition at line 51 of file cutpool.c. References NULL, and SCIP_Cut::row.
returns TRUE iff both cuts are identical Definition at line 65 of file cutpool.c. References SCIP_Row::cols, FALSE, SCIP_Col::index, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::lpcolssorted, SCIP_Row::maxidx, SCIP_Row::maxval, SCIP_Row::minidx, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nummaxval, SCIP_Row::nunlinked, REALABS, SCIP_Row::rhs, SCIP_DEFAULT_EPSILON, SCIP_DEFAULT_SUMEPSILON, SCIProwSort(), SCIP_Row::sqrnorm, SCIP_Row::sumnorm, TRUE, SCIP_Row::validminmaxidx, and SCIP_Row::vals.
Definition at line 233 of file cutpool.c. References SCIP_Row::len, SCIP_Row::maxidx, SCIP_Row::minidx, NULL, SCIP_Row::nummaxval, SCIP_Real, SCIProwGetMaxval(), and SCIP_Row::validminmaxidx.
resizes cuts array to be able to store at least num entries
Definition at line 269 of file cutpool.c. References BMSreallocMemoryArray, SCIP_Cutpool::cuts, SCIP_Cutpool::cutssize, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by SCIPcutpoolAddNewRow().
creates a cut and captures the row
Definition at line 299 of file cutpool.c. References SCIP_Row::age, BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIProwCapture(). Referenced by SCIPcutpoolAddNewRow().
frees a cut and releases the row
Definition at line 325 of file cutpool.c. References BMSfreeBlockMemory, NULL, SCIP_CALL, SCIP_OKAY, and SCIProwRelease(). Referenced by cutpoolDelCut(), and SCIPcutpoolClear(). returns whether the cut's age exceeds the age limit
Definition at line 348 of file cutpool.c. References SCIP_Cut::age, and NULL. Referenced by SCIPcutpoolSeparate(). gets the row of the cut
Definition at line 359 of file cutpool.c. References NULL, and SCIP_Cut::row. Referenced by copyCuts().
gets the age of the cut: the number of consecutive cut pool separation rounds where the cut was neither in the LP nor violated
Definition at line 369 of file cutpool.c. References SCIP_Cut::age, and NULL. Referenced by copyCuts().
creates cut pool
Definition at line 385 of file cutpool.c. References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_HASHSIZE_CUTPOOLS, SCIP_HASHSIZE_CUTPOOLS_SMALL, SCIP_OKAY, SCIPclockCreate(), and SCIPhashtableCreate(). Referenced by initSolve(), and SCIPcreateCutpool().
frees cut pool
Definition at line 422 of file cutpool.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockFree(), SCIPcutpoolClear(), and SCIPhashtableFree(). Referenced by freeSolve(), and SCIPfreeCutpool().
removes all rows from the cut pool
Definition at line 448 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 freeSolve(), and SCIPcutpoolFree().
if not already existing, adds row to cut pool and captures it
Definition at line 474 of file cutpool.c. References SCIP_Cutpool::hashtable, NULL, SCIP_CALL, SCIP_OKAY, SCIPcutpoolAddNewRow(), and SCIPhashtableRetrieve(). Referenced by SCIPaddDelayedPoolCut(), SCIPaddPoolCut(), and SCIPaddRowCutpool().
adds row to cut pool and captures it; doesn't check for multiple cuts
Definition at line 494 of file cutpool.c. References cutCreate(), cutpoolEnsureCutsMem(), SCIP_Cutpool::cuts, SCIP_Cutpool::globalcutpool, SCIP_Cutpool::hashtable, SCIP_Row::inglobalcutpool, MAX, SCIP_Cutpool::maxncuts, SCIP_Cutpool::ncuts, SCIP_Cutpool::nremovablecuts, NULL, SCIP_Cut::pos, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPhashtableInsert(), SCIProwGetMaxidx(), SCIProwGetName(), SCIProwIsLocal(), SCIProwIsModifiable(), SCIProwIsRemovable(), SCIProwLock(), TRUE, and SCIP_Row::validminmaxidx. Referenced by SCIPaddNewRowCutpool(), and SCIPcutpoolAddRow().
removes the cut from the cut pool
Definition at line 549 of file cutpool.c. References cutFree(), SCIP_Cutpool::cuts, FALSE, SCIP_Cutpool::firstunprocessed, SCIP_Cutpool::firstunprocessedsol, SCIP_Cutpool::globalcutpool, SCIP_Cutpool::hashtable, SCIP_Row::inglobalcutpool, SCIP_Stat::lpcount, MIN, SCIP_Cutpool::ncuts, SCIP_Cutpool::nremovablecuts, NULL, SCIP_Cut::pos, SCIP_Cut::processedlp, SCIP_Cutpool::processedlp, SCIP_Cut::processedlpsol, SCIP_Cutpool::processedlpsol, SCIP_Cut::row, SCIP_CALL, SCIP_OKAY, SCIPhashtableExists(), SCIPhashtableRemove(), SCIProwIsRemovable(), and SCIProwUnlock(). Referenced by SCIPcutpoolDelRow(), and SCIPcutpoolSeparate().
removes the LP row from the cut pool
Definition at line 618 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().
separates cuts of the cut pool
Definition at line 647 of file cutpool.c. References SCIP_Cut::age, SCIP_Cutpool::agelimit, cutIsAged(), cutpoolDelCut(), SCIP_Cutpool::cuts, FALSE, SCIP_Cutpool::firstunprocessed, SCIP_Cutpool::firstunprocessedsol, SCIP_Stat::lpcount, SCIP_Cutpool::ncalls, SCIP_Cutpool::ncuts, SCIP_Cutpool::ncutsfound, SCIP_Cutpool::nremovablecuts, NULL, SCIP_Cutpool::poolclock, SCIP_Cut::pos, SCIP_Cut::processedlp, SCIP_Cutpool::processedlp, SCIP_Cut::processedlpsol, SCIP_Cutpool::processedlpsol, SCIP_Cut::row, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_Longint, SCIP_OKAY, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPconshdlrIncNCutsFound(), SCIPdebugMessage, SCIProwGetLPFeasibility(), SCIProwGetName(), SCIProwGetNNonz(), SCIProwGetOriginCons(), SCIProwGetOriginSepa(), SCIProwGetSolFeasibility(), SCIProwIsInLP(), SCIProwIsLPEfficacious(), SCIProwIsModifiable(), SCIProwIsSolEfficacious(), SCIPsepaIncNCutsFound(), SCIPsepaIncNCutsFoundAtNode(), SCIPsepastoreAddCut(), SCIPsepastoreGetNCuts(), and TRUE. Referenced by cutpoolSeparate(), SCIPseparateCutpool(), and SCIPseparateSolCutpool().
gets array of cuts in the cut pool
Definition at line 821 of file cutpool.c. References SCIP_Cutpool::cuts, and NULL. Referenced by SCIPgetDelayedPoolCuts(), and SCIPgetPoolCuts().
gets number of cuts in the cut pool
Definition at line 831 of file cutpool.c. References SCIP_Cutpool::ncuts, and NULL. Referenced by SCIPgetNDelayedPoolCuts(), and SCIPgetNPoolCuts().
gets maximum number of cuts that were stored in the cut pool at the same time
Definition at line 841 of file cutpool.c. References SCIP_Cutpool::maxncuts, and NULL. Referenced by printSeparatorStatistics().
gets time in seconds used for separating cuts from the pool
Definition at line 851 of file cutpool.c. References NULL, SCIP_Cutpool::poolclock, and SCIPclockGetTime(). Referenced by printSeparatorStatistics().
get number of times, the cut pool was separated
Definition at line 861 of file cutpool.c. References SCIP_Cutpool::ncalls, and NULL. Referenced by printSeparatorStatistics().
get total number of cuts that were separated from the cut pool
Definition at line 871 of file cutpool.c. References SCIP_Cutpool::ncutsfound, and NULL. Referenced by printSeparatorStatistics(). |