
probing propagator
 Author
 Tobias Achterberg
Definition in file prop_probing.h.
Go to the source code of this file.

SCIP_RETCODE  SCIPincludePropProbing (SCIP *scip) 

SCIP_RETCODE  SCIPapplyProbingVar (SCIP *scip, SCIP_VAR **vars, int nvars, int probingpos, SCIP_BOUNDTYPE boundtype, SCIP_Real bound, int maxproprounds, SCIP_Real *impllbs, SCIP_Real *implubs, SCIP_Real *proplbs, SCIP_Real *propubs, SCIP_Bool *cutoff) 

SCIP_RETCODE  SCIPanalyzeDeductionsProbing (SCIP *scip, SCIP_VAR *probingvar, SCIP_Real leftub, SCIP_Real rightlb, int nvars, SCIP_VAR **vars, SCIP_Real *leftimpllbs, SCIP_Real *leftimplubs, SCIP_Real *leftproplbs, SCIP_Real *leftpropubs, SCIP_Real *rightimpllbs, SCIP_Real *rightimplubs, SCIP_Real *rightproplbs, SCIP_Real *rightpropubs, int *nfixedvars, int *naggrvars, int *nimplications, int *nchgbds, SCIP_Bool *cutoff) 

creates the probing propagator and includes it in SCIP
 Parameters

SCIP_RETCODE SCIPapplyProbingVar 
( 
SCIP * 
scip, 


SCIP_VAR ** 
vars, 


int 
nvars, 


int 
probingpos, 


SCIP_BOUNDTYPE 
boundtype, 


SCIP_Real 
bound, 


int 
maxproprounds, 


SCIP_Real * 
impllbs, 


SCIP_Real * 
implubs, 


SCIP_Real * 
proplbs, 


SCIP_Real * 
propubs, 


SCIP_Bool * 
cutoff 

) 
 
applies and evaluates probing of a single variable in the given direction and bound
 Parameters

scip  SCIP data structure 
vars  problem variables 
nvars  number of problem variables 
probingpos  variable number to apply probing on 
boundtype  which bound should be changed 
bound  whioch bound should be set 
maxproprounds  maximal number of propagation rounds (1: no limit, 0: parameter settings) 
impllbs  array to store lower bounds after applying implications and cliques 
implubs  array to store upper bounds after applying implications and cliques 
proplbs  array to store lower bounds after full propagation 
propubs  array to store upper bounds after full propagation 
cutoff  pointer to store whether the probing direction is infeasible 
SCIP_RETCODE SCIPanalyzeDeductionsProbing 
( 
SCIP * 
scip, 


SCIP_VAR * 
probingvar, 


SCIP_Real 
leftub, 


SCIP_Real 
rightlb, 


int 
nvars, 


SCIP_VAR ** 
vars, 


SCIP_Real * 
leftimpllbs, 


SCIP_Real * 
leftimplubs, 


SCIP_Real * 
leftproplbs, 


SCIP_Real * 
leftpropubs, 


SCIP_Real * 
rightimpllbs, 


SCIP_Real * 
rightimplubs, 


SCIP_Real * 
rightproplbs, 


SCIP_Real * 
rightpropubs, 


int * 
nfixedvars, 


int * 
naggrvars, 


int * 
nimplications, 


int * 
nchgbds, 


SCIP_Bool * 
cutoff 

) 
 
analyses boundchanges resulting from probing on a variable and performs deduced fixations, aggregations, and domain tightenings
Given a variable probingvar with domain [l,u] and bound tightening results from reducing the domain once to [l,leftub] and once to [rightlb,u], the method computes and applies resulting variable fixations, aggregations, implications, and bound changes. Variable probingvar does not need to be binary. The whole domain of probingvar need to be covered by the left and right branches, i.e., we assume leftub >= rightlb for continuous variables or floor(leftub) >= ceil(rightlb)1 for discrete variables. Bounds after applying implications and cliques do not need to be provided, but if they are omitted and probingvar is a binary variable, then already existing implications may be added.
 Parameters

scip  SCIP data structure 
probingvar  the probing variable 
leftub  upper bound of probing variable in left branch 
rightlb  lower bound of probing variable in right branch 
nvars  number of variables which bound changes should be analyzed 
vars  variables which bound changes should be analyzed 
leftimpllbs  lower bounds after applying implications and cliques in left branch, or NULL 
leftimplubs  upper bounds after applying implications and cliques in left branch, or NULL 
leftproplbs  lower bounds after applying domain propagation in left branch 
leftpropubs  upper bounds after applying domain propagation in left branch 
rightimpllbs  lower bounds after applying implications and cliques in right branch, or NULL 
rightimplubs  upper bounds after applying implications and cliques in right branch, or NULL 
rightproplbs  lower bounds after applying domain propagation in right branch 
rightpropubs  upper bounds after applying domain propagation in right branch 
nfixedvars  pointer to counter which is increased by the number of deduced variable fixations 
naggrvars  pointer to counter which is increased by the number of deduced variable aggregations 
nimplications  pointer to counter which is increased by the number of deduced implications 
nchgbds  pointer to counter which is increased by the number of deduced bound tightenings 
cutoff  buffer to store whether a cutoff is detected 
