Detailed Descriptionclosecuts meta separator This separator generates a convex combination of the current LP solution and either the best primal feasible solution or an interior point of the LP relaxation. If the convex combination is proper, the new point is closer to the convex hull of the feasible points. The separator then calls all other separators to separate this point. The idea is that in this way possibly "deeper" cuts are generated. Note, however, that the new point is not a basic solution, i.e., separators relying basis information, e.g., Gomory cuts, will not work. The other cuts are generated via the sepasol() callbacks in constraints handlers or separators. This separator stops after a certain number (parameter In general, this separator makes sense if it is expected that there will be many separation rounds and many cuts will be again deleted, because they are not active after a certain number of rounds. In particular, branch-and-cut algorithms for combinatorial optimization problems form good candidates. The idea seems to be first proposed in the context of the travelling salesman problem, see
Definition in file sepa_closecuts.c. Go to the source code of this file.
Macro Definition Documentation
Definition at line 58 of file sepa_closecuts.c. Referenced by SCIP_DECL_SEPACOPY(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXITSOL(), SCIP_DECL_SEPAFREE(), SCIPincludeSepaClosecuts(), and SCIPsetBasePointClosecuts().
Definition at line 59 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
Definition at line 60 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
Definition at line 61 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
Definition at line 62 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
does the separator use a secondary SCIP instance? Definition at line 63 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
should separation method be delayed, if other separators found cuts? Definition at line 64 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
generate close cuts w.r.t. relative interior point (best solution otherwise)? Definition at line 68 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
convex combination value for close cuts Definition at line 69 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
threshold on number of generated cuts below which the ordinary separation is started Definition at line 70 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
include the objective cutoff when computing the relative interior? Definition at line 71 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
recompute relative interior in each separation call? Definition at line 72 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
turn off separation in current node after unsuccessful calls (-1 never turn off) Definition at line 73 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
factor for maximal LP iterations in relative interior computation compared to node LP iterations Definition at line 74 of file sepa_closecuts.c. Referenced by SCIPincludeSepaClosecuts().
minimum number of allowed LP iterations in relative interior computation Definition at line 76 of file sepa_closecuts.c. Referenced by SCIP_DECL_SEPAEXECLP(). Function Documentation
generate point for close cut separation The constructed point is the convex combination of the point stored in set->closesol and the current LP solution. The convexity parameter is set->sepa_closecombvalue. If this parameter is 0, the point coincides with the LP solution.
Definition at line 103 of file sepa_closecuts.c. References MAX, MIN, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcreateSol(), SCIPgetNVars(), SCIPgetSolVal(), SCIPgetVars(), SCIPisZero(), SCIPsetSolVal(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), and SCIPvarGetUbLocal(). Referenced by SCIP_DECL_SEPAEXECLP().
copy method for separator plugins (called when SCIP copies plugins) Definition at line 167 of file sepa_closecuts.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaClosecuts(), SCIPsepaGetName(), and SEPA_NAME.
destructor of separator to free user data (called when SCIP is exiting) Definition at line 181 of file sepa_closecuts.c. References NULL, SCIP_OKAY, SCIPfreeMemory, SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaSetData(), and SEPA_NAME.
solving process deinitialization method of separator (called before branch and bound process data is freed) Definition at line 202 of file sepa_closecuts.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeSol(), SCIPsepaGetData(), SCIPsepaGetName(), and SEPA_NAME.
LP solution separation method of separator Definition at line 224 of file sepa_closecuts.c. References FALSE, generateCloseCutPoint(), MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_Longint, SCIP_LPSOLSTAT_OPTIMAL, SCIP_MIN_LPITERS, SCIP_NEWROUND, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIP_VERBLEVEL_MINIMAL, SCIPcomputeLPRelIntPoint(), SCIPdebugMessage, SCIPfreeSol(), SCIPgetBestSol(), SCIPgetCurrentNode(), SCIPgetDepth(), SCIPgetLPSolstat(), SCIPgetNCuts(), SCIPgetNLPBranchCands(), SCIPgetNLPIterations(), SCIPgetNNodes(), SCIPgetNRootLPIterations(), SCIPgetRealParam(), SCIPgetSolvingTime(), SCIPisInfinity(), SCIPisStopped(), SCIPnodeGetNumber(), SCIPremoveInefficaciousCuts(), SCIPsepaGetData(), SCIPsepaGetName(), SCIPseparateSol(), SCIPverbMessage(), SEPA_NAME, and TRUE.
creates the closecuts separator and includes it in SCIP
Definition at line 393 of file sepa_closecuts.c. References FALSE, NULL, SCIP_CALL, SCIP_DEFAULT_INCLOBJCUTOFF, SCIP_DEFAULT_MAXLPITERFACTOR, SCIP_DEFAULT_MAXUNSUCCESSFUL, SCIP_DEFAULT_RECOMPUTERELINT, SCIP_DEFAULT_SEPACOMBVALUE, SCIP_DEFAULT_SEPARELINT, SCIP_DEFAULT_SEPATHRESHOLD, SCIP_OKAY, SCIP_REAL_MAX, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPaddRealParam(), SCIPallocMemory, SCIPincludeSepaBasic(), SCIPsetSepaCopy(), SCIPsetSepaExitsol(), SCIPsetSepaFree(), SEPA_DELAY, SEPA_DESC, SEPA_FREQ, SEPA_MAXBOUNDDIST, SEPA_NAME, SEPA_PRIORITY, SEPA_USESSUBSCIP, and TRUE. Referenced by SCIP_DECL_SEPACOPY(), and SCIPincludeDefaultPlugins().
sets point to be used as base point for computing the point to be separated The point is only stored if separation of relative interior points is used. The solution is copied.
Definition at line 462 of file sepa_closecuts.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcreateSolCopy(), SCIPerrorMessage, SCIPfindSepa(), SCIPfreeSol(), SCIPsepaGetData(), SCIPsepaGetName(), SEPA_NAME, and TRUE. |