Scippy

GCG

Branch-and-Price & Column Generation for Everyone

pricingjob.c File Reference

Detailed Description

methods for working with pricing jobs

Author
Christian Puchert

Various methods to work with pricing jobs

Definition in file pricingjob.c.

#include "pricingjob.h"
#include "pub_gcgcol.h"
#include "pub_pricingjob.h"
#include "gcg.h"
#include "pricer_gcg.h"
#include "pub_pricingprob.h"
#include "pub_solver.h"
#include "scip/scip.h"

Go to the source code of this file.

Functions

SCIP_RETCODE GCGpricingjobCreate (SCIP *scip, GCG_PRICINGJOB **pricingjob, GCG_PRICINGPROB *pricingprob, GCG_SOLVER *solver, int chunk)
 
void GCGpricingjobFree (SCIP *scip, GCG_PRICINGJOB **pricingjob)
 
SCIP_RETCODE GCGpricingjobSetup (SCIP *scip, GCG_PRICINGJOB *pricingjob, SCIP_Bool heuristic, int scoring, int nroundscol, SCIP_Real dualsolconv, int npointsprob, int nraysprob)
 
GCG_PRICINGPROBGCGpricingjobGetPricingprob (GCG_PRICINGJOB *pricingjob)
 
GCG_SOLVERGCGpricingjobGetSolver (GCG_PRICINGJOB *pricingjob)
 
void GCGpricingjobResetSolver (SCIP *scip, GCG_PRICINGJOB *pricingjob)
 
void GCGpricingjobNextSolver (SCIP *scip, GCG_PRICINGJOB *pricingjob)
 
SCIP_Real GCGpricingjobGetChunk (GCG_PRICINGJOB *pricingjob)
 
SCIP_Real GCGpricingjobGetScore (GCG_PRICINGJOB *pricingjob)
 
SCIP_Bool GCGpricingjobIsHeuristic (GCG_PRICINGJOB *pricingjob)
 
void GCGpricingjobSetExact (GCG_PRICINGJOB *pricingjob)
 
void GCGpricingjobResetHeuristic (GCG_PRICINGJOB *pricingjob)
 
void GCGpricingjobIncreaseNHeurIters (GCG_PRICINGJOB *pricingjob)
 
int GCGpricingjobGetNHeurIters (GCG_PRICINGJOB *pricingjob)
 

Function Documentation

◆ GCGpricingjobCreate()

SCIP_RETCODE GCGpricingjobCreate ( SCIP *  scip,
GCG_PRICINGJOB **  pricingjob,
GCG_PRICINGPROB pricingprob,
GCG_SOLVER solver,
int  chunk 
)

create a pricing job

Parameters
scipSCIP data structure (master problem)
pricingjobpricing job to be created
pricingprobdata structure of the corresponding pricing problem
solverpricing solver responsible for the pricing job
chunkchunk that the pricing problem should belong to

Definition at line 51 of file pricingjob.c.

Referenced by gcg::Pricingcontroller::initSol().

◆ GCGpricingjobFree()

void GCGpricingjobFree ( SCIP *  scip,
GCG_PRICINGJOB **  pricingjob 
)

free a pricing job

Parameters
scipSCIP data structure (master problem)
pricingjobpricing job to be freed

Definition at line 72 of file pricingjob.c.

Referenced by gcg::Pricingcontroller::exitSol().

◆ GCGpricingjobSetup()

SCIP_RETCODE GCGpricingjobSetup ( SCIP *  scip,
GCG_PRICINGJOB pricingjob,
SCIP_Bool  heuristic,
int  scoring,
int  nroundscol,
SCIP_Real  dualsolconv,
int  npointsprob,
int  nraysprob 
)

setup a pricing job at the beginning of the pricing loop

Parameters
scipSCIP data structure (master problem)
pricingjobpricing job
heuristicshall the pricing job be performed heuristically?
scoringscoring parameter
nroundscolnumber of previous pricing rounds for which the number of improving columns should be counted
dualsolconvdual solution value of corresponding convexity constraint
npointsprobtotal number of extreme points generated so far by the pricing problem
nraysprobtotal number of extreme rays generated so far by the pricing problem

Definition at line 82 of file pricingjob.c.

References GCGpricingjobGetPricingprob(), GCGpricingjobResetHeuristic(), GCGpricingjobResetSolver(), GCGpricingjobSetExact(), GCGpricingprobGetNColsLastRounds(), GCGpricingprobGetProbnr(), and GCG_PricingJob::score.

Referenced by gcg::Pricingcontroller::setupPriorityQueue().

◆ GCGpricingjobGetSolver()

GCG_SOLVER* GCGpricingjobGetSolver ( GCG_PRICINGJOB pricingjob)

get the pricing solver with which the pricing job is to be performed

Parameters
pricingjobpricing job

Definition at line 133 of file pricingjob.c.

References GCG_PricingJob::solver.

Referenced by gcg::Pricingcontroller::evaluatePricingjob(), ObjPricerGcg::pricingLoop(), gcg::SCIP_DECL_SORTPTRCOMP(), and gcg::Pricingcontroller::setupPriorityQueue().

◆ GCGpricingjobResetSolver()

void GCGpricingjobResetSolver ( SCIP *  scip,
GCG_PRICINGJOB pricingjob 
)

reset the pricing solver to be used to the one with the highest priority

Parameters
scipSCIP data structure (master problem)
pricingjobpricing job

Definition at line 141 of file pricingjob.c.

References GCGpricerGetNSolvers(), GCGpricerGetSolvers(), GCGsolverIsExactEnabled(), GCGsolverIsHeurEnabled(), and GCG_PricingJob::solver.

Referenced by GCGpricingjobSetup().

◆ GCGpricingjobNextSolver()

void GCGpricingjobNextSolver ( SCIP *  scip,
GCG_PRICINGJOB pricingjob 
)

get the next pricing solver to be used, or NULL of there is none

Parameters
scipSCIP data structure (master problem)
pricingjobpricing job

Definition at line 171 of file pricingjob.c.

References GCGpricerGetNSolvers(), GCGpricerGetSolvers(), GCGsolverIsExactEnabled(), GCGsolverIsHeurEnabled(), and GCG_PricingJob::solver.

Referenced by gcg::Pricingcontroller::evaluatePricingjob().

◆ GCGpricingjobGetChunk()

SCIP_Real GCGpricingjobGetChunk ( GCG_PRICINGJOB pricingjob)

get the chunk of a pricing job

Parameters
pricingjobpricing job

Definition at line 206 of file pricingjob.c.

References GCG_PricingJob::chunk.

Referenced by gcg::Pricingcontroller::setupPriorityQueue().

◆ GCGpricingjobGetScore()

SCIP_Real GCGpricingjobGetScore ( GCG_PRICINGJOB pricingjob)

get the score of a pricing job

Parameters
pricingjobpricing job

Definition at line 214 of file pricingjob.c.

References GCG_PricingJob::score.

Referenced by gcg::SCIP_DECL_SORTPTRCOMP().

◆ GCGpricingjobIsHeuristic()

SCIP_Bool GCGpricingjobIsHeuristic ( GCG_PRICINGJOB pricingjob)

return whether the pricing job is to be performed heuristically

Parameters
pricingjobpricing job

Definition at line 222 of file pricingjob.c.

References GCG_PricingJob::heuristic.

Referenced by gcg::Pricingcontroller::evaluatePricingjob(), ObjPricerGcg::pricingLoop(), and gcg::SCIP_DECL_SORTPTRCOMP().

◆ GCGpricingjobSetExact()

void GCGpricingjobSetExact ( GCG_PRICINGJOB pricingjob)

set the pricing job to be performed exactly

Parameters
pricingjobpricing job

Definition at line 230 of file pricingjob.c.

References GCG_PricingJob::heuristic.

Referenced by gcg::Pricingcontroller::evaluatePricingjob(), and GCGpricingjobSetup().

◆ GCGpricingjobResetHeuristic()

void GCGpricingjobResetHeuristic ( GCG_PRICINGJOB pricingjob)

reset number of heuristic pricing iterations of a pricing job

Parameters
pricingjobpricing job

Definition at line 238 of file pricingjob.c.

References GCGsolverIsHeurEnabled(), GCG_PricingJob::heuristic, GCG_PricingJob::nheuriters, and GCG_PricingJob::solver.

Referenced by gcg::Pricingcontroller::evaluatePricingjob(), GCGpricingjobSetup(), and gcg::Pricingcontroller::pricingprobNextBranchcons().

◆ GCGpricingjobIncreaseNHeurIters()

void GCGpricingjobIncreaseNHeurIters ( GCG_PRICINGJOB pricingjob)

update number of heuristic pricing iterations of a pricing job

Parameters
pricingjobpricing job

Definition at line 250 of file pricingjob.c.

References GCG_PricingJob::heuristic, and GCG_PricingJob::nheuriters.

Referenced by gcg::Pricingcontroller::evaluatePricingjob().

◆ GCGpricingjobGetNHeurIters()

int GCGpricingjobGetNHeurIters ( GCG_PRICINGJOB pricingjob)

get the number of heuristic pricing iterations of the pricing job

Parameters
pricingjobpricing job

Definition at line 259 of file pricingjob.c.

References GCG_PricingJob::nheuriters.

Referenced by gcg::Pricingcontroller::evaluatePricingjob(), and gcg::SCIP_DECL_SORTPTRCOMP().