cutsel_hybrid.h
Go to the documentation of this file.
23 * The hybrid cut selector scores cuts by using a weighted sum of the efficacy, directed cutoff distance, objective
24 * parallelism, and integer support of the cuts. Afterwards, it selects the cuts using the score and filtering for
28 * - the efficacy is defined as the distance between the LP solution and the hyperplane \f$ a^T x = b \f$;
29 * - the directed cutoff distance is defined as the distance between the LP solution and the hyperplane \f$ a^T x = b \f$
30 * restricted to the line segment joining the LP solution to the currently best primal solution; therefore, it is only
32 * - the objective parallelism is how parallel the vector \f$ a \f$ is w.r.t. the objective function \f$ c \f$. That
33 * is, the objective parallelism is given by \f$ \frac{a^T c}{\|a\| \|c\|} \f$. Notice that the vectors are parallel
35 * - the integer support of a cut is the ratio between the number of nonzero integer columns and the number of nonzero
38 * These features of a cut can be recovered and/or computed with the functions @ref SCIPgetCutEfficacy(), @ref
39 * SCIPgetCutLPSolCutoffDistance(), @ref SCIPgetRowObjParallelism(), and @ref SCIPgetRowNumIntCols(), @ref
43 * After computing the scores, these are divided in two groups: good scores and bad scores. Any score larger or equal
46 * First, the forced cuts --- cuts that are going to enter the LP no matter what --- are used to filter the non-forced
48 * every non-forced cut, @p cut, is computed (the parallelism between two cuts \f$ a^T x \leq b \f$ and \f$ d^T x \leq e\f$
50 * If the score of cut is good, then cut is dropped if its parallelism with @p fcut is larger or equal than the maximum
52 * If the score of cut is not good, then cut is dropped if its parallelism with @p fcut is larger or equal than 1 - minimum
55 * @note The minimum orthogonality is a parameter that can be set, as well as the weights for the score.
57 * @note In the case of no primal solution, the weight assigned to the directed cutoff distance is transfered to the
61 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
106 SCIP_Real dircutoffdistweight,/**< weight of directed cutoff distance in cut score calculation */
Definition: struct_scip.h:59
Definition: struct_misc.h:259
SCIP_RETCODE SCIPincludeCutselHybrid(SCIP *scip)
Definition: cutsel_hybrid.c:366
SCIP_RETCODE SCIPselectCutsHybrid(SCIP *scip, SCIP_ROW **cuts, SCIP_ROW **forcedcuts, SCIP_RANDNUMGEN *randnumgen, SCIP_Real goodscorefac, SCIP_Real badscorefac, SCIP_Real goodmaxparall, SCIP_Real maxparall, SCIP_Real dircutoffdistweight, SCIP_Real efficacyweight, SCIP_Real objparalweight, SCIP_Real intsupportweight, int ncuts, int nforcedcuts, int maxselectedcuts, int *nselectedcuts)
Definition: cutsel_hybrid.c:433
Definition: struct_lp.h:192
Definition: objbenders.h:33
SCIP callable library.