All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sepa_closecuts.c
Go to the documentation of this file.
21 * primal feasible solution or an interior point of the LP relaxation. If the convex combination is
23 * calls all other separators to separate this point. The idea is that in this way possibly "deeper"
24 * cuts are generated. Note, however, that the new point is not a basic solution, i.e., separators
27 * The other cuts are generated via the sepasol() callbacks in constraints handlers or separators.
30 * calls. It also inhibits the separation of the ordinary LP solution if it already generated enough
35 * rounds and many cuts will be again deleted, because they are not active after a certain number of
45 * Acceleration of cutting-plane and column generation algorithms: Applications to network design.@n
50 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
64 #define SEPA_DELAY FALSE /**< should separation method be delayed, if other separators found cuts? */
68 #define SCIP_DEFAULT_SEPARELINT TRUE /**< generate close cuts w.r.t. relative interior point (best solution otherwise)? */
70 #define SCIP_DEFAULT_SEPATHRESHOLD 50 /**< threshold on number of generated cuts below which the ordinary separation is started */
71 #define SCIP_DEFAULT_INCLOBJCUTOFF FALSE /**< include the objective cutoff when computing the relative interior? */
72 #define SCIP_DEFAULT_RECOMPUTERELINT FALSE /**< recompute relative interior in each separation call? */
73 #define SCIP_DEFAULT_MAXUNSUCCESSFUL 0 /**< turn off separation in current node after unsuccessful calls (-1 never turn off) */
74 #define SCIP_DEFAULT_MAXLPITERFACTOR 10.0 /**< factor for maximal LP iterations in relative interior computation compared to node LP iterations */
76 #define SCIP_MIN_LPITERS 100 /**< minimum number of allowed LP iterations in relative interior computation */
82 SCIP_Bool separelint; /**< generate close cuts w.r.t. relative interior point (best solution otherwise)? */
85 int sepathreshold; /**< threshold on number of generated cuts below which the ordinary separation is started */
86 SCIP_Bool inclobjcutoff; /**< include the objective cutoff when computing the relative interior? */
88 int maxunsuccessful; /**< turn off separation in current node after unsuccessful calls (-1 never turn off) */
91 SCIP_Real maxlpiterfactor; /**< factor for maximal LP iterations in relative interior computation compared to node LP iterations */
142 /* If both the LP relaxation and the base point respect the variable bounds, the computed point will satisfy them
143 * as well. However, variables might be fixed (e.g. by branching) since the time of the computation of the base
200 /** solving process deinitialization method of separator (called before branch and bound process data is freed) */
265 /* check if previous relative interior point should be forgotten, otherwise it is computed only once and the
300 /* determine iteration limit; the number of iterations in the root is only set after its solution, but the
312 SCIPverbMessage(scip, SCIP_VERBLEVEL_MINIMAL, 0, "Computing relative interior point (time limit: %g, iter limit: %d) ...\n", timelimit, iterlimit);
313 SCIP_CALL( SCIPcomputeLPRelIntPoint(scip, TRUE, sepadata->inclobjcutoff, timelimit, iterlimit, &sepadata->sepasol) );
326 SCIPdebugMessage("Generating close cuts ... (combination value: %f)\n", sepadata->sepacombvalue);
372 SCIPdebugMessage("Separated close cuts: %d (enoughcuts: %d, unsuccessful: %d).\n", SCIPgetNCuts(scip) - noldcuts,
377 SCIPdebugMessage("Turn off close cut separation, because of %d unsuccessful calls.\n", sepadata->nunsuccessful);
408 SCIP_CALL( SCIPincludeSepaBasic(scip, &sepa, SEPA_NAME, SEPA_DESC, SEPA_PRIORITY, SEPA_FREQ, SEPA_MAXBOUNDDIST, SEPA_USESSUBSCIP, SEPA_DELAY,
452 "factor for maximal LP iterations in relative interior computation compared to node LP iterations (negative for no limit)",
453 &sepadata->maxlpiterfactor, TRUE, SCIP_DEFAULT_MAXLPITERFACTOR, -1.0, SCIP_REAL_MAX, NULL, NULL) );
|