type_pricer.h
Go to the documentation of this file.
31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
55 #define SCIP_DECL_PRICERCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_PRICER* pricer, SCIP_Bool* valid)
65 /** initialization method of variable pricer (called after problem was transformed and pricer is active)
73 /** deinitialization method of variable pricer (called before transformed problem is freed and pricer is active)
81 /** solving process initialization method of variable pricer (called when branch and bound process is about to begin)
83 * This method is called when the presolving was finished and the branch and bound process is about to begin.
92 /** solving process deinitialization method of variable pricer (called before branch and bound process data is freed)
106 * In standard branch-and-price, these are variables with negative dual feasibility, that is negative
112 * Whenever the pricer finds a variable with negative dual feasibility, it should call SCIPcreateVar()
113 * and SCIPaddPricedVar() to add the variable to the problem. Furthermore, it should call the appropriate
116 * In the usual case that the pricer either adds a new variable or ensures that there are no further variables with
117 * negative dual feasibility, the result pointer should be set to SCIP_SUCCESS. Only if the pricer aborts pricing
118 * without creating a new variable, but there might exist additional variables with negative dual feasibility, the
119 * result pointer should be set to SCIP_DIDNOTRUN. In this case, which sometimes is referred to as "early branching",
120 * the lp solution will not be used as a lower bound. The pricer can, however, store a valid lower bound in the
121 * lowerbound pointer. If you use your own branching rule (e.g., to branch on constraints), make sure that it is able
122 * to branch on pseudo solutions. Otherwise, SCIP will use its default branching rules (which all branch on
123 * variables). This could disturb the pricing problem or branching might not even be possible, e.g., if all yet created
130 * - stopearly : should pricing be stopped, although new variables were added? (doing early branching)
134 * - SCIP_SUCCESS : at least one improving variable was found, or it is ensured that no such variable exists
135 * - SCIP_DIDNOTRUN : the pricing process was aborted by the pricer, there is no guarantee that the current LP solution is
139 #define SCIP_DECL_PRICERREDCOST(x) SCIP_RETCODE x (SCIP* scip, SCIP_PRICER* pricer, SCIP_Real* lowerbound, SCIP_Bool* stopearly, SCIP_RESULT* result)
146 * The LP was proven infeasible, so we have an infeasibility proof by the dual Farkas multipliers y.
156 * Pricing in this case means to add variables i with positive Farkas value, i.e. y^T A_i x'_i > 0.
160 * Whenever the pricer finds a variable with positive Farkas value, it should call SCIPcreateVar()
161 * and SCIPaddPricedVar() to add the variable to the problem. Furthermore, it should call the appropriate
170 * - SCIP_SUCCESS : at least one variable was found, which can contribute to the feasibility of the current LP,
172 * - SCIP_DIDNOTRUN : the pricing process was aborted by the pricer, there is no guarantee that the current LP is indeed infeasible
174 #define SCIP_DECL_PRICERFARKAS(x) SCIP_RETCODE x (SCIP* scip, SCIP_PRICER* pricer, SCIP_RESULT* result)
type definitions for return codes for SCIP methods
Definition: struct_pricer.h:46
type definitions for SCIP's main datastructure
common defines and data types used in all packages of SCIP