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(), and takeCut().
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 takeCut(). returns the ratio of LPs where the row belonging to this cut was active in an LP solution, i.e. where the age of its row has not been increased
Definition at line 383 of file cutpool.c. References NULL, SCIP_Cut::row, SCIP_Longint, SCIP_Real, SCIProwGetActiveLPCount(), and SCIProwGetNLPsAfterCreation(). Referenced by takeCut().
creates cut pool
Definition at line 404 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 441 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 467 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 493 of file cutpool.c. References SCIP_Cutpool::hashtable, NULL, SCIP_CALL, SCIP_OKAY, SCIPcutpoolAddNewRow(), SCIPhashtableRetrieve(), SCIProwGetMaxidx(), and SCIP_Row::validminmaxidx. Referenced by SCIPaddDelayedPoolCut(), SCIPaddPoolCut(), and SCIPaddRowCutpool().
adds row to cut pool and captures it; doesn't check for multiple cuts
Definition at line 517 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 572 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 641 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 670 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 844 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 854 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 864 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 874 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 884 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 894 of file cutpool.c. References SCIP_Cutpool::ncutsfound, and NULL. Referenced by printSeparatorStatistics(). |