|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
prop_obbt.c File Reference Detailed Descriptionoptimization-based bound tightening propagator Definition in file prop_obbt.c. #include <assert.h>#include <string.h>#include "scip/prop_obbt.h"#include "scip/prop_genvbounds.h"#include "scip/debug.h"Go to the source code of this file.
Macro Definition Documentation
Definition at line 44 of file prop_obbt.c.
Definition at line 45 of file prop_obbt.c.
Definition at line 46 of file prop_obbt.c.
propagator priority Definition at line 47 of file prop_obbt.c.
propagator frequency Definition at line 48 of file prop_obbt.c.
should propagation method be delayed, if other propagators found reductions? Definition at line 49 of file prop_obbt.c.
should obbt try to provide genvbounds if possible? Definition at line 52 of file prop_obbt.c.
should coefficients in filtering be normalized w.r.t. the domains sizes? Definition at line 53 of file prop_obbt.c.
try to filter bounds in so-called filter rounds by solving auxiliary LPs? Definition at line 56 of file prop_obbt.c.
feasibility tolerance for reduced costs used in obbt; this value is used if SCIP's dual feastol is greater Definition at line 59 of file prop_obbt.c.
maximum condition limit used in LP solver (-1.0: no limit) Definition at line 62 of file prop_obbt.c.
minimal number of filtered bounds to apply another filter round Definition at line 63 of file prop_obbt.c.
multiple of root node LP iterations used as total LP iteration limit for obbt (<= 0: no limit ) Definition at line 66 of file prop_obbt.c.
maximal number of bounds evaluated without success per group (-1: no limit) Definition at line 69 of file prop_obbt.c.
base that is used to calculate a bounds score value Definition at line 73 of file prop_obbt.c.
Definition at line 74 of file prop_obbt.c. Typedef DocumentationDefinition at line 91 of file prop_obbt.c.
Definition at line 99 of file prop_obbt.c. Function Documentation
solves the LP and handles errors
Definition at line 132 of file prop_obbt.c.
adds the objective cutoff to the LP; must be in diving mode
Definition at line 203 of file prop_obbt.c. determines, whether a variable is already locally fixed
Definition at line 253 of file prop_obbt.c. References SCIP_Longint.
returns number of LP iterations left (-1: no limit )
Definition at line 263 of file prop_obbt.c.
returns the objective coefficient for a variable's bound that will be chosen during filtering
Definition at line 293 of file prop_obbt.c.
trying to filter some bounds using the existing LP solution
Definition at line 338 of file prop_obbt.c.
enforces one round of filtering
Definition at line 392 of file prop_obbt.c.
filter some bounds that are not improvable by solving auxiliary LPs
Definition at line 475 of file prop_obbt.c.
applies possible bound changes that were found
Definition at line 564 of file prop_obbt.c.
tries to tighten a bound in diving mode
Definition at line 627 of file prop_obbt.c.
creates a genvbound if the dual LP solution provides such information Consider the problem min { +/- x_i : obj * x <= z, lb <= Ax <= ub, l <= x <= u }, where z is the current cutoff bound. Let (mu, nu, gamma, alpha, beta) >= 0 be the optimal solution of the dual of problem (P), where the variables correspond to the primal inequalities in the following way: Ax >= lb <-> mu
-Ax >= -ub <-> nu
-obj * x >= -z <-> gamma x >= l <-> alpha -x >= -u <-> beta Fixing these multipliers, by weak duality, we obtain the inequality +/- x_i >= lb*mu - ub*nu - z*gamma + l*alpha - u*beta that holds for all primal feasible points x with objective value at least z. Setting c = lb*mu - ub*nu, redcost_k = alpha_k - beta_k we obtain the inequality +/- x_i >= sum ( redcost_k * x_k ) + (-gamma) * cutoff_bound + c, that holds for all primal feasible points with objective value at least cutoff_bound. Therefore, the latter inequality can be added as a generalized variable bound.
Definition at line 717 of file prop_obbt.c.
tries to find tighter values for bounds and stores them in the bound data structure
Definition at line 857 of file prop_obbt.c.
main function of obbt
Definition at line 1016 of file prop_obbt.c. computes the score of a bound
Definition at line 1115 of file prop_obbt.c.
comparison method for two bounds w.r.t. their scores Definition at line 1158 of file prop_obbt.c. References Bound::boundtype, NULL, SCIP_BOUNDTYPE_LOWER, SCIPdebugPrintf, SCIPvarGetName(), Bound::score, and Bound::var.
creates groups for the bounds array
Definition at line 1205 of file prop_obbt.c. determines whether a variable is interesting
Definition at line 1263 of file prop_obbt.c.
initializes interesting bounds
Definition at line 1276 of file prop_obbt.c.
solving process initialization method of propagator (called when branch and bound process is about to begin) Definition at line 1390 of file prop_obbt.c.
execution method of propagator Definition at line 1419 of file prop_obbt.c. References SCIP_OKAY, and SCIPdebugMessage.
propagation conflict resolving method of propagator Definition at line 1507 of file prop_obbt.c. References NULL.
solving process deinitialization method of propagator (called before branch and bound process data is freed) Definition at line 1516 of file prop_obbt.c.
destructor of propagator to free user data (called when SCIP is exiting) Definition at line 1554 of file prop_obbt.c.
creates the obbt propagator and includes it in SCIP
Definition at line 1577 of file prop_obbt.c. Referenced by SCIPincludeDefaultPlugins(). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||