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 type definitions for SCIP's main datastructure common defines and data types used in all packages of SCIP |