# SCIP

Solving Constraint Integer Programs

prop_genvbounds.h File Reference

## Detailed Description

generalized variable bounds propagator

A generalized variable bound is a linear inequality of the form

where is either 1 or -1 and is an upper bound on the optimal objective value, which may improve during the solving process. In SCIP, generalized variable bounds are used for providing bounds on the LHS's variable . If the above inequality is valid, the following bounds, depending on 's coefficient, are also valid:

Note that for feasible problems, must hold. If a decrease of the primal bound causes an improvement of the provided bound. Similarly, if ( ), a tightened lower (upper) bound of a variable also yields a better bound for .

The genvbounds propagator sorts its stored generalized variable bounds topologically in the following order: A generalized variable bound A ( ) preceeds a generalized variable bound B if the left-hand side variable of A appears in the right-hand side of B with sign of its coefficient equal to c; i.e., if A is propagated and tightens the corresponding bound of x_i, then the minactivity on the right-hand side of B increases. We assume that this order is acyclic for the generalized variable bounds added. Under this condition, propagating the generalized variable bounds in a topological order ensures that all propagations are found in one round.

Both global and local propagation is applied: If the primal bound improves, generalized variable bounds with a nonzero coefficient d are enforced in order to tighten global bounds using the global variable bounds for computing the minactivity. Independently, the genvbounds propagator catches events SCIP_EVENTTYPE_LBTIGHTENED and SCIP_EVENTTYPE_UBTIGHTENED, i.e., locally tightened bounds of variables that occur in the right-hand sides of generalized variable bounds, in order to perform an efficient local propagation when called.

Definition in file prop_genvbounds.h.

#include "scip/scip.h"

Go to the source code of this file.

## Functions

SCIP_RETCODE SCIPgenVBoundAdd (SCIP *scip, SCIP_PROP *genvboundprop, SCIP_VAR **vars, SCIP_VAR *var, SCIP_Real *coefs, int ncoefs, SCIP_Real coefprimalbound, SCIP_Real constant, SCIP_BOUNDTYPE boundtype)

SCIP_RETCODE SCIPincludePropGenvbounds (SCIP *scip)

## Function Documentation

 SCIP_RETCODE SCIPgenVBoundAdd ( SCIP * scip, SCIP_PROP * genvboundprop, SCIP_VAR ** vars, SCIP_VAR * var, SCIP_Real * coefs, int ncoefs, SCIP_Real coefprimalbound, SCIP_Real constant, SCIP_BOUNDTYPE boundtype )

adds a generalized variable bound to the genvbounds propagator; if there is already a genvbound for the bound "boundtype" of variable "var", it will be replaced

Parameters
 scip SCIP data structure genvboundprop genvbound propagator vars array of RHSs variables var LHSs variable coefs array of coefficients for the RHSs variables ncoefs size of coefs array coefprimalbound nonpositive value of the primal bounds multiplier constant constant term boundtype type of bound provided by the genvbound
 SCIP_RETCODE SCIPincludePropGenvbounds ( SCIP * scip )

creates the genvbounds propagator and includes it in SCIP

Parameters
 scip SCIP data structure