Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods to include and access pricer plugins of SCIP

Functions

SCIP_EXPORT SCIP_DECL_SORTPTRCOMP (SCIPpricerComp)
 
SCIP_EXPORT SCIP_DECL_SORTPTRCOMP (SCIPpricerCompName)
 
SCIP_EXPORT SCIP_PRICERDATASCIPpricerGetData (SCIP_PRICER *pricer)
 
SCIP_EXPORT void SCIPpricerSetData (SCIP_PRICER *pricer, SCIP_PRICERDATA *pricerdata)
 
SCIP_EXPORT const char * SCIPpricerGetName (SCIP_PRICER *pricer)
 
SCIP_EXPORT const char * SCIPpricerGetDesc (SCIP_PRICER *pricer)
 
SCIP_EXPORT int SCIPpricerGetPriority (SCIP_PRICER *pricer)
 
SCIP_EXPORT int SCIPpricerGetNCalls (SCIP_PRICER *pricer)
 
SCIP_EXPORT int SCIPpricerGetNVarsFound (SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_Real SCIPpricerGetSetupTime (SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_Real SCIPpricerGetTime (SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_Bool SCIPpricerIsActive (SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_Bool SCIPpricerIsDelayed (SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_Bool SCIPpricerIsInitialized (SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_RETCODE SCIPincludePricer (SCIP *scip, 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)
 
SCIP_EXPORT SCIP_RETCODE SCIPincludePricerBasic (SCIP *scip, SCIP_PRICER **pricerptr, const char *name, const char *desc, int priority, SCIP_Bool delay, SCIP_DECL_PRICERREDCOST((*pricerredcost)), SCIP_DECL_PRICERFARKAS((*pricerfarkas)), SCIP_PRICERDATA *pricerdata)
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerCopy (SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERCOPY((*pricercopy)))
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerFree (SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERFREE((*pricerfree)))
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerInit (SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERINIT((*pricerinit)))
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerExit (SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICEREXIT((*pricerexit)))
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerInitsol (SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICERINITSOL((*pricerinitsol)))
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerExitsol (SCIP *scip, SCIP_PRICER *pricer, SCIP_DECL_PRICEREXITSOL((*pricerexitsol)))
 
SCIP_EXPORT SCIP_PRICERSCIPfindPricer (SCIP *scip, const char *name)
 
SCIP_EXPORT SCIP_PRICER ** SCIPgetPricers (SCIP *scip)
 
SCIP_EXPORT int SCIPgetNPricers (SCIP *scip)
 
SCIP_EXPORT int SCIPgetNActivePricers (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPsetPricerPriority (SCIP *scip, SCIP_PRICER *pricer, int priority)
 
SCIP_EXPORT SCIP_RETCODE SCIPactivatePricer (SCIP *scip, SCIP_PRICER *pricer)
 
SCIP_EXPORT SCIP_RETCODE SCIPdeactivatePricer (SCIP *scip, SCIP_PRICER *pricer)
 

Function Documentation

◆ SCIP_DECL_SORTPTRCOMP() [1/2]

SCIP_EXPORT SCIP_DECL_SORTPTRCOMP ( SCIPpricerComp  )

compares two pricers w. r. to their priority

compares two pricers w. r. to their activity and their priority

Definition at line 44 of file pricer.c.

References active.

◆ SCIP_DECL_SORTPTRCOMP() [2/2]

SCIP_EXPORT SCIP_DECL_SORTPTRCOMP ( SCIPpricerCompName  )

comparison method for sorting pricers w.r.t. to their name

Definition at line 53 of file pricer.c.

References active, and SCIPpricerGetName().

◆ SCIPpricerGetData()

◆ SCIPpricerSetData()

SCIP_EXPORT void SCIPpricerSetData ( SCIP_PRICER pricer,
SCIP_PRICERDATA pricerdata 
)

sets user data of variable pricer; user has to free old data in advance!

Parameters
pricervariable pricer
pricerdatanew variable pricer user data

Definition at line 511 of file pricer.c.

References NULL, and SCIP_Pricer::pricerdata.

Referenced by SCIP_DECL_PRICERFREE().

◆ SCIPpricerGetName()

SCIP_EXPORT const char* SCIPpricerGetName ( SCIP_PRICER pricer)

◆ SCIPpricerGetDesc()

SCIP_EXPORT const char* SCIPpricerGetDesc ( SCIP_PRICER pricer)

gets description of variable pricer

Parameters
pricervariable pricer

Definition at line 598 of file pricer.c.

References SCIP_Pricer::desc, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().

◆ SCIPpricerGetPriority()

SCIP_EXPORT int SCIPpricerGetPriority ( SCIP_PRICER pricer)

gets priority of variable pricer

Parameters
pricervariable pricer

Definition at line 608 of file pricer.c.

References NULL, and SCIP_Pricer::priority.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPpricerGetNCalls()

SCIP_EXPORT int SCIPpricerGetNCalls ( SCIP_PRICER pricer)

gets the number of times, the pricer was called and tried to find a variable with negative reduced costs

Parameters
pricervariable pricer

Definition at line 632 of file pricer.c.

References SCIP_Pricer::ncalls, and NULL.

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricerGetNVarsFound()

SCIP_EXPORT int SCIPpricerGetNVarsFound ( SCIP_PRICER pricer)

gets the number of variables with negative reduced costs found by this pricer

Parameters
pricervariable pricer

Definition at line 642 of file pricer.c.

References NULL, and SCIP_Pricer::nvarsfound.

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricerGetSetupTime()

SCIP_EXPORT SCIP_Real SCIPpricerGetSetupTime ( SCIP_PRICER pricer)

gets time in seconds used in this pricer for setting up for next stages

Parameters
pricervariable pricer

Definition at line 652 of file pricer.c.

References NULL, SCIPclockGetTime(), and SCIP_Pricer::setuptime.

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricerGetTime()

SCIP_EXPORT SCIP_Real SCIPpricerGetTime ( SCIP_PRICER pricer)

gets time in seconds used in this pricer

Parameters
pricervariable pricer

Definition at line 662 of file pricer.c.

References NULL, SCIP_Pricer::pricerclock, and SCIPclockGetTime().

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricerIsActive()

SCIP_EXPORT SCIP_Bool SCIPpricerIsActive ( SCIP_PRICER pricer)

returns whether the given pricer is in use in the current problem

Parameters
pricervariable pricer

Definition at line 684 of file pricer.c.

References SCIP_Pricer::active, and NULL.

Referenced by SCIPsetEnableOrDisablePluginClocks().

◆ SCIPpricerIsDelayed()

SCIP_EXPORT SCIP_Bool SCIPpricerIsDelayed ( SCIP_PRICER pricer)

returns whether the pricer should be delayed until no other pricer finds a new variable

Parameters
pricervariable pricer

Definition at line 694 of file pricer.c.

References SCIP_Pricer::delay, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPpricerIsInitialized()

SCIP_EXPORT SCIP_Bool SCIPpricerIsInitialized ( SCIP_PRICER pricer)

is variable pricer initialized?

Parameters
pricervariable pricer

Definition at line 704 of file pricer.c.

References SCIP_Pricer::initialized, and NULL.

◆ SCIPincludePricer()

SCIP_EXPORT SCIP_RETCODE SCIPincludePricer ( SCIP scip,
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 
)

creates a variable pricer and includes it in SCIP To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer(). This should be done during the problem creation stage.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Note
method has all pricer callbacks as arguments and is thus changed every time a new callback is added in future releases; consider using SCIPincludePricerBasic() and setter functions if you seek for a method which is less likely to change in future releases
Parameters
scipSCIP data structure
namename of variable pricer
descdescription of variable pricer
prioritypriority of the variable pricer
delayshould the pricer be delayed until no other pricers or already existing problem variables with negative reduced costs are found? if this is set to FALSE it may happen that the pricer produces columns that already exist in the problem (which are also priced in by the default problem variable pricing in the same round)
pricerdatavariable pricer data

Definition at line 59 of file scip_pricer.c.

References FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPfindPricer(), SCIPpricerCreate(), SCIPsetIncludePricer(), Scip::set, SCIP_Mem::setmem, and TRUE.

Referenced by SCIPincludeObjPricer().

◆ SCIPincludePricerBasic()

SCIP_EXPORT SCIP_RETCODE SCIPincludePricerBasic ( SCIP scip,
SCIP_PRICER **  pricerptr,
const char *  name,
const char *  desc,
int  priority,
SCIP_Bool  delay,
SCIP_DECL_PRICERREDCOST((*pricerredcost))  ,
SCIP_DECL_PRICERFARKAS((*pricerfarkas))  ,
SCIP_PRICERDATA pricerdata 
)

creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL; if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(), SCIPsetPricerInity(), SCIPsetPricerExit(), SCIPsetPricerInitsol(), SCIPsetPricerExitsol(), SCIPsetPricerFarkas();

To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer(). This should be done during the problem creation stage.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Note
if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead
Parameters
scipSCIP data structure
pricerptrreference to a pricer, or NULL
namename of variable pricer
descdescription of variable pricer
prioritypriority of the variable pricer
delayshould the pricer be delayed until no other pricers or already existing problem variables with negative reduced costs are found? if this is set to FALSE it may happen that the pricer produces columns that already exist in the problem (which are also priced in by the default problem variable pricing in the same round)
pricerdatavariable pricer data

Definition at line 117 of file scip_pricer.c.

References FALSE, Scip::mem, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcheckStage(), SCIPerrorMessage, SCIPfindPricer(), SCIPpricerCreate(), SCIPsetIncludePricer(), Scip::set, SCIP_Mem::setmem, and TRUE.

Referenced by SCIPincludePricerBinpacking(), SCIPincludePricerColoring(), SCIPincludePricerRpa(), and SCIPincludePricerStp().

◆ SCIPsetPricerCopy()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerCopy ( SCIP scip,
SCIP_PRICER pricer,
SCIP_DECL_PRICERCOPY((*pricercopy))   
)

sets copy method of pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricerpricer

Definition at line 165 of file scip_pricer.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerSetCopy(), and TRUE.

Referenced by SCIPincludePricerColoring(), and SCIPincludePricerStp().

◆ SCIPsetPricerFree()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerFree ( SCIP scip,
SCIP_PRICER pricer,
SCIP_DECL_PRICERFREE((*pricerfree))   
)

sets destructor method of pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricerpricer

Definition at line 189 of file scip_pricer.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerSetFree(), and TRUE.

Referenced by SCIPincludePricerBinpacking(), SCIPincludePricerColoring(), SCIPincludePricerRpa(), and SCIPincludePricerStp().

◆ SCIPsetPricerInit()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerInit ( SCIP scip,
SCIP_PRICER pricer,
SCIP_DECL_PRICERINIT((*pricerinit))   
)

sets initialization method of pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricerpricer

Definition at line 213 of file scip_pricer.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerSetInit(), and TRUE.

Referenced by SCIPincludePricerBinpacking(), SCIPincludePricerRpa(), and SCIPincludePricerStp().

◆ SCIPsetPricerExit()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerExit ( SCIP scip,
SCIP_PRICER pricer,
SCIP_DECL_PRICEREXIT((*pricerexit))   
)

sets deinitialization method of pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricerpricer

Definition at line 237 of file scip_pricer.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerSetExit(), and TRUE.

Referenced by SCIPincludePricerRpa().

◆ SCIPsetPricerInitsol()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerInitsol ( SCIP scip,
SCIP_PRICER pricer,
SCIP_DECL_PRICERINITSOL((*pricerinitsol))   
)

sets solving process initialization method of pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricerpricer

Definition at line 261 of file scip_pricer.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerSetInitsol(), and TRUE.

Referenced by SCIPincludePricerColoring(), and SCIPincludePricerStp().

◆ SCIPsetPricerExitsol()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerExitsol ( SCIP scip,
SCIP_PRICER pricer,
SCIP_DECL_PRICEREXITSOL((*pricerexitsol))   
)

sets solving process deinitialization method of pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricerpricer

Definition at line 285 of file scip_pricer.c.

References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerSetExitsol(), and TRUE.

Referenced by SCIPincludePricerBinpacking(), SCIPincludePricerColoring(), and SCIPincludePricerStp().

◆ SCIPfindPricer()

SCIP_EXPORT SCIP_PRICER* SCIPfindPricer ( SCIP scip,
const char *  name 
)

returns the variable pricer of the given name, or NULL if not existing

Parameters
scipSCIP data structure
namename of variable pricer

Definition at line 301 of file scip_pricer.c.

References NULL, SCIPsetFindPricer(), and Scip::set.

Referenced by execmain(), readCol(), SCIP_DECL_READERREAD(), SCIPfindObjPricer(), SCIPincludePricer(), SCIPincludePricerBasic(), SCIPpricerBinpackingActivate(), and SCIPpricerRpaActivate().

◆ SCIPgetPricers()

SCIP_EXPORT SCIP_PRICER** SCIPgetPricers ( SCIP scip)

returns the array of currently available variable pricers; active pricers are in the first slots of the array

Parameters
scipSCIP data structure

Definition at line 314 of file scip_pricer.c.

References NULL, SCIP_Set::pricers, SCIPsetSortPricers(), and Scip::set.

Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().

◆ SCIPgetNPricers()

SCIP_EXPORT int SCIPgetNPricers ( SCIP scip)

returns the number of currently available variable pricers

Parameters
scipSCIP data structure

Definition at line 327 of file scip_pricer.c.

References SCIP_Set::npricers, NULL, and Scip::set.

Referenced by SCIP_DECL_DIALOGEXEC(), SCIPincludeDialogDefaultFix(), and SCIPincludeDialogDefaultSet().

◆ SCIPgetNActivePricers()

SCIP_EXPORT int SCIPgetNActivePricers ( SCIP scip)

returns the number of currently active variable pricers, that are used in the LP solving loop

Parameters
scipSCIP data structure

Definition at line 338 of file scip_pricer.c.

References SCIP_Set::nactivepricers, NULL, and Scip::set.

Referenced by determineSymmetry(), doCopy(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), SCIP_DECL_PRESOLEXEC(), and SCIPapplyHeurSubNlp().

◆ SCIPsetPricerPriority()

SCIP_EXPORT SCIP_RETCODE SCIPsetPricerPriority ( SCIP scip,
SCIP_PRICER pricer,
int  priority 
)

sets the priority of a variable pricer

sets the priority priority of a variable pricer

Parameters
scipSCIP data structure
pricervariable pricer
prioritynew priority of the variable pricer

Definition at line 349 of file scip_pricer.c.

References NULL, SCIP_OKAY, SCIPpricerSetPriority(), and Scip::set.

Referenced by SCIP_DECL_PARAMCHGD().

◆ SCIPactivatePricer()

SCIP_EXPORT SCIP_RETCODE SCIPactivatePricer ( SCIP scip,
SCIP_PRICER pricer 
)

activates pricer to be used for the current problem This method should be called during the problem creation stage for all pricers that are necessary to solve the problem model. The pricers are automatically deactivated when the problem is freed.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricervariable pricer

Definition at line 374 of file scip_pricer.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerActivate(), Scip::set, and TRUE.

Referenced by execmain(), readCol(), SCIP_DECL_READERREAD(), SCIPpricerBinpackingActivate(), SCIPpricerRpaActivate(), and SCIPsetEnableOrDisablePluginClocks().

◆ SCIPdeactivatePricer()

SCIP_EXPORT SCIP_RETCODE SCIPdeactivatePricer ( SCIP scip,
SCIP_PRICER pricer 
)

deactivates pricer

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
pricervariable pricer

Definition at line 395 of file scip_pricer.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPpricerDeactivate(), Scip::set, and TRUE.