scip_cut.h
Go to the documentation of this file.
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
71 /** returns efficacy of the cut with respect to the given primal solution or the current LP solution:
74 * @return the efficacy of the cut with respect to the given primal solution or the current LP solution:
87 /** returns whether the cut's efficacy with respect to the given primal solution or the current LP solution is greater
90 * @return TRUE if the cut's efficacy with respect to the given primal solution or the current LP solution is greater
105 * @return TRUE if the given cut's efficacy is larger than the minimal cut efficacy, otherwise FALSE
113 /** calculates the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
115 * @return the efficacy norm of the given vector, which depends on the "separating/efficacynorm" parameter
134 * @return whether the cut is modifiable, not a bound change, or a bound change that changes bounds by at least epsilon
144 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
150 * @deprecated Please use SCIPaddRow() instead, or, if the row is a global cut and it might be useful to keep it for future use,
159 SCIP_Bool* infeasible /**< pointer to store whether cut has been detected to be infeasible for local bounds */
164 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
175 SCIP_Bool* infeasible /**< pointer to store whether row has been detected to be infeasible for local bounds */
180 * @return TRUE is returned if the cut is not already existing in the global cutpool, FALSE otherwise
193 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
207 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
263 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
285 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
309 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
325 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
341 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
358 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
373 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
389 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
402 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
415 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
427 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
439 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
449 /** separates the given primal solution or the current LP solution by calling the separators and constraint handlers'
451 * the generated cuts are stored in the separation storage and can be accessed with the methods SCIPgetCuts() and
453 * after evaluating the cuts, you have to call SCIPclearCuts() in order to remove the cuts from the
455 * it is possible to call SCIPseparateSol() multiple times with different solutions and evaluate the found cuts
458 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
468 SCIP_Bool pretendroot, /**< should the cut separators be called as if we are at the root node? */
470 SCIP_Bool onlydelayed, /**< should only separators be called that were delayed in the previous round? */
505 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
516 /** removes cuts that are inefficacious w.r.t. the current LP solution from separation storage without adding the cuts to the LP
518 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
internal methods for branch and bound tree
Definition: struct_scip.h:58
SCIP_RETCODE SCIPaddNewRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)
Definition: scip_cut.c:580
SCIP_RETCODE SCIPaddDelayedPoolCut(SCIP *scip, SCIP_ROW *row)
Definition: scip_cut.c:684
SCIP_Real SCIPgetVectorEfficacyNorm(SCIP *scip, SCIP_Real *vals, int nvals)
Definition: scip_cut.c:193
type definitions for return codes for SCIP methods
type definitions for LP management
Definition: struct_sol.h:63
SCIP_Bool SCIPisCutEfficacious(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)
Definition: scip_cut.c:161
SCIP_RETCODE SCIPdelRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)
Definition: scip_cut.c:603
SCIP_RETCODE SCIPcreateCutpool(SCIP *scip, SCIP_CUTPOOL **cutpool, int agelimit)
Definition: scip_cut.c:506
SCIP_RETCODE SCIPfreeCutpool(SCIP *scip, SCIP_CUTPOOL **cutpool)
Definition: scip_cut.c:537
SCIP_RETCODE SCIPseparateCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_RESULT *result)
Definition: scip_cut.c:624
type definitions for SCIP's main datastructure
type definitions for storing cuts in a cut pool
SCIP_Bool SCIPisEfficacious(SCIP *scip, SCIP_Real efficacy)
Definition: scip_cut.c:179
EXTERN SCIP_DEPRECATED SCIP_RETCODE SCIPaddCut(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut, SCIP_Bool forcecut, SCIP_Bool *infeasible)
Definition: scip_cut.c:271
internal miscellaneous methods
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:778
SCIP_CUTPOOL * SCIPgetDelayedGlobalCutpool(SCIP *scip)
Definition: scip_cut.c:754
internal methods for global SCIP settings
SCIP main data structure.
SCIP_RETCODE SCIPremoveInefficaciousCuts(SCIP *scip)
Definition: scip_cut.c:866
SCIP_RETCODE SCIPaddRow(SCIP *scip, SCIP_ROW *row, SCIP_Bool forcecut, SCIP_Bool *infeasible)
Definition: scip_cut.c:294
internal methods for problem variables
Definition: struct_lp.h:192
methods for debugging
Definition: struct_cutpool.h:49
SCIP_Real SCIPgetCutEfficacy(SCIP *scip, SCIP_SOL *sol, SCIP_ROW *cut)
Definition: scip_cut.c:138
datastructures for problem statistics
SCIP_Bool SCIPisCutApplicable(SCIP *scip, SCIP_ROW *cut)
Definition: scip_cut.c:251
type definitions for storing primal CIP solutions
SCIP_RETCODE SCIPdelDelayedPoolCut(SCIP *scip, SCIP_ROW *row)
Definition: scip_cut.c:703
SCIP_RETCODE SCIPaddRowCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_ROW *row)
Definition: scip_cut.c:558
internal methods for main solving loop and node processing
result codes for SCIP callback methods
internal methods for constraints and constraint handlers
common defines and data types used in all packages of SCIP
Definition: objbenders.h:33
Definition: struct_cutpool.h:39
SCIP_RETCODE SCIPseparateSolCutpool(SCIP *scip, SCIP_CUTPOOL *cutpool, SCIP_SOL *sol, SCIP_RESULT *result)
Definition: scip_cut.c:654