A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://scip.zib.de/doc/html/group__PublicCutMethods.php below:

SCIP Doxygen Documentation: Cuts and Cutpools

common methods used to manipulate, generate, and strengthen cuts and to organize the cutpool

SCIP_Bool  SCIPcutsTightenCoefficients (SCIP *scip, SCIP_Bool cutislocal, SCIP_Real *cutcoefs, SCIP_Real *cutrhs, int *cutinds, int *cutnnz, int *nchgcoefs)   SCIP_RETCODE  SCIPaggrRowCreate (SCIP *scip, SCIP_AGGRROW **aggrrow)   void  SCIPaggrRowFree (SCIP *scip, SCIP_AGGRROW **aggrrow)   void  SCIPaggrRowPrint (SCIP *scip, SCIP_AGGRROW *aggrrow, FILE *file)   SCIP_RETCODE  SCIPaggrRowCopy (SCIP *scip, SCIP_AGGRROW **aggrrow, SCIP_AGGRROW *source)   SCIP_RETCODE  SCIPaggrRowAddRow (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_ROW *row, SCIP_Real weight, int sidetype)   void  SCIPaggrRowCancelVarWithBound (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_VAR *var, int pos, SCIP_Bool *valid)   SCIP_RETCODE  SCIPaggrRowAddObjectiveFunction (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_Real rhs, SCIP_Real scale)   SCIP_RETCODE  SCIPaggrRowAddCustomCons (SCIP *scip, SCIP_AGGRROW *aggrrow, int *inds, SCIP_Real *vals, int len, SCIP_Real rhs, SCIP_Real weight, int rank, SCIP_Bool local)   SCIP_Real  SCIPaggrRowCalcEfficacyNorm (SCIP *scip, SCIP_AGGRROW *aggrrow)   void  SCIPaggrRowClear (SCIP_AGGRROW *aggrrow)   SCIP_RETCODE  SCIPaggrRowSumRows (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_Real *weights, int *rowinds, int nrowinds, SCIP_Bool sidetypebasis, SCIP_Bool allowlocal, int negslack, int maxaggrlen, SCIP_Bool *valid)   void  SCIPaggrRowRemoveZeros (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_Bool useglbbounds, SCIP_Bool *valid)   int *  SCIPaggrRowGetRowInds (SCIP_AGGRROW *aggrrow)   SCIP_RealSCIPaggrRowGetRowWeights (SCIP_AGGRROW *aggrrow)   SCIP_Bool  SCIPaggrRowHasRowBeenAdded (SCIP_AGGRROW *aggrrow, SCIP_ROW *row)   void  SCIPaggrRowGetAbsWeightRange (SCIP_AGGRROW *aggrrow, SCIP_Real *minabsrowweight, SCIP_Real *maxabsrowweight)   int *  SCIPaggrRowGetInds (SCIP_AGGRROW *aggrrow)   int  SCIPaggrRowGetNNz (SCIP_AGGRROW *aggrrow)   static INLINE SCIP_Real  SCIPaggrRowGetValue (SCIP_AGGRROW *aggrrow, int i)   static INLINE SCIP_Real  SCIPaggrRowGetProbvarValue (SCIP_AGGRROW *aggrrow, int probindex)   int  SCIPaggrRowGetRank (SCIP_AGGRROW *aggrrow)   SCIP_Bool  SCIPaggrRowIsLocal (SCIP_AGGRROW *aggrrow)   SCIP_Real  SCIPaggrRowGetRhs (SCIP_AGGRROW *aggrrow)   int  SCIPaggrRowGetNRows (SCIP_AGGRROW *aggrrow)   SCIP_RETCODE  SCIPcalcMIR (SCIP *scip, SCIP_SOL *sol, SCIP_Bool postprocess, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, SCIP_Bool fixintegralrhs, int *boundsfortrans, SCIP_BOUNDTYPE *boundtypesfortrans, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Real scale, SCIP_AGGRROW *aggrrow, SCIP_Real *cutcoefs, SCIP_Real *cutrhs, int *cutinds, int *cutnnz, SCIP_Real *cutefficacy, int *cutrank, SCIP_Bool *cutislocal, SCIP_Bool *success)   SCIP_RETCODE  SCIPcutGenerationHeuristicCMIR (SCIP *scip, SCIP_SOL *sol, SCIP_Bool postprocess, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, int maxtestdelta, int *boundsfortrans, SCIP_BOUNDTYPE *boundtypesfortrans, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_AGGRROW *aggrrow, SCIP_Real *cutcoefs, SCIP_Real *cutrhs, int *cutinds, int *cutnnz, SCIP_Real *cutefficacy, int *cutrank, SCIP_Bool *cutislocal, SCIP_Bool *success)   SCIP_RETCODE  SCIPcalcFlowCover (SCIP *scip, SCIP_SOL *sol, SCIP_Bool postprocess, SCIP_Real boundswitch, SCIP_Bool allowlocal, SCIP_AGGRROW *aggrrow, SCIP_Real *cutcoefs, SCIP_Real *cutrhs, int *cutinds, int *cutnnz, SCIP_Real *cutefficacy, int *cutrank, SCIP_Bool *cutislocal, SCIP_Bool *success)   SCIP_RETCODE  SCIPcalcKnapsackCover (SCIP *scip, SCIP_SOL *sol, SCIP_Bool allowlocal, SCIP_AGGRROW *aggrrow, SCIP_Real *cutcoefs, SCIP_Real *cutrhs, int *cutinds, int *cutnnz, SCIP_Real *cutefficacy, int *cutrank, SCIP_Bool *cutislocal, SCIP_Bool *success)   SCIP_RETCODE  SCIPcalcStrongCG (SCIP *scip, SCIP_SOL *sol, SCIP_Bool postprocess, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Real scale, SCIP_AGGRROW *aggrrow, SCIP_Real *cutcoefs, SCIP_Real *cutrhs, int *cutinds, int *cutnnz, SCIP_Real *cutefficacy, int *cutrank, SCIP_Bool *cutislocal, SCIP_Bool *success)   SCIP_ROWSCIPcutGetRow (SCIP_CUT *cut)   int  SCIPcutGetAge (SCIP_CUT *cut)   SCIP_Real  SCIPcutGetLPActivityQuot (SCIP_CUT *cut)   SCIP_CUT **  SCIPcutpoolGetCuts (SCIP_CUTPOOL *cutpool)   int  SCIPcutpoolGetNCuts (SCIP_CUTPOOL *cutpool)   SCIP_Longint  SCIPcutpoolGetMaxNCuts (SCIP_CUTPOOL *cutpool)   SCIP_Real  SCIPcutpoolGetTime (SCIP_CUTPOOL *cutpool)   SCIP_Longint  SCIPcutpoolGetNCalls (SCIP_CUTPOOL *cutpool)   SCIP_Longint  SCIPcutpoolGetNRootCalls (SCIP_CUTPOOL *cutpool)   SCIP_Longint  SCIPcutpoolGetNCutsFound (SCIP_CUTPOOL *cutpool)   SCIP_Longint  SCIPcutpoolGetNCutsAdded (SCIP_CUTPOOL *cutpool)   SCIP_Real  SCIPgetCutLPSolCutoffDistance (SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)   SCIP_Real  SCIPgetCutEfficacy (SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)   SCIP_Bool  SCIPisCutEfficacious (SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)   SCIP_Bool  SCIPisEfficacious (SCIP *scip, SCIP_Real efficacy)   SCIP_Real  SCIPgetVectorEfficacyNorm (SCIP *scip, SCIP_Real *vals, int nvals)   SCIP_Bool  SCIPisCutApplicable (SCIP *scip, SCIP_ROW *cut)   SCIP_RETCODE  SCIPaddCut (SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut, SCIP_Bool forcecut, SCIP_Bool *infeasible)   SCIP_RETCODE  SCIPaddRow (SCIP *scip, SCIP_ROW *row, SCIP_Bool forcecut, SCIP_Bool *infeasible)   SCIP_Bool  SCIPisCutNew (SCIP *scip, SCIP_ROW *row)   SCIP_RETCODE  SCIPaddPoolCut (SCIP *scip, SCIP_ROW *row)   SCIP_RETCODE  SCIPdelPoolCut (SCIP *scip, SCIP_ROW *row)   SCIP_CUT **  SCIPgetPoolCuts (SCIP *scip)   int  SCIPgetNPoolCuts (SCIP *scip)   SCIP_CUTPOOLSCIPgetGlobalCutpool (SCIP *scip)   SCIP_RETCODE  SCIPcreateCutpool (SCIP *scip, SCIP_CUTPOOL **cutpool, int agelimit)   SCIP_RETCODE  SCIPfreeCutpool (SCIP *scip, SCIP_CUTPOOL **cutpool)   SCIP_RETCODE  SCIPaddRowCutpool (SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)   SCIP_RETCODE  SCIPaddNewRowCutpool (SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)   SCIP_RETCODE  SCIPdelRowCutpool (SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)   SCIP_RETCODE  SCIPseparateCutpool (SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_RESULT *result)   SCIP_RETCODE  SCIPseparateSolCutpool (SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_SOL *sol, SCIP_Bool pretendroot, SCIP_RESULT *result)   SCIP_RETCODE  SCIPaddDelayedPoolCut (SCIP *scip, SCIP_ROW *row)   SCIP_RETCODE  SCIPdelDelayedPoolCut (SCIP *scip, SCIP_ROW *row)   SCIP_CUT **  SCIPgetDelayedPoolCuts (SCIP *scip)   int  SCIPgetNDelayedPoolCuts (SCIP *scip)   SCIP_CUTPOOLSCIPgetDelayedGlobalCutpool (SCIP *scip)   SCIP_RETCODE  SCIPseparateSol (SCIP *scip, SCIP_SOL *sol, SCIP_Bool pretendroot, SCIP_Bool allowlocal, SCIP_Bool onlydelayed, SCIP_Bool *delayed, SCIP_Bool *cutoff)   SCIP_ROW **  SCIPgetCuts (SCIP *scip)   int  SCIPgetNCuts (SCIP *scip)   SCIP_RETCODE  SCIPclearCuts (SCIP *scip)   SCIP_RETCODE  SCIPremoveInefficaciousCuts (SCIP *scip)   ◆ SCIPcutsTightenCoefficients()

perform activity based coefficient tigthening on the given cut; returns TRUE if the cut was detected to be redundant due to acitivity bounds

See also cons_linear.c:consdataTightenCoefs().

perform activity based coefficient tightening on the given cut; returns TRUE if the cut was detected to be redundant due to activity bounds

See also cons_linear.c:consdataTightenCoefs().

Parameters
scip SCIP data structure cutislocal is the cut local? cutcoefs array of the non-zero coefficients in the cut cutrhs the right hand side of the cut cutinds array of the problem indices of variables with a non-zero coefficient in the cut cutnnz the number of non-zeros in the cut nchgcoefs number of changed coefficients

Definition at line 1527 of file cuts.c.

References FALSE, MAX, NULL, QUAD, QUAD_ASSIGN, QUAD_TO_DBL, SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPallocBufferArray, SCIPceil(), SCIPdebugMsg, SCIPfloor(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetNContVars(), SCIPgetNVars(), SCIPgetVars(), SCIPisFeasLE(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPisNegative(), SCIPisPositive(), SCIPquadprecProdDD, SCIPquadprecProdQD, SCIPquadprecSumDD, SCIPquadprecSumQD, SCIPquadprecSumQQ, SCIPsortDownRealRealInt(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), and TRUE.

Referenced by computeMIRForOptimalityCut(), generateZerohalfCut(), tightenCoefficients(), and transformNonIntegralRow().

◆ SCIPaggrRowCreate()

create an empty the aggregation row

create an empty aggregation row

Parameters
scip SCIP data structure aggrrow pointer to return aggregation row

Definition at line 1723 of file cuts.c.

References BMSclearMemoryArray, FALSE, NULL, QUAD_ARRAY_SIZE, QUAD_ASSIGN, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, and SCIPgetNVars().

Referenced by computeMIRForOptimalityCut(), conflictAnalyzeLP(), createCGCuts(), doSeparation(), generateClusterCuts(), generateGMICuts(), SCIP_DECL_SEPAEXECLP(), SCIPrunBoundHeuristic(), and setupAggregationData().

◆ SCIPaggrRowFree()

free a the aggregation row

free a aggregation row

Parameters
scip SCIP data structure aggrrow pointer to aggregation row that should be freed

Definition at line 1755 of file cuts.c.

References NULL, QUAD_ARRAY_SIZE, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPfreeBlockMemoryArrayNull, and SCIPgetNVars().

Referenced by computeMIRForOptimalityCut(), conflictAnalyzeLP(), createCGCuts(), destroyAggregationData(), doSeparation(), generateClusterCuts(), generateGMICuts(), SCIP_DECL_SEPAEXECLP(), and SCIPrunBoundHeuristic().

◆ SCIPaggrRowPrint()

output aggregation row to file stream

Parameters
scip SCIP data structure aggrrow pointer to return aggregation row file output file (or NULL for standard output)

Definition at line 1776 of file cuts.c.

References SCIP_AggrRow::inds, SCIP_AggrRow::nnz, NULL, QUAD, QUAD_ARRAY_LOAD, QUAD_TO_DBL, SCIP_Real, SCIPgetMessagehdlr(), SCIPgetVars(), SCIPmessageFPrintInfo(), SCIPvarGetName(), SCIPvarGetProbindex(), and SCIP_AggrRow::vals.

◆ SCIPaggrRowCopy()

copy the aggregation row

copy a aggregation row

Parameters
scip SCIP data structure aggrrow pointer to return aggregation row source source aggregation row

Definition at line 1813 of file cuts.c.

References SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, SCIP_AggrRow::nrows, NULL, QUAD_ARRAY_SIZE, QUAD_ASSIGN_Q, SCIP_AggrRow::rank, SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowweights, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPduplicateBlockMemoryArray, SCIPgetNVars(), SCIP_AggrRow::slacksign, and SCIP_AggrRow::vals.

◆ SCIPaggrRowAddRow()

add weighted row to the aggregation row

add weighted row to aggregation row

Parameters
scip SCIP data structure aggrrow aggregation row row row to add to aggregation row weight scale for adding given row to aggregation row sidetype specify row side type (-1 = lhs, 0 = automatic, 1 = rhs)

Definition at line 1859 of file cuts.c.

References SCIP_Row::constant, FALSE, SCIP_AggrRow::inds, SCIP_Row::integral, SCIP_Row::lhs, SCIP_AggrRow::local, SCIP_Row::local, SCIP_Row::lppos, MAX, SCIP_AggrRow::nnz, SCIP_AggrRow::nrows, QUAD, SCIP_AggrRow::rank, SCIP_Row::rank, SCIP_Row::rhs, SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowssize, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcalcMemGrowSize(), SCIPceil(), SCIPfloor(), SCIPisInfinity(), SCIPquadprecProdDD, SCIPquadprecSumQQ, SCIPreallocBlockMemoryArray, SCIProwGetLPPos(), SCIP_AggrRow::slacksign, TRUE, SCIP_AggrRow::vals, and varVecAddScaledRowCoefsQuad().

Referenced by addRowToAggrRow(), aggregateNextRow(), and aggregation().

◆ SCIPaggrRowCancelVarWithBound()

Removes a given variable var from position pos the aggregation row and updates the right-hand side according to sign of the coefficient, i.e., rhs -= coef * bound, where bound = lb if coef >= 0 and bound = ub, otherwise.

Note
: The choice of global or local bounds depend on the validity (global or local) of the aggregation row.
: The list of non-zero indices will be updated by swapping the last non-zero index to pos.
Parameters
scip SCIP data structure aggrrow the aggregation row var variable that should be removed pos position of the variable in the aggregation row valid pointer to return whether the aggregation row is still valid

Definition at line 1945 of file cuts.c.

References FALSE, SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, NULL, QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_STORE, QUAD_ASSIGN, QUAD_HI, QUAD_TO_DBL, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), SCIPquadprecProdQD, SCIPquadprecSumQQ, SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and SCIP_AggrRow::vals.

◆ SCIPaggrRowAddObjectiveFunction()

add the objective function with right-hand side rhs and scaled by scale to the aggregation row

Parameters
scip SCIP data structure aggrrow the aggregation row rhs right-hand side of the artificial row scale scalar

Definition at line 2004 of file cuts.c.

References SCIP_AggrRow::inds, SCIP_AggrRow::nnz, NONZERO, NULL, QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_STORE, QUAD_ASSIGN, QUAD_HI, SCIP_OKAY, SCIP_Real, SCIPgetNVars(), SCIPgetVars(), SCIPisZero(), SCIPquadprecProdDD, SCIPquadprecSumQQ, SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIP_AggrRow::vals.

Referenced by aggregation(), and SCIPgetDualProof().

◆ SCIPaggrRowAddCustomCons()

add weighted constraint to the aggregation row

Parameters
scip SCIP data structure aggrrow the aggregation row inds variable problem indices in constraint to add to the aggregation row vals values of constraint to add to the aggregation row len length of constraint to add to the aggregation row rhs right hand side of constraint to add to the aggregation row weight (positive) scale for adding given constraint to the aggregation row rank rank to use for given constraint local is constraint only valid locally

Definition at line 2080 of file cuts.c.

References SCIP_AggrRow::inds, SCIP_AggrRow::local, MAX, SCIP_AggrRow::nnz, NONZERO, QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_STORE, QUAD_HI, SCIP_AggrRow::rank, REALABS, SCIP_OKAY, SCIP_Real, SCIPisInfinity(), SCIPquadprecProdDD, SCIPquadprecSumQQ, and SCIP_AggrRow::vals.

Referenced by computeMIRForOptimalityCut().

◆ SCIPaggrRowCalcEfficacyNorm() ◆ SCIPaggrRowClear()

clear all entries in the aggregation row but do not free the internal memory

clear all entries int the aggregation row but don't free memory

Parameters
aggrrow the aggregation row

Definition at line 2133 of file cuts.c.

References FALSE, SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, SCIP_AggrRow::nrows, QUAD, QUAD_ARRAY_STORE, QUAD_ASSIGN, SCIP_AggrRow::rank, SCIP_Real, and SCIP_AggrRow::vals.

Referenced by aggregation(), SCIPaggrRowSumRows(), and SCIPgetDualProof().

◆ SCIPaggrRowSumRows()

aggregate rows using the given weights; the current content of the aggregation row, aggrrow, gets overwritten

Parameters
scip SCIP data structure aggrrow the aggregation row weights row weights in row summation rowinds array to store indices of non-zero entries of the weights array, or NULL nrowinds number of non-zero entries in weights array, -1 if rowinds is NULL sidetypebasis choose sidetypes of row (lhs/rhs) based on basis information? allowlocal should local rows allowed to be used? negslack should negative slack variables allowed to be used? (0: no, 1: only for integral rows, 2: yes) maxaggrlen maximal length of aggregation row valid is the aggregation valid

Definition at line 2279 of file cuts.c.

References addOneRow(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPaggrRowClear(), SCIPaggrRowRemoveZeros(), SCIPgetLPRowsData(), and SCIPgetVarsData().

Referenced by createCGCutCMIR(), createCGCutStrongCG(), generateClusterCuts(), generateGMICuts(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPaggrRowRemoveZeros()

removes all (close enough to) zero entries in the aggregation row

removes almost zero entries from the aggregation row.

Parameters
scip SCIP datastructure aggrrow the aggregation row useglbbounds consider global bound although the cut is local? valid pointer to return whether the aggregation row is still valid

Definition at line 2471 of file cuts.c.

References FALSE, SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, NULL, QUAD, removeZerosQuad(), SCIPsumepsilon(), and SCIP_AggrRow::vals.

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

◆ SCIPaggrRowGetRowInds() ◆ SCIPaggrRowGetRowWeights() ◆ SCIPaggrRowHasRowBeenAdded() ◆ SCIPaggrRowGetAbsWeightRange()

gets the min and max absolute value of the weights used to aggregate the rows; must not be called for empty aggregation rows

Parameters
aggrrow the aggregation row minabsrowweight pointer to store smallest absolute value of weights used for aggregating rows maxabsrowweight pointer to store largest absolute value of weights used for aggregating rows
◆ SCIPaggrRowGetInds() ◆ SCIPaggrRowGetNNz() ◆ SCIPaggrRowGetValue() ◆ SCIPaggrRowGetProbvarValue() ◆ SCIPaggrRowGetRank() ◆ SCIPaggrRowIsLocal() ◆ SCIPaggrRowGetRhs()

gets the right hand side of the aggregation row

Parameters

Definition at line 2581 of file cuts.c.

References NULL, and QUAD_TO_DBL.

Referenced by addLocalRows(), addRowToAggrRow(), conflictAnalyzeLP(), proofsetAddAggrrow(), SCIPconflictAnalyzeDualProof(), SCIPgetDualProof(), SCIPgetFarkasProof(), SCIPrunBoundHeuristic(), separateAlternativeProofs(), and tightenDualproof().

◆ SCIPaggrRowGetNRows() ◆ SCIPcalcMIR() SCIP_RETCODE SCIPcalcMIR ( SCIPscip, SCIP_SOLsol, SCIP_Bool  postprocess, SCIP_Real  boundswitch, SCIP_Bool  usevbds, SCIP_Bool  allowlocal, SCIP_Bool  fixintegralrhs, int *  boundsfortrans, SCIP_BOUNDTYPEboundtypesfortrans, SCIP_Real  minfrac, SCIP_Real  maxfrac, SCIP_Real  scale, SCIP_AGGRROWaggrrow, SCIP_Realcutcoefs, SCIP_Realcutrhs, int *  cutinds, int *  cutnnz, SCIP_Realcutefficacy, int *  cutrank, SCIP_Boolcutislocal, SCIP_Boolsuccess  )

calculates an MIR cut out of the weighted sum of LP rows given by an aggregation row; the aggregation row must not contain non-zero weights for modifiable rows, because these rows cannot participate in an MIR cut.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

calculates an MIR cut out of the weighted sum of LP rows; The weights of modifiable rows are set to 0.0, because these rows cannot participate in an MIR cut.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scip SCIP data structure sol the solution that should be separated, or NULL for LP solution postprocess apply a post-processing step to the resulting cut? boundswitch fraction of domain up to which lower bound is used in transformation usevbds should variable bounds be used in bound transformation? allowlocal should local information allowed to be used, resulting in a local cut? fixintegralrhs should complementation tried to be adjusted such that rhs gets fractional? boundsfortrans bounds that should be used for transformed variables: vlb_idx/vub_idx, -1 for global lb/ub, -2 for local lb/ub, or -3 for using closest bound; NULL for using closest bound for all variables boundtypesfortrans type of bounds that should be used for transformed variables; NULL for using closest bound for all variables minfrac minimal fractionality of rhs to produce MIR cut for maxfrac maximal fractionality of rhs to produce MIR cut for scale additional scaling factor multiplied to the aggrrow; must be positive aggrrow aggrrow to compute MIR cut for cutcoefs array to store the non-zero coefficients in the cut if its efficacy improves cutefficacy cutrhs pointer to store the right hand side of the cut if its efficacy improves cutefficacy cutinds array to store the indices of non-zero coefficients in the cut if its efficacy improves cutefficacy cutnnz pointer to store the number of non-zeros in the cut if its efficacy improves cutefficacy cutefficacy pointer to store efficacy of cut, or NULL cutrank pointer to return rank of generated cut or NULL if it improves cutefficacy cutislocal pointer to store whether the generated cut is only valid locally if it improves cutefficacy success pointer to store whether the returned coefficients are a valid MIR cut and it improves cutefficacy

Definition at line 3873 of file cuts.c.

References BMScopyMemoryArray, calcEfficacyDenseStorageQuad(), cutsRoundMIR(), cutsSubstituteMIR(), cutsTransformMIR(), FALSE, SCIP_AggrRow::inds, SCIP_AggrRow::local, MAXCMIRSCALE, SCIP_AggrRow::nnz, SCIP_AggrRow::nrows, NULL, postprocessCutQuad(), QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_SIZE, QUAD_ARRAY_STORE, QUAD_ASSIGN, QUAD_ASSIGN_Q, QUAD_HI, QUAD_LO, QUAD_TO_DBL, SCIP_AggrRow::rank, REALABS, removeZerosQuad(), SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPallocCleanBufferArray, SCIPdebug, SCIPdebugMsg, SCIPepsilon(), SCIPfreeBufferArray, SCIPfreeCleanBufferArray, SCIPgetNVars(), SCIPisEfficacious(), SCIPisPositive(), SCIPquadprecEpsFloorQ, SCIPquadprecProdQD, SCIPquadprecSumDD, SCIPquadprecSumQQ, SCIPsumepsilon(), SCIP_AggrRow::slacksign, and SCIP_AggrRow::vals.

Referenced by computeMIRForOptimalityCut(), createCGCutCMIR(), generateClusterCuts(), generateGMICuts(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPcutGenerationHeuristicCMIR() SCIP_RETCODE SCIPcutGenerationHeuristicCMIR ( SCIPscip, SCIP_SOLsol, SCIP_Bool  postprocess, SCIP_Real  boundswitch, SCIP_Bool  usevbds, SCIP_Bool  allowlocal, int  maxtestdelta, int *  boundsfortrans, SCIP_BOUNDTYPEboundtypesfortrans, SCIP_Real  minfrac, SCIP_Real  maxfrac, SCIP_AGGRROWaggrrow, SCIP_Realcutcoefs, SCIP_Realcutrhs, int *  cutinds, int *  cutnnz, SCIP_Realcutefficacy, int *  cutrank, SCIP_Boolcutislocal, SCIP_Boolsuccess  )

calculates an MIR cut out of the weighted sum of LP rows given by an aggregation row; the aggregation row must not contain non-zero weights for modifiable rows, because these rows cannot participate in an MIR cut. The function uses a cut generation heuristic which tries different scaling factors and complementations of the variables to improve the cut's efficacy. For further details we refer to:

Marchand, H., & Wolsey, L. A. (2001). Aggregation and mixed integer rounding to solve MIPs. Operations research, 49(3), 363-371.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

calculates an MIR cut out of an aggregation of LP rows

Given the aggregation, it is transformed to a mixed knapsack set via complementation (using bounds or variable bounds) Then, different scalings of the mkset are used to generate a MIR and the best is chosen. One of the steps of the MIR is to round the coefficients of the integer variables down, so one would prefer to have integer coefficients for integer variables which are far away from their bounds in the mkset.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scip SCIP data structure sol the solution that should be separated, or NULL for LP solution postprocess apply a post-processing step to the resulting cut? boundswitch fraction of domain up to which lower bound is used in transformation usevbds should variable bounds be used in bound transformation? allowlocal should local information allowed to be used, resulting in a local cut? maxtestdelta maximum number of deltas to test boundsfortrans bounds that should be used for transformed variables: vlb_idx/vub_idx, -1 for global lb/ub, -2 for local lb/ub, or -3 for using closest bound; NULL for using closest bound for all variables boundtypesfortrans type of bounds that should be used for transformed variables; NULL for using closest bound for all variables minfrac minimal fractionality of rhs to produce MIR cut for maxfrac maximal fractionality of rhs to produce MIR cut for aggrrow aggrrow to compute MIR cut for cutcoefs array to store the non-zero coefficients in the cut cutrhs pointer to store the right hand side of the cut cutinds array to store the problem indices of variables with a non-zero coefficient in the cut cutnnz pointer to store the number of non-zeros in the cut cutefficacy pointer to store efficacy of best cut; only cuts that are strictly better than the value of this efficacy on input to this function are returned cutrank pointer to return rank of generated cut (or NULL) cutislocal pointer to store whether the generated cut is only valid locally success pointer to store whether a valid and efficacious cut was returned

Definition at line 4212 of file cuts.c.

References BMScopyMemoryArray, calcEfficacyDenseStorageQuad(), computeMIREfficacy(), cutsRoundMIR(), cutsSubstituteMIR(), cutsTransformMIR(), EPSZ, FALSE, findBestLb(), findBestUb(), SCIP_AggrRow::inds, SCIP_Row::integral, SCIP_Row::lhs, SCIP_AggrRow::local, MAX, MIN, SCIP_AggrRow::nnz, SCIP_AggrRow::nrows, NULL, postprocessCutQuad(), QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_SIZE, QUAD_ARRAY_STORE, QUAD_ASSIGN, QUAD_ASSIGN_Q, QUAD_HI, QUAD_LO, QUAD_TO_DBL, SCIP_AggrRow::rank, REALABS, removeZerosQuad(), SCIP_Row::rhs, SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPallocCleanBufferArray, SCIPcalcIntegralScalar(), SCIPceil(), SCIPdebug, SCIPdebugMsg, SCIPepsilon(), SCIPfloor(), SCIPfreeBufferArray, SCIPfreeCleanBufferArray, SCIPgetLPRows(), SCIPgetNContVars(), SCIPgetNVars(), SCIPgetRowSolActivity(), SCIPgetSolVal(), SCIPgetVars(), SCIPinfinity(), SCIPisEfficacious(), SCIPisEQ(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPquadprecEpsFloorQ, SCIPquadprecProdDD, SCIPquadprecProdQD, SCIPquadprecSumDD, SCIPquadprecSumQQ, SCIPrelDiff(), SCIPsortDownRealRealInt(), SCIPsumepsilon(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), SCIPvarGetVubVars(), SCIP_AggrRow::slacksign, SQR, TRUE, and SCIP_AggrRow::vals.

Referenced by aggregation(), and separateAlternativeProofs().

◆ SCIPcalcFlowCover() SCIP_RETCODE SCIPcalcFlowCover ( SCIPscip, SCIP_SOLsol, SCIP_Bool  postprocess, SCIP_Real  boundswitch, SCIP_Bool  allowlocal, SCIP_AGGRROWaggrrow, SCIP_Realcutcoefs, SCIP_Realcutrhs, int *  cutinds, int *  cutnnz, SCIP_Realcutefficacy, int *  cutrank, SCIP_Boolcutislocal, SCIP_Boolsuccess  )

calculates a lifted simple generalized flow cover cut out of the weighted sum of LP rows given by an aggregation row; the aggregation row must not contain non-zero weights for modifiable rows, because these rows cannot participate in the cut. For further details we refer to:

Gu, Z., Nemhauser, G. L., & Savelsbergh, M. W. (1999). Lifted flow cover inequalities for mixed 0-1 integer programs. Mathematical Programming, 85(3), 439-467.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scip SCIP data structure sol the solution that should be separated, or NULL for LP solution postprocess apply a post-processing step to the resulting cut? boundswitch fraction of domain up to which lower bound is used in transformation allowlocal should local information allowed to be used, resulting in a local cut? aggrrow the aggregation row to compute flow cover cut for cutcoefs array to store the non-zero coefficients in the cut cutrhs pointer to store the right hand side of the cut cutinds array to store the problem indices of variables with a non-zero coefficient in the cut cutnnz pointer to store the number of non-zeros in the cut cutefficacy pointer to store the efficacy of the cut, or NULL cutrank pointer to return rank of generated cut cutislocal pointer to store whether the generated cut is only valid locally success pointer to store whether a valid cut was returned

Definition at line 7417 of file cuts.c.

References allocSNFRelaxation(), calcEfficacy(), constructSNFRelaxation(), destroySNFRelaxation(), FALSE, generateLiftedFlowCoverCut(), getFlowCover(), SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, NULL, postprocessCut(), QUAD, QUAD_ASSIGN, QUAD_TO_DBL, SCIP_AggrRow::rank, removeZeros(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPallocCleanBufferArray, SCIPdebug, SCIPdebugMsg, SCIPfreeBufferArray, SCIPfreeCleanBufferArray, SCIPgetNCuts(), SCIPgetNLPs(), SCIPgetNVars(), SCIPsumepsilon(), and SCIP_AggrRow::vals.

Referenced by aggregation(), computeMIRForOptimalityCut(), and separateAlternativeProofs().

◆ SCIPcalcKnapsackCover() SCIP_RETCODE SCIPcalcKnapsackCover ( SCIPscip, SCIP_SOLsol, SCIP_Bool  allowlocal, SCIP_AGGRROWaggrrow, SCIP_Realcutcoefs, SCIP_Realcutrhs, int *  cutinds, int *  cutnnz, SCIP_Realcutefficacy, int *  cutrank, SCIP_Boolcutislocal, SCIP_Boolsuccess  )

calculates a lifted knapsack cover cut out of the weighted sum of LP rows given by an aggregation row; the aggregation row must not contain non-zero weights for modifiable rows, because these rows cannot participate in the cut. For further details we refer to:

Letchford, A. N., & Souli, G. (2019). On lifted cover inequalities: A new lifting procedure with unusual properties. Operations Research Letters, 47(2), 83-87.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scip SCIP data structure sol the solution that should be separated, or NULL for LP solution allowlocal should local information allowed to be used, resulting in a local cut? aggrrow the aggregation row to compute flow cover cut for cutcoefs array to store the non-zero coefficients in the cut cutrhs pointer to store the right hand side of the cut cutinds array to store the problem indices of variables with a non-zero coefficient in the cut cutnnz pointer to store the number of non-zeros in the cut cutefficacy pointer to store the efficacy of the cut, or NULL cutrank pointer to return rank of generated cut cutislocal pointer to store whether the generated cut is only valid locally success pointer to store whether a valid cut was returned

Definition at line 8047 of file cuts.c.

References BMScopyMemoryArray, calcEfficacy(), calcEfficacyDenseStorageQuad(), computeInitialKnapsackCover(), cutsTransformKnapsackCover(), evaluateLiftingFunctionKnapsack(), FALSE, SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, NONZERO, SCIP_AggrRow::nrows, NULL, prepareLiftingData(), QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_SIZE, QUAD_ARRAY_STORE, QUAD_ASSIGN, QUAD_ASSIGN_Q, QUAD_HI, QUAD_LO, QUAD_TO_DBL, SCIP_AggrRow::rank, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPallocBufferArray, SCIPallocCleanBufferArray, SCIPdebug, SCIPdebugMsg, SCIPfreeBufferArray, SCIPfreeCleanBufferArray, SCIPgetNVars(), SCIPquadprecSumQD, SCIP_AggrRow::slacksign, and SCIP_AggrRow::vals.

Referenced by aggregation().

◆ SCIPcalcStrongCG() SCIP_RETCODE SCIPcalcStrongCG ( SCIPscip, SCIP_SOLsol, SCIP_Bool  postprocess, SCIP_Real  boundswitch, SCIP_Bool  usevbds, SCIP_Bool  allowlocal, SCIP_Real  minfrac, SCIP_Real  maxfrac, SCIP_Real  scale, SCIP_AGGRROWaggrrow, SCIP_Realcutcoefs, SCIP_Realcutrhs, int *  cutinds, int *  cutnnz, SCIP_Realcutefficacy, int *  cutrank, SCIP_Boolcutislocal, SCIP_Boolsuccess  )

calculates a strong CG cut out of the weighted sum of LP rows given by an aggregation row; the aggregation row must not contain non-zero weights for modifiable rows, because these rows cannot participate in a strongcg cut

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scip SCIP data structure sol the solution that should be separated, or NULL for LP solution postprocess apply a post-processing step to the resulting cut? boundswitch fraction of domain up to which lower bound is used in transformation usevbds should variable bounds be used in bound transformation? allowlocal should local information allowed to be used, resulting in a local cut? minfrac minimal fractionality of rhs to produce strong CG cut for maxfrac maximal fractionality of rhs to produce strong CG cut for scale additional scaling factor multiplied to all rows aggrrow the aggregation row to compute a strong CG cut for cutcoefs array to store the non-zero coefficients in the cut cutrhs pointer to store the right hand side of the cut cutinds array to store the problem indices of variables with a non-zero coefficient in the cut cutnnz pointer to store the number of non-zeros in the cut cutefficacy pointer to store the efficacy of the cut, or NULL cutrank pointer to return rank of generated cut cutislocal pointer to store whether the generated cut is only valid locally success pointer to store whether a valid cut was returned

Definition at line 8966 of file cuts.c.

References ABS, BMScopyMemoryArray, calcEfficacy(), cutsRoundStrongCG(), cutsSubstituteStrongCG(), cutsTransformStrongCG(), FALSE, SCIP_AggrRow::inds, SCIP_AggrRow::local, SCIP_AggrRow::nnz, NONZERO, SCIP_AggrRow::nrows, NULL, postprocessCutQuad(), QUAD, QUAD_ARRAY_LOAD, QUAD_ARRAY_SIZE, QUAD_ARRAY_STORE, QUAD_ASSIGN, QUAD_ASSIGN_Q, QUAD_HI, QUAD_LO, QUAD_TO_DBL, SCIP_AggrRow::rank, removeZerosQuad(), SCIP_AggrRow::rowsinds, SCIP_AggrRow::rowweights, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPallocCleanBufferArray, SCIPceil(), SCIPdebug, SCIPdebugMsg, SCIPepsilon(), SCIPfreeBufferArray, SCIPfreeCleanBufferArray, SCIPgetHugeValue(), SCIPgetNContVars(), SCIPgetNVars(), SCIPisPositive(), SCIPquadprecDivDQ, SCIPquadprecEpsFloorQ, SCIPquadprecProdQD, SCIPquadprecSumDD, SCIPquadprecSumQD, SCIPquadprecSumQQ, SCIPsumepsilon(), SCIP_AggrRow::slacksign, and SCIP_AggrRow::vals.

Referenced by createCGCutStrongCG(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPcutGetRow() ◆ SCIPcutGetAge()

gets the age of the cut: the number of consecutive cut pool separation rounds where the cut was neither in the LP nor violated

Parameters

Definition at line 392 of file cutpool.c.

References SCIP_Cut::age, and NULL.

Referenced by takeCut().

◆ SCIPcutGetLPActivityQuot() ◆ SCIPcutpoolGetCuts() ◆ SCIPcutpoolGetNCuts() ◆ SCIPcutpoolGetMaxNCuts() ◆ SCIPcutpoolGetTime() ◆ SCIPcutpoolGetNCalls() ◆ SCIPcutpoolGetNRootCalls() ◆ SCIPcutpoolGetNCutsFound() ◆ SCIPcutpoolGetNCutsAdded() ◆ SCIPgetCutLPSolCutoffDistance()

returns row's cutoff distance in the direction of the given primal solution

Returns
the cutoff distance of the cut with respect to the LP solution in the direction of the given primal solution
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure sol solution to compute direction for cutoff distance; must not be NULL cut separated cut

Definition at line 72 of file scip_cut.c.

References FALSE, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPSolCutoffDistance(), and TRUE.

Referenced by scoring().

◆ SCIPgetCutEfficacy()

returns efficacy of the cut with respect to the given primal solution or the current LP solution: e = -feasibility/norm

Returns
the efficacy of the cut with respect to the given primal solution or the current LP solution: e = -feasibility/norm
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure sol primal CIP solution, or NULL for current LP solution cut separated cut

Definition at line 94 of file scip_cut.c.

References FALSE, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPEfficacy(), SCIProwGetSolEfficacy(), and TRUE.

Referenced by addCut(), computeCut(), computeProjectionScore(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), filterWithDynamicParallelism(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_SEPAEXECLP(), SCIPprocessRowprepNonlinear(), scoring(), separateCuts(), and separateDeterminant().

◆ SCIPisCutEfficacious()

returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater than the minimal cut efficacy

Returns
TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater than the minimal cut efficacy, otherwise FALSE
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure sol primal CIP solution, or NULL for current LP solution cut separated cut

Definition at line 117 of file scip_cut.c.

References FALSE, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwIsLPEfficacious(), SCIProwIsSolEfficacious(), SCIPtreeGetCurrentDepth(), and TRUE.

Referenced by addBoundCutSepa(), addCut(), computeCut(), createCGCutCMIR(), createCGCutStrongCG(), createRow(), generateOddCycleCut(), initsepaBoundInequalityFromCardinality(), initsepaBoundInequalityFromSOS1Cons(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_SEPAEXECLP(), SCIPprocessRowprepNonlinear(), sepaImplBoundCutsSOS1(), separateCuts(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), and sepaSubtour().

◆ SCIPisEfficacious()

checks, if the given cut's efficacy is larger than the minimal cut efficacy

Returns
TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE
Parameters
scip SCIP data structure efficacy efficacy of the cut

Definition at line 135 of file scip_cut.c.

References NULL, SCIPsetIsEfficacious(), and SCIPtreeGetCurrentDepth().

Referenced by addCut(), computeMIRForOptimalityCut(), constructCutRow(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), extendToCover(), generateClusterCuts(), generateZerohalfCut(), LOPseparate(), SCIP_DECL_SEPAEXECLP(), SCIPcalcMIR(), SCIPcutGenerationHeuristicCMIR(), separateCons(), separateCoversOrbisack(), separateCuts(), separateIndicators(), separateOrbisack(), separateOrbisackCovers(), separatePerspective(), separateSCIs(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), separateSymresackCovers(), solCutIsViolated(), and TCLIQUE_NEWSOL().

◆ SCIPgetVectorEfficacyNorm()

calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter

Returns
the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
Parameters
scip SCIP data structure vals array of values nvals number of values

Definition at line 149 of file scip_cut.c.

References FALSE, MAX, NULL, REALABS, SCIP_Real, SCIPerrorMessage, SCIPisZero(), and SQR.

Referenced by calcEfficacy().

◆ SCIPisCutApplicable()

indicates whether a cut is applicable

If the cut has only one variable and this method returns FALSE, it may still be possible that the cut can be added to the LP (as a row instead of a boundchange), but it will be a very weak cut. The user is asked to avoid such cuts.

Precondition
This method can be called if scip is in one of the following stages:
Returns
whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon

indicates whether a cut is applicable, i.e., will modify the LP when applied

Precondition
This method can be called if scip is in one of the following stages:
Returns
whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon
Parameters
scip SCIP data structure cut separated cut

Definition at line 207 of file scip_cut.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPsepastoreIsCutApplicable(), and TRUE.

Referenced by addCut(), and SCIPprocessRowprepNonlinear().

◆ SCIPaddCut()

adds cut to separation storage

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Deprecated:
Please use SCIPaddRow() instead, or, if the row is a global cut and it might be useful to keep it for future use, consider adding it to the global cutpool with SCIPaddPoolCut().

adds cut to separation storage

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Deprecated:
Please use SCIPaddRow() instead, or, if the row is a global cut, add it only to the global cutpool.
Parameters
scip SCIP data structure sol primal solution that was separated, or NULL for LP solution cut separated cut forcecut should the cut be forced to enter the LP? infeasible pointer to store whether cut has been detected to be infeasible for local bounds

Definition at line 227 of file scip_cut.c.

References FALSE, SCIP_CALL, SCIP_UNUSED, SCIPaddRow(), SCIPcheckStage(), and TRUE.

◆ SCIPaddRow()

adds row to separation storage

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure row row forcecut should the row be forced to enter the LP? infeasible pointer to store whether row has been detected to be infeasible for local bounds

Definition at line 250 of file scip_cut.c.

References SCIP_Row::cols, FALSE, SCIP_Row::lhs, NULL, SCIP_Row::rhs, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_Real, SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPanalyzeConflict(), SCIPcheckStage(), SCIPcolGetVar(), SCIPgetDepth(), SCIPinitConflictAnalysis(), SCIPisConflictAnalysisApplicable(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIPisZero(), SCIPprobAllColsInLP(), SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIProwGetNNonz(), SCIPsepastoreAddCut(), SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), TRUE, and SCIP_Row::vals.

Referenced by addBoundCutSepa(), addCut(), addCuts(), addOrbisackCover(), addOrbisackInequality(), addRelaxation(), addSymresackInequality(), computeCut(), createCapacityRestrictionIntvars(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createRow(), doSeparation(), extendToCover(), generateAndApplyBendersIntegerCuts(), generateAndApplyBendersNogoodCut(), generateOddCycleCut(), initLP(), initsepaBoundInequalityFromCardinality(), initsepaBoundInequalityFromSOS1Cons(), LOPseparate(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_SEPAEXECLP(), SCIPaddCut(), SCIPgenerateAndApplyBendersOptCut(), SCIPprocessRowprepNonlinear(), sepaImplBoundCutsSOS1(), separateCons(), separateConsBinaryRepresentation(), separateCoverCutsCons(), separateCoversOrbisack(), separateCuts(), separateDeterminant(), separateIndicators(), separateMcCormickImplicit(), separatePerspective(), separateRltCuts(), separateSCIs(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), and sepaSubtour().

◆ SCIPisCutNew() ◆ SCIPaddPoolCut()

if not already existing, adds row to global cut pool

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure row row to remove

Definition at line 361 of file scip_cut.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPcutpoolAddRow(), and TRUE.

Referenced by addCut(), addCutPool(), addCuts(), addPathCuts(), addSubtourCuts(), addTourCuts(), computeCut(), createAndAddTransferredCut(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), doSeparation(), extendToCover(), generateAndApplyBendersIntegerCuts(), generateAndApplyBendersNogoodCut(), generateOddCycleCut(), newsolCliqueAddRow(), SCIP_DECL_NLHDLRSOLLINEARIZE(), SCIP_DECL_SEPAEXECLP(), SCIPgenerateAndApplyBendersOptCut(), and separateRltCuts().

◆ SCIPdelPoolCut() ◆ SCIPgetPoolCuts() ◆ SCIPgetNPoolCuts() int SCIPgetNPoolCuts ( SCIPscip ) ◆ SCIPgetGlobalCutpool() ◆ SCIPcreateCutpool() ◆ SCIPfreeCutpool() ◆ SCIPaddRowCutpool() ◆ SCIPaddNewRowCutpool() ◆ SCIPdelRowCutpool() ◆ SCIPseparateCutpool()

separates cuts from a cut pool

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure cutpool cut pool result pointer to store the result of the separation call

Definition at line 580 of file scip_cut.c.

References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPcutpoolSeparate(), SCIPerrorMessage, SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), SCIPtreeHasCurrentNodeLP(), and TRUE.

◆ SCIPseparateSolCutpool()

separates cuts w.r.t. given solution from a cut pool

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure cutpool cut pool sol solution to be separated pretendroot should the cut separators be called as if we are at the root node? result pointer to store the result of the separation call

Definition at line 610 of file scip_cut.c.

References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), SCIPcutpoolSeparate(), SCIPerrorMessage, SCIPtreeGetCurrentNode(), SCIPtreeHasCurrentNodeLP(), and TRUE.

◆ SCIPaddDelayedPoolCut() ◆ SCIPdelDelayedPoolCut() ◆ SCIPgetDelayedPoolCuts() ◆ SCIPgetNDelayedPoolCuts() int SCIPgetNDelayedPoolCuts ( SCIPscip ) ◆ SCIPgetDelayedGlobalCutpool() ◆ SCIPseparateSol()

separates the given primal solution or the current LP solution by calling the separators and constraint handlers' separation methods; the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and SCIPgetNCuts(); after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the separation storage; it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts afterwards

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scip SCIP data structure sol primal solution that should be separated, or NULL for LP solution pretendroot should the cut separators be called as if we are at the root node? allowlocal should the separator be asked to separate local cuts onlydelayed should only separators be called that were delayed in the previous round? delayed pointer to store whether a separator was delayed cutoff pointer to store whether the node can be cut off

Definition at line 735 of file scip_cut.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPseparationRound(), SCIPtreeGetCurrentDepth(), and TRUE.

Referenced by applySeparation(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPgetCuts() ◆ SCIPgetNCuts() int SCIPgetNCuts ( SCIPscip ) ◆ SCIPclearCuts() ◆ SCIPremoveInefficaciousCuts()

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4