68 assert(paramdata !=
NULL);
83 assert(pricer !=
NULL);
85 assert(valid !=
NULL);
86 assert(set->scip !=
NULL);
88 if( pricer->pricercopy !=
NULL )
91 SCIP_CALL( pricer->pricercopy(set->scip, pricer, valid) );
123 assert(pricer !=
NULL);
124 assert(name !=
NULL);
125 assert(desc !=
NULL);
126 assert(pricerredcost !=
NULL);
131 (*pricer)->priority = priority;
132 (*pricer)->pricercopy = pricercopy;
133 (*pricer)->pricerfree = pricerfree;
134 (*pricer)->pricerinit = pricerinit;
135 (*pricer)->pricerexit = pricerexit;
136 (*pricer)->pricerinitsol = pricerinitsol;
137 (*pricer)->pricerexitsol = pricerexitsol;
138 (*pricer)->pricerredcost = pricerredcost;
139 (*pricer)->pricerfarkas = pricerfarkas;
140 (*pricer)->pricerdata = pricerdata;
143 (*pricer)->ncalls = 0;
144 (*pricer)->nvarsfound = 0;
145 (*pricer)->delay = delay;
146 (*pricer)->active =
FALSE;
147 (*pricer)->initialized =
FALSE;
153 &(*pricer)->priority,
FALSE, priority, INT_MIN/4, INT_MAX/4,
165 assert(pricer !=
NULL);
166 assert(*pricer !=
NULL);
167 assert(!(*pricer)->initialized);
171 if( (*pricer)->pricerfree !=
NULL )
173 SCIP_CALL( (*pricer)->pricerfree(set->scip, *pricer) );
191 assert(pricer !=
NULL);
201 if( set->misc_resetstat )
210 if( pricer->pricerinit !=
NULL )
215 SCIP_CALL( pricer->pricerinit(set->scip, pricer) );
231 assert(pricer !=
NULL);
241 if( pricer->pricerexit !=
NULL )
246 SCIP_CALL( pricer->pricerexit(set->scip, pricer) );
262 assert(pricer !=
NULL);
266 if( pricer->pricerinitsol !=
NULL )
271 SCIP_CALL( pricer->pricerinitsol(set->scip, pricer) );
286 assert(pricer !=
NULL);
290 if( pricer->pricerexitsol !=
NULL )
295 SCIP_CALL( pricer->pricerexitsol(set->scip, pricer) );
310 assert(pricer !=
NULL);
317 set->nactivepricers++;
318 set->pricerssorted =
FALSE;
330 assert(pricer !=
NULL);
337 set->nactivepricers--;
338 set->pricerssorted =
FALSE;
356 assert(pricer !=
NULL);
358 assert(pricer->pricerredcost !=
NULL);
360 assert(prob !=
NULL);
361 assert(lowerbound !=
NULL);
362 assert(result !=
NULL);
364 SCIPsetDebugMsg(
set,
"executing reduced cost pricing of variable pricer <%s>\n", pricer->
name);
366 oldnvars = prob->
nvars;
372 SCIP_CALL( pricer->pricerredcost(set->scip, pricer, lowerbound, stopearly, result) );
394 assert(pricer !=
NULL);
397 assert(prob !=
NULL);
400 if( pricer->pricerfarkas ==
NULL )
405 oldnvars = prob->
nvars;
411 SCIP_CALL( pricer->pricerfarkas(set->scip, pricer, result) );
435 assert(pricer !=
NULL);
436 assert(lowerbound !=
NULL);
437 assert(stopearly !=
NULL);
438 assert(result !=
NULL);
467 assert(pricer !=
NULL);
478 assert(pricer !=
NULL);
489 assert(pricer !=
NULL);
491 pricer->pricercopy = pricercopy;
500 assert(pricer !=
NULL);
502 pricer->pricerfree = pricerfree;
511 assert(pricer !=
NULL);
513 pricer->pricerinit = pricerinit;
522 assert(pricer !=
NULL);
524 pricer->pricerexit = pricerexit;
533 assert(pricer !=
NULL);
535 pricer->pricerinitsol = pricerinitsol;
544 assert(pricer !=
NULL);
546 pricer->pricerexitsol = pricerexitsol;
554 assert(pricer !=
NULL);
564 assert(pricer !=
NULL);
574 assert(pricer !=
NULL);
586 assert(pricer !=
NULL);
590 set->pricerssorted =
FALSE;
598 assert(pricer !=
NULL);
608 assert(pricer !=
NULL);
618 assert(pricer !=
NULL);
628 assert(pricer !=
NULL);
639 assert(pricer !=
NULL);
650 assert(pricer !=
NULL);
660 assert(pricer !=
NULL);
662 return pricer->
delay;
670 assert(pricer !=
NULL);
enum SCIP_Result SCIP_RESULT
void SCIPpricerEnableOrDisableClocks(SCIP_PRICER *pricer, SCIP_Bool enable)
SCIP_RETCODE SCIPsetPricerPriority(SCIP *scip, SCIP_PRICER *pricer, int priority)
SCIP_RETCODE SCIPpricerInit(SCIP_PRICER *pricer, SCIP_SET *set)
SCIP_RETCODE SCIPpricerDeactivate(SCIP_PRICER *pricer, SCIP_SET *set)
void SCIPpricerSetInit(SCIP_PRICER *pricer, SCIP_DECL_PRICERINIT((*pricerinit)))
void SCIPpricerSetData(SCIP_PRICER *pricer, SCIP_PRICERDATA *pricerdata)
void SCIPpricerSetExitsol(SCIP_PRICER *pricer, SCIP_DECL_PRICEREXITSOL((*pricerexitsol)))
const char * SCIPpricerGetName(SCIP_PRICER *pricer)
int SCIPpricestoreGetNVars(SCIP_PRICESTORE *pricestore)
SCIP_PARAMDATA * SCIPparamGetData(SCIP_PARAM *param)
internal methods for clocks and timing issues
struct SCIP_ParamData SCIP_PARAMDATA
static SCIP_DECL_PARAMCHGD(paramChgdPricerPriority)
SCIP_Real SCIPpricerGetTime(SCIP_PRICER *pricer)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
#define SCIP_DECL_PRICEREXIT(x)
SCIP_Bool SCIPpricerIsActive(SCIP_PRICER *pricer)
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_RETCODE SCIPpricerInitsol(SCIP_PRICER *pricer, SCIP_SET *set)
#define SCIP_DECL_PRICERINIT(x)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
int SCIPsnprintf(char *t, int len, const char *s,...)
enum SCIP_Retcode SCIP_RETCODE
SCIP_RETCODE SCIPpricerRedcost(SCIP_PRICER *pricer, SCIP_SET *set, SCIP_PROB *prob, SCIP_Real *lowerbound, SCIP_Bool *stopearly, SCIP_RESULT *result)
void SCIPpricerSetFree(SCIP_PRICER *pricer, SCIP_DECL_PRICERFREE((*pricerfree)))
SCIP_PRICERDATA * SCIPpricerGetData(SCIP_PRICER *pricer)
static GRAPHNODE ** active
#define SCIP_DECL_PRICEREXITSOL(x)
internal methods for handling parameter settings
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
#define BMSfreeMemory(ptr)
#define SCIP_DECL_PRICERCOPY(x)
SCIP_RETCODE SCIPpricerCopyInclude(SCIP_PRICER *pricer, SCIP_SET *set, SCIP_Bool *valid)
SCIP_LPSOLSTAT SCIPlpGetSolstat(SCIP_LP *lp)
internal methods for LP management
void SCIPpricerSetPriority(SCIP_PRICER *pricer, SCIP_SET *set, int priority)
SCIP_RETCODE SCIPpricerExit(SCIP_PRICER *pricer, SCIP_SET *set)
int SCIPpricerGetPriority(SCIP_PRICER *pricer)
void SCIPpricerSetCopy(SCIP_PRICER *pricer, SCIP_DECL_PRICERCOPY((*pricercopy)))
#define BMSfreeMemoryArray(ptr)
internal methods for storing and manipulating the main problem
#define SCIP_DECL_PRICERFARKAS(x)
void SCIPclockReset(SCIP_CLOCK *clck)
SCIP_RETCODE SCIPpricerFree(SCIP_PRICER **pricer, SCIP_SET *set)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
SCIP_DECL_SORTPTRCOMP(SCIPpricerComp)
internal methods for variable pricers
internal methods for global SCIP settings
internal methods for storing priced variables
SCIP_RETCODE SCIPsetAddIntParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_PRICERDATA * pricerdata
#define BMSduplicateMemoryArray(ptr, source, num)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
SCIP_RETCODE SCIPpricerFarkas(SCIP_PRICER *pricer, SCIP_SET *set, SCIP_PROB *prob, SCIP_RESULT *result)
public data structures and miscellaneous methods
SCIP_RETCODE SCIPpricerCreate(SCIP_PRICER **pricer, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int priority, SCIP_Bool delay, SCIP_DECL_PRICERCOPY((*pricercopy)), SCIP_DECL_PRICERFREE((*pricerfree)), SCIP_DECL_PRICERINIT((*pricerinit)), SCIP_DECL_PRICEREXIT((*pricerexit)), SCIP_DECL_PRICERINITSOL((*pricerinitsol)), SCIP_DECL_PRICEREXITSOL((*pricerexitsol)), SCIP_DECL_PRICERREDCOST((*pricerredcost)), SCIP_DECL_PRICERFARKAS((*pricerfarkas)), SCIP_PRICERDATA *pricerdata)
#define SCIP_DECL_PRICERINITSOL(x)
static const char * paramname[]
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPpricerExitsol(SCIP_PRICER *pricer, SCIP_SET *set)
void SCIPpricerSetInitsol(SCIP_PRICER *pricer, SCIP_DECL_PRICERINITSOL((*pricerinitsol)))
SCIP_RETCODE SCIPpricerActivate(SCIP_PRICER *pricer, SCIP_SET *set)
SCIP_Bool SCIPpricerIsDelayed(SCIP_PRICER *pricer)
int SCIPparamGetInt(SCIP_PARAM *param)
SCIP_Bool SCIPpricerIsInitialized(SCIP_PRICER *pricer)
public methods for message output
int SCIPpricerGetNCalls(SCIP_PRICER *pricer)
const char * SCIPpricerGetDesc(SCIP_PRICER *pricer)
SCIP_Real SCIPpricerGetSetupTime(SCIP_PRICER *pricer)
#define BMSallocMemory(ptr)
data structures for variable pricers
int SCIPpricerGetNVarsFound(SCIP_PRICER *pricer)
struct SCIP_PricerData SCIP_PRICERDATA
#define SCIP_DECL_PRICERFREE(x)
common defines and data types used in all packages of SCIP
void SCIPpricerSetExit(SCIP_PRICER *pricer, SCIP_DECL_PRICEREXIT((*pricerexit)))
SCIP_RETCODE SCIPpricerExec(SCIP_PRICER *pricer, SCIP_SET *set, SCIP_PROB *prob, SCIP_LP *lp, SCIP_PRICESTORE *pricestore, SCIP_Real *lowerbound, SCIP_Bool *stopearly, SCIP_RESULT *result)
struct BMS_BlkMem BMS_BLKMEM
#define SCIP_DECL_PRICERREDCOST(x)