gcg::Pricingcontroller Class Reference

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_PRICINGJOBgetNextPricingjob ()
 
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_PRICINGPROBgetPricingprob (int probnr)
 
int getMaxNIters () const
 

Constructor & Destructor Documentation

gcg::Pricingcontroller::Pricingcontroller ( )

default constructor

gcg::Pricingcontroller::Pricingcontroller ( SCIP *  scip)

constructor

Definition at line 85 of file class_pricingcontroller.cpp.

References addParameters().

gcg::Pricingcontroller::~Pricingcontroller ( )
virtual

destructor

Definition at line 111 of file class_pricingcontroller.cpp.

References GCGmasterGetOrigprob().

Member Function Documentation

SCIP_RETCODE gcg::Pricingcontroller::addParameters ( )
SCIP_Bool gcg::Pricingcontroller::canPricingloopBeAborted ( PricingType pricingtype,
int  nfoundcols,
int  nsuccessfulprobs 
) const

decide whether the pricing loop can be aborted

Parameters
pricingtypetype of pricing (reduced cost or Farkas)
nfoundcolsnumber of negative reduced cost columns found so far
nsuccessfulprobsnumber of pricing problems solved successfully so far

Definition at line 598 of file class_pricingcontroller.cpp.

References GCGgetNRelPricingprobs(), GCGmasterGetOrigprob(), PricingType::getMaxcolsround(), PricingType::getRelmaxprobs(), PricingType::getRelmaxsuccessfulprobs(), and resetEagerage().

Referenced by checkNextChunk().

SCIP_Bool gcg::Pricingcontroller::checkNextChunk ( )

check if the next chunk of pricing problems is to be used

Definition at line 580 of file class_pricingcontroller.cpp.

References canPricingloopBeAborted().

Referenced by 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
bestcolsbest found columns per pricing problem
infeasiblepointer to store whether pricing is infeasible
optimalpointer to store whether all pricing problems were solved to optimality
bestobjvalsarray to store best lower bounds
beststabobjpointer to store total lower bound
bestredcostpointer to store best total reduced cost
bestredcostvalidpointer to store whether best reduced cost is valid

Definition at line 527 of file class_pricingcontroller.cpp.

References checkNextChunk(), GCG_PRICETYPE_FARKAS, GCG_PRICINGSTATUS_INFEASIBLE, GCG_PRICINGSTATUS_OPTIMAL, GCGcolGetRedcost(), GCGgetNIdenticalBlocks(), GCGgetNPricingprobs(), GCGmasterGetOrigprob(), GCGpricingprobGetLowerbound(), GCGpricingprobGetNImpCols(), GCGpricingprobGetProbnr(), GCGpricingprobGetStatus(), and PricingType::getType().

void gcg::Pricingcontroller::evaluatePricingjob ( GCG_PRICINGJOB pricingjob,
GCG_PRICINGSTATUS  status 
)

decide whether a pricing job must be treated again

Parameters
pricingjobpricing job
statusstatus of pricing job

Definition at line 467 of file class_pricingcontroller.cpp.

Referenced by updatePricingprob().

void gcg::Pricingcontroller::exitPricing ( )

pricing deinitialization, called when pricing is finished

Definition at line 359 of file class_pricingcontroller.cpp.

SCIP_RETCODE gcg::Pricingcontroller::exitSol ( )
int gcg::Pricingcontroller::getMaxNIters ( ) const

get maximal possible number of pricing iterations

Definition at line 639 of file class_pricingcontroller.cpp.

GCG_PRICINGJOB * gcg::Pricingcontroller::getNextPricingjob ( )

get the next pricing job to be performed

Definition at line 400 of file class_pricingcontroller.cpp.

References GCGpqueueRemove(), GCGpricingjobGetPricingprob(), and pricingprobNextBranchcons().

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
probnrindex of the pricing problem

Definition at line 627 of file class_pricingcontroller.cpp.

void gcg::Pricingcontroller::increaseEagerage ( )

Definition at line 620 of file class_pricingcontroller.cpp.

Referenced by SCIP_DECL_PRICERREDCOST().

SCIP_RETCODE gcg::Pricingcontroller::initPricing ( PricingType pricingtype)

pricing initialization, called right at the beginning of pricing

Parameters
pricingtypetype of pricing

Definition at line 330 of file class_pricingcontroller.cpp.

Referenced by exitSol().

SCIP_RETCODE gcg::Pricingcontroller::initSol ( )

Definition at line 271 of file class_pricingcontroller.cpp.

Referenced by SCIP_DECL_PRICERINITSOL().

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
pricingprobpricing problem structure

Definition at line 416 of file class_pricingcontroller.cpp.

Referenced by getNextPricingjob().

void gcg::Pricingcontroller::resetEagerage ( )

Definition at line 615 of file class_pricingcontroller.cpp.

Referenced by canPricingloopBeAborted().

SCIP_RETCODE gcg::Pricingcontroller::setPricingjobTimelimit ( GCG_PRICINGJOB pricingjob)

set an individual time limit for a pricing job

Parameters
pricingjobpricing job

Definition at line 437 of file class_pricingcontroller.cpp.

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
dualsolconvdual solution values / Farkas coefficients of convexity constraints

Definition at line 368 of file class_pricingcontroller.cpp.

void gcg::Pricingcontroller::updatePricingjobSolvingStats ( GCG_PRICINGJOB pricingjob)

update solution statistics of a pricing job

Parameters
pricingjobpricing job
void gcg::Pricingcontroller::updatePricingprob ( GCG_PRICINGPROB pricingprob,
GCG_PRICINGSTATUS  status,
SCIP_Real  lowerbound,
int  nimpcols 
)

update solution information of a pricing problem

Parameters
pricingprobpricing problem structure
statusnew pricing status
lowerboundnew lower bound
nimpcolsnumber of new improving columns

Definition at line 456 of file class_pricingcontroller.cpp.

References evaluatePricingjob(), and GCGpricingprobUpdate().