scip_cut.h
Go to the documentation of this file.
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
52 /** returns efficacy of the cut with respect to the given primal solution or the current LP solution:
55 * @return the efficacy of the cut with respect to the given primal solution or the current LP solution:
68 /** returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater
71 * @return TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater
86 * @return TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE
94 /** calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
96 * @return the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
115 * @return whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon
125 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
131 * @deprecated Please use SCIPaddRow() instead, or, if the row is a global cut and it might be useful to keep it for future use,
139 SCIP_Bool* infeasible /**< pointer to store whether cut has been detected to be infeasible for local bounds */
144 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
155 SCIP_Bool* infeasible /**< pointer to store whether row has been detected to be infeasible for local bounds */
160 * @return TRUE is returned if the cut is not already existing in the global cutpool, FALSE otherwise
173 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
187 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
243 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
265 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
289 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
305 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
321 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
338 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
353 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
369 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
382 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
395 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
407 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
419 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
429 /** separates the given primal solution or the current LP solution by calling the separators and constraint handlers'
431 * the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and
433 * after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the
435 * it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts
438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
448 SCIP_Bool pretendroot, /**< should the cut separators be called as if we are at the root node? */
450 SCIP_Bool onlydelayed, /**< should only separators be called that were delayed in the previous round? */
485 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
496 /** removes cuts that are inefficacious w.r.t. the current LP solution from separation storage without adding the cuts to the LP
498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
SCIP_EXPORT SCIP_RETCODE SCIPseparateSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool pretendroot, SCIP_Bool allowlocal, SCIP_Bool onlydelayed, SCIP_Bool *delayed, SCIP_Bool *cutoff)
Definition: scip_cut.c:705
Definition: struct_scip.h:59
SCIP_EXPORT SCIP_RETCODE SCIPaddNewRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)
Definition: scip_cut.c:507
type definitions for return codes for SCIP methods
SCIP_EXPORT SCIP_Real SCIPgetCutEfficacy(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)
Definition: scip_cut.c:65
type definitions for LP management
Definition: struct_sol.h:64
SCIP_EXPORT SCIP_RETCODE SCIPremoveInefficaciousCuts(SCIP *scip)
Definition: scip_cut.c:793
SCIP_EXPORT SCIP_CUTPOOL * SCIPgetDelayedGlobalCutpool(SCIP *scip)
Definition: scip_cut.c:681
SCIP_EXPORT SCIP_CUTPOOL * SCIPgetGlobalCutpool(SCIP *scip)
Definition: scip_cut.c:409
type definitions for SCIP's main datastructure
SCIP_EXPORT SCIP_RETCODE SCIPcreateCutpool(SCIP *scip, SCIP_CUTPOOL **cutpool, int agelimit)
Definition: scip_cut.c:433
type definitions for storing cuts in a cut pool
SCIP_EXPORT SCIP_RETCODE SCIPseparateCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_RESULT *result)
Definition: scip_cut.c:551
SCIP_EXPORT SCIP_CUT ** SCIPgetDelayedPoolCuts(SCIP *scip)
Definition: scip_cut.c:649
SCIP_RETCODE SCIPaddCut(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut, SCIP_Bool forcecut, SCIP_Bool *infeasible)
Definition: scip_cut.c:198
SCIP_EXPORT SCIP_RETCODE SCIPdelRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)
Definition: scip_cut.c:530
SCIP_EXPORT SCIP_Bool SCIPisCutApplicable(SCIP *scip, SCIP_ROW *cut)
Definition: scip_cut.c:178
Definition: struct_lp.h:192
Definition: struct_cutpool.h:49
SCIP_EXPORT SCIP_RETCODE SCIPaddRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)
Definition: scip_cut.c:485
SCIP_EXPORT SCIP_Bool SCIPisCutEfficacious(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)
Definition: scip_cut.c:88
SCIP_EXPORT SCIP_Real SCIPgetVectorEfficacyNorm(SCIP *scip, SCIP_Real *vals, int nvals)
Definition: scip_cut.c:120
type definitions for storing primal CIP solutions
SCIP_EXPORT SCIP_RETCODE SCIPdelDelayedPoolCut(SCIP *scip, SCIP_ROW *row)
Definition: scip_cut.c:630
SCIP_EXPORT SCIP_RETCODE SCIPaddRow(SCIP *scip, SCIP_ROW *row, SCIP_Bool forcecut, SCIP_Bool *infeasible)
Definition: scip_cut.c:221
SCIP_EXPORT SCIP_RETCODE SCIPaddDelayedPoolCut(SCIP *scip, SCIP_ROW *row)
Definition: scip_cut.c:611
result codes for SCIP callback methods
SCIP_EXPORT SCIP_RETCODE SCIPaddPoolCut(SCIP *scip, SCIP_ROW *row)
Definition: scip_cut.c:332
SCIP_EXPORT SCIP_RETCODE SCIPdelPoolCut(SCIP *scip, SCIP_ROW *row)
Definition: scip_cut.c:352
common defines and data types used in all packages of SCIP
Definition: objbenders.h:33
SCIP_EXPORT int SCIPgetNDelayedPoolCuts(SCIP *scip)
Definition: scip_cut.c:665
SCIP_EXPORT SCIP_Bool SCIPisEfficacious(SCIP *scip, SCIP_Real efficacy)
Definition: scip_cut.c:106
SCIP_EXPORT SCIP_RETCODE SCIPfreeCutpool(SCIP *scip, SCIP_CUTPOOL **cutpool)
Definition: scip_cut.c:464
Definition: struct_cutpool.h:39
SCIP_EXPORT SCIP_RETCODE SCIPseparateSolCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_SOL *sol, SCIP_RESULT *result)
Definition: scip_cut.c:581