type_pricer.h
Go to the documentation of this file.
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
46 #define SCIP_DECL_PRICERCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_PRICER* pricer, SCIP_Bool* valid)
56 /** initialization method of variable pricer (called after problem was transformed and pricer is active)
64 /** deinitialization method of variable pricer (called before transformed problem is freed and pricer is active)
72 /** solving process initialization method of variable pricer (called when branch and bound process is about to begin)
74 * This method is called when the presolving was finished and the branch and bound process is about to begin.
83 /** solving process deinitialization method of variable pricer (called before branch and bound process data is freed)
97 * In standard branch-and-price, these are variables with negative dual feasibility, that is negative
103 * Whenever the pricer finds a variable with negative dual feasibility, it should call SCIPcreateVar()
104 * and SCIPaddPricedVar() to add the variable to the problem. Furthermore, it should call the appropriate
107 * In the usual case that the pricer either adds a new variable or ensures that there are no further variables with
108 * negative dual feasibility, the result pointer should be set to SCIP_SUCCESS. Only if the pricer aborts pricing
109 * without creating a new variable, but there might exist additional variables with negative dual feasibility, the
110 * result pointer should be set to SCIP_DIDNOTRUN. In this case, which sometimes is referred to as "early branching",
111 * the lp solution will not be used as a lower bound. The pricer can, however, store a valid lower bound in the
112 * lowerbound pointer. If you use your own branching rule (e.g., to branch on constraints), make sure that it is able
113 * to branch on pseudo solutions. Otherwise, SCIP will use its default branching rules (which all branch on
114 * variables). This could disturb the pricing problem or branching might not even be possible, e.g., if all yet created
121 * - stopearly : should pricing be stopped, although new variables were added? (doing early branching)
125 * - SCIP_SUCCESS : at least one improving variable was found, or it is ensured that no such variable exists
126 * - SCIP_DIDNOTRUN : the pricing process was aborted by the pricer, there is no guarantee that the current LP solution is
130 #define SCIP_DECL_PRICERREDCOST(x) SCIP_RETCODE x (SCIP* scip, SCIP_PRICER* pricer, SCIP_Real* lowerbound, SCIP_Bool* stopearly, SCIP_RESULT* result)
137 * The LP was proven infeasible, so we have an infeasibility proof by the dual Farkas multipliers y.
147 * Pricing in this case means to add variables i with positive Farkas value, i.e. y^T A_i x'_i > 0.
151 * Whenever the pricer finds a variable with positive Farkas value, it should call SCIPcreateVar()
152 * and SCIPaddPricedVar() to add the variable to the problem. Furthermore, it should call the appropriate
161 * - SCIP_SUCCESS : at least one variable was found, which can contribute to the feasibility of the current LP,
163 * - SCIP_DIDNOTRUN : the pricing process was aborted by the pricer, there is no guarantee that the current LP is indeed infeasible
165 #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:37
type definitions for SCIP's main datastructure
common defines and data types used in all packages of SCIP