Detailed Description
Definition at line 48 of file class_pricingcontroller.h.
#include <class_pricingcontroller.h>
Public Member Functions | |
Pricingcontroller () | |
Pricingcontroller (SCIP *scip) | |
virtual | ~Pricingcontroller () |
SCIP_RETCODE | addParameters () |
SCIP_RETCODE | initSol () |
SCIP_RETCODE | exitSol () |
SCIP_RETCODE | initPricing (PricingType *pricingtype) |
void | exitPricing () |
SCIP_RETCODE | setupPriorityQueue (SCIP_Real *dualsolconv) |
GCG_PRICINGJOB * | getNextPricingjob () |
SCIP_RETCODE | pricingprobNextBranchcons (GCG_PRICINGPROB *pricingprob) |
SCIP_RETCODE | setPricingjobTimelimit (GCG_PRICINGJOB *pricingjob) |
void | updatePricingprob (GCG_PRICINGPROB *pricingprob, GCG_PRICINGSTATUS status, SCIP_Real lowerbound, int nimpcols) |
void | updatePricingjobSolvingStats (GCG_PRICINGJOB *pricingjob) |
void | evaluatePricingjob (GCG_PRICINGJOB *pricingjob, GCG_PRICINGSTATUS status) |
void | collectResults (GCG_COL **bestcols, SCIP_Bool *infeasible, SCIP_Bool *optimal, SCIP_Real *bestobjvals, SCIP_Real *beststabobj, SCIP_Real *bestredcost, SCIP_Bool *bestredcostvalid) |
SCIP_Bool | checkNextChunk () |
SCIP_Bool | canPricingloopBeAborted (PricingType *pricingtype, int nfoundcols, int nsuccessfulprobs) const |
void | resetEagerage () |
void | increaseEagerage () |
GCG_PRICINGPROB * | getPricingprob (int probnr) |
int | getMaxNIters () const |
Constructor & Destructor Documentation
◆ Pricingcontroller() [1/2]
gcg::Pricingcontroller::Pricingcontroller | ( | ) |
default constructor
◆ Pricingcontroller() [2/2]
gcg::Pricingcontroller::Pricingcontroller | ( | SCIP * | scip | ) |
constructor
Definition at line 80 of file class_pricingcontroller.cpp.
References DEFAULT_CHUNKSIZE, DEFAULT_EAGERFREQ, DEFAULT_NROUNDSCOL, and DEFAULT_SORTING.
◆ ~Pricingcontroller()
|
virtual |
destructor
Definition at line 106 of file class_pricingcontroller.cpp.
Member Function Documentation
◆ addParameters()
SCIP_RETCODE gcg::Pricingcontroller::addParameters | ( | ) |
Definition at line 110 of file class_pricingcontroller.cpp.
References DEFAULT_CHUNKSIZE, DEFAULT_EAGERFREQ, DEFAULT_HEURPRICINGITERS, DEFAULT_MAXHEURDEPTH, DEFAULT_NROUNDSCOL, DEFAULT_SORTING, and GCGmasterGetOrigprob().
Referenced by ObjPricerGcg::createPricingcontroller().
◆ initSol()
SCIP_RETCODE gcg::Pricingcontroller::initSol | ( | ) |
Definition at line 271 of file class_pricingcontroller.cpp.
References GCGgetNPricingprobs(), GCGgetNRelPricingprobs(), GCGgetPricingprob(), GCGisPricingprobRelevant(), GCGmasterGetOrigprob(), GCGpqueueCreate(), GCGpricerGetNSolvers(), GCGpricerGetSolvers(), GCGpricingjobCreate(), GCGpricingprobCreate(), GCGsolverIsExactEnabled(), GCGsolverIsHeurEnabled(), and SCIP_CALL_EXC.
◆ exitSol()
SCIP_RETCODE gcg::Pricingcontroller::exitSol | ( | ) |
Definition at line 314 of file class_pricingcontroller.cpp.
References GCGpqueueFree(), GCGpricingjobFree(), and GCGpricingprobFree().
◆ initPricing()
SCIP_RETCODE gcg::Pricingcontroller::initPricing | ( | PricingType * | pricingtype | ) |
pricing initialization, called right at the beginning of pricing
- Parameters
-
pricingtype type of pricing
Definition at line 333 of file class_pricingcontroller.cpp.
References GCGpricerGetNSolvers(), GCGpricingprobGetNGenericBranchconss(), and GCGpricingprobInitPricing().
◆ exitPricing()
void gcg::Pricingcontroller::exitPricing | ( | ) |
pricing deinitialization, called when pricing is finished
Definition at line 362 of file class_pricingcontroller.cpp.
References GCGpricingprobExitPricing().
◆ setupPriorityQueue()
SCIP_RETCODE gcg::Pricingcontroller::setupPriorityQueue | ( | SCIP_Real * | dualsolconv | ) |
setup the priority queue (done once per stabilization round): add all pricing jobs to be performed
- Parameters
-
dualsolconv dual solution values / Farkas coefficients of convexity constraints
Definition at line 371 of file class_pricingcontroller.cpp.
References GCGpqueueClear(), GCGpqueueInsert(), GCGpricerGetNPointsProb(), GCGpricerGetNRaysProb(), GCGpricingjobGetChunk(), GCGpricingjobGetPricingprob(), GCGpricingjobGetSolver(), GCGpricingjobSetup(), GCGpricingprobGetProbnr(), GCGpricingprobReset(), GCGsolverIsHeurEnabled(), and SCIP_CALL_EXC.
◆ getNextPricingjob()
GCG_PRICINGJOB * gcg::Pricingcontroller::getNextPricingjob | ( | ) |
get the next pricing job to be performed
Definition at line 405 of file class_pricingcontroller.cpp.
References GCGpqueueRemove(), and GCGpricingjobGetPricingprob().
◆ pricingprobNextBranchcons()
SCIP_RETCODE gcg::Pricingcontroller::pricingprobNextBranchcons | ( | GCG_PRICINGPROB * | pricingprob | ) |
add the information that the next branching constraint must be added, and for the pricing job, reset heuristic pricing counter and flag
- Parameters
-
pricingprob pricing problem structure
Definition at line 421 of file class_pricingcontroller.cpp.
References GCGpqueueResort(), GCGpricingjobGetPricingprob(), GCGpricingjobResetHeuristic(), and GCGpricingprobNextBranchcons().
Referenced by evaluatePricingjob().
◆ setPricingjobTimelimit()
SCIP_RETCODE gcg::Pricingcontroller::setPricingjobTimelimit | ( | GCG_PRICINGJOB * | pricingjob | ) |
set an individual time limit for a pricing job
- Parameters
-
pricingjob pricing job
Definition at line 442 of file class_pricingcontroller.cpp.
References GCGpricingjobGetPricingprob(), and GCGpricingprobGetPricingscip().
◆ updatePricingprob()
void gcg::Pricingcontroller::updatePricingprob | ( | GCG_PRICINGPROB * | pricingprob, |
GCG_PRICINGSTATUS | status, | ||
SCIP_Real | lowerbound, | ||
int | nimpcols | ||
) |
update solution information of a pricing problem
- Parameters
-
pricingprob pricing problem structure status new pricing status lowerbound new lower bound nimpcols number of new improving columns
Definition at line 461 of file class_pricingcontroller.cpp.
References GCGpricingprobUpdate().
◆ updatePricingjobSolvingStats()
void gcg::Pricingcontroller::updatePricingjobSolvingStats | ( | GCG_PRICINGJOB * | pricingjob | ) |
update solution statistics of a pricing job
- Parameters
-
pricingjob pricing job
◆ evaluatePricingjob()
void gcg::Pricingcontroller::evaluatePricingjob | ( | GCG_PRICINGJOB * | pricingjob, |
GCG_PRICINGSTATUS | status | ||
) |
decide whether a pricing job must be treated again
- Parameters
-
pricingjob pricing job status status of pricing job
Definition at line 472 of file class_pricingcontroller.cpp.
References GCG_PRICINGSTATUS_NOTAPPLICABLE, GCG_PRICINGSTATUS_OPTIMAL, GCG_PRICINGSTATUS_SOLVERLIMIT, GCG_PRICINGSTATUS_UNKNOWN, GCGpqueueInsert(), GCGpricingjobGetNHeurIters(), GCGpricingjobGetPricingprob(), GCGpricingjobGetSolver(), GCGpricingjobIncreaseNHeurIters(), GCGpricingjobIsHeuristic(), GCGpricingjobNextSolver(), GCGpricingjobResetHeuristic(), GCGpricingjobSetExact(), GCGpricingprobGetProbnr(), GCGsolverGetName(), pricingprobNextBranchcons(), and SCIP_CALL_EXC.
◆ collectResults()
void gcg::Pricingcontroller::collectResults | ( | GCG_COL ** | bestcols, |
SCIP_Bool * | infeasible, | ||
SCIP_Bool * | optimal, | ||
SCIP_Real * | bestobjvals, | ||
SCIP_Real * | beststabobj, | ||
SCIP_Real * | bestredcost, | ||
SCIP_Bool * | bestredcostvalid | ||
) |
collect solution results from all pricing problems
- Parameters
-
bestcols best found columns per pricing problem infeasible pointer to store whether pricing is infeasible optimal pointer to store whether all pricing problems were solved to optimality bestobjvals array to store best lower bounds beststabobj pointer to store total lower bound bestredcost pointer to store best total reduced cost bestredcostvalid pointer to store whether best reduced cost is valid
Definition at line 537 of file class_pricingcontroller.cpp.
References GCG_PRICETYPE_FARKAS, GCG_PRICINGSTATUS_INFEASIBLE, GCG_PRICINGSTATUS_OPTIMAL, GCGcolGetRedcost(), GCGgetNIdenticalBlocks(), GCGgetNPricingprobs(), GCGmasterGetOrigprob(), GCGpricingprobGetLowerbound(), GCGpricingprobGetNImpCols(), GCGpricingprobGetProbnr(), GCGpricingprobGetStatus(), and PricingType::getType().
◆ checkNextChunk()
SCIP_Bool gcg::Pricingcontroller::checkNextChunk | ( | ) |
check if the next chunk of pricing problems is to be used
Definition at line 590 of file class_pricingcontroller.cpp.
◆ canPricingloopBeAborted()
SCIP_Bool gcg::Pricingcontroller::canPricingloopBeAborted | ( | PricingType * | pricingtype, |
int | nfoundcols, | ||
int | nsuccessfulprobs | ||
) | const |
decide whether the pricing loop can be aborted
- Parameters
-
pricingtype type of pricing (reduced cost or Farkas) nfoundcols number of negative reduced cost columns found so far nsuccessfulprobs number of pricing problems solved successfully so far
Definition at line 608 of file class_pricingcontroller.cpp.
References GCGgetNRelPricingprobs(), GCGmasterGetOrigprob(), PricingType::getMaxcolsround(), PricingType::getRelmaxprobs(), and PricingType::getRelmaxsuccessfulprobs().
◆ resetEagerage()
void gcg::Pricingcontroller::resetEagerage | ( | ) |
Definition at line 628 of file class_pricingcontroller.cpp.
◆ increaseEagerage()
void gcg::Pricingcontroller::increaseEagerage | ( | ) |
Definition at line 633 of file class_pricingcontroller.cpp.
◆ getPricingprob()
GCG_PRICINGPROB * gcg::Pricingcontroller::getPricingprob | ( | int | probnr | ) |
for a given problem index, get the corresponding pricing problem (or NULL, if it does not exist)
- Parameters
-
probnr index of the pricing problem
Definition at line 640 of file class_pricingcontroller.cpp.
References GCGpricingprobGetProbnr().
◆ getMaxNIters()
int gcg::Pricingcontroller::getMaxNIters | ( | ) | const |
get maximal possible number of pricing iterations
Definition at line 652 of file class_pricingcontroller.cpp.