All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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
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 |