Scippy

GCG

Branch-and-Price & Column Generation for Everyone

pricingprob.c File Reference

Detailed Description

methods for working with pricing problems

Author
Christian Puchert

Various methods to work with pricing problems

Definition in file pricingprob.c.

#include "pricingprob.h"
#include "pub_pricingprob.h"
#include "gcg.h"
#include "pricestore_gcg.h"
#include "pub_colpool.h"
#include "pub_gcgcol.h"
#include "pub_pricingjob.h"
#include "scip/scip.h"

Go to the source code of this file.

Functions

SCIP_RETCODE GCGpricingprobCreate (SCIP *scip, GCG_PRICINGPROB **pricingprob, SCIP *pricingscip, int probnr, int nroundscol)
 
void GCGpricingprobFree (SCIP *scip, GCG_PRICINGPROB **pricingprob)
 
void GCGpricingprobInitPricing (GCG_PRICINGPROB *pricingprob)
 
void GCGpricingprobExitPricing (GCG_PRICINGPROB *pricingprob, int nroundscol)
 
SCIP_RETCODE GCGpricingprobAddGenericBranchData (SCIP *scip, GCG_PRICINGPROB *pricingprob, SCIP_CONS *branchcons, SCIP_Real branchdual)
 
void GCGpricingprobReset (SCIP *scip, GCG_PRICINGPROB *pricingprob)
 
void GCGpricingprobUpdate (SCIP *scip, GCG_PRICINGPROB *pricingprob, GCG_PRICINGSTATUS status, SCIP_Real lowerbound, int nimpcols)
 
SCIP * GCGpricingprobGetPricingscip (GCG_PRICINGPROB *pricingprob)
 
int GCGpricingprobGetProbnr (GCG_PRICINGPROB *pricingprob)
 
void GCGpricingprobGetGenericBranchData (GCG_PRICINGPROB *pricingprob, SCIP_CONS ***branchconss, SCIP_Real **branchduals, int *nbranchconss)
 
int GCGpricingprobGetNGenericBranchconss (GCG_PRICINGPROB *pricingprob)
 
int GCGpricingprobGetBranchconsIdx (GCG_PRICINGPROB *pricingprob)
 
SCIP_Bool GCGpricingprobBranchconsIsAdded (GCG_PRICINGPROB *pricingprob)
 
void GCGpricingprobMarkBranchconsAdded (GCG_PRICINGPROB *pricingprob)
 
void GCGpricingprobNextBranchcons (GCG_PRICINGPROB *pricingprob)
 
GCG_PRICINGSTATUS GCGpricingprobGetStatus (GCG_PRICINGPROB *pricingprob)
 
SCIP_Real GCGpricingprobGetLowerbound (GCG_PRICINGPROB *pricingprob)
 
int GCGpricingprobGetNImpCols (GCG_PRICINGPROB *pricingprob)
 
int GCGpricingprobGetNSolves (GCG_PRICINGPROB *pricingprob)
 
int GCGpricingprobGetNColsLastRounds (GCG_PRICINGPROB *pricingprob, int nroundscol)
 

Function Documentation

◆ GCGpricingprobCreate()

SCIP_RETCODE GCGpricingprobCreate ( SCIP *  scip,
GCG_PRICINGPROB **  pricingprob,
SCIP *  pricingscip,
int  probnr,
int  nroundscol 
)

create a pricing problem

Parameters
scipSCIP data structure (master problem)
pricingprobpricing problem to be created
pricingscipSCIP data structure of the corresponding pricing problem
probnrindex of the corresponding pricing problem
nroundscolnumber of previous pricing rounds for which the number of improving columns should be counted

Definition at line 51 of file pricingprob.c.

References GCG_PRICINGSTATUS_UNKNOWN.

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

◆ GCGpricingprobFree()

void GCGpricingprobFree ( SCIP *  scip,
GCG_PRICINGPROB **  pricingprob 
)

free a pricing problem

Parameters
scipSCIP data structure (master problem)
pricingprobpricing problem to be freed

Definition at line 82 of file pricingprob.c.

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

◆ GCGpricingprobInitPricing()

void GCGpricingprobInitPricing ( GCG_PRICINGPROB pricingprob)

initialize pricing problem at the beginning of the pricing round

Parameters
pricingprobpricing problem structure

Definition at line 95 of file pricingprob.c.

References GCG_PricingProb::branchconsidx, GCG_PricingProb::consisadded, GCG_PricingProb::nbranchconss, and GCG_PricingProb::nimpcols.

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

◆ GCGpricingprobExitPricing()

void GCGpricingprobExitPricing ( GCG_PRICINGPROB pricingprob,
int  nroundscol 
)

uninitialize pricing problem at the beginning of the pricing round

Parameters
pricingprobpricing problem structure
nroundscolnumber of previous pricing rounds for which the number of improving columns should be counted

Definition at line 107 of file pricingprob.c.

References GCG_PricingProb::ncolsround, and GCG_PricingProb::nimpcols.

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

◆ GCGpricingprobAddGenericBranchData()

SCIP_RETCODE GCGpricingprobAddGenericBranchData ( SCIP *  scip,
GCG_PRICINGPROB pricingprob,
SCIP_CONS *  branchcons,
SCIP_Real  branchdual 
)

add generic branching data (constraint and dual value) to the current pricing problem

Parameters
scipSCIP data structure (master problem)
pricingprobpricing problem structure
branchconsgeneric branching constraint
branchdualcorresponding dual solution value

Definition at line 122 of file pricingprob.c.

References GCG_PricingProb::branchconsidx, GCG_PricingProb::branchconss, GCG_PricingProb::branchconsssize, GCG_PricingProb::branchduals, and GCG_PricingProb::nbranchconss.

◆ GCGpricingprobReset()

void GCGpricingprobReset ( SCIP *  scip,
GCG_PRICINGPROB pricingprob 
)

reset the pricing problem statistics for the current pricing round

Parameters
scipSCIP data structure (master problem)
pricingprobpricing problem structure

Definition at line 160 of file pricingprob.c.

References GCG_PricingProb::branchconsidx, GCG_PRICINGSTATUS_UNKNOWN, GCG_PricingProb::lowerbound, GCG_PricingProb::nbranchconss, GCG_PricingProb::nimpcols, GCG_PricingProb::nsolves, and GCG_PricingProb::status.

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

◆ GCGpricingprobUpdate()

void GCGpricingprobUpdate ( SCIP *  scip,
GCG_PRICINGPROB pricingprob,
GCG_PRICINGSTATUS  status,
SCIP_Real  lowerbound,
int  nimpcols 
)

update solution information of a pricing problem

Parameters
scipSCIP data structure (master problem)
pricingprobpricing problem structure
statusstatus of last pricing job
lowerboundnew lower bound
nimpcolsnumber of new improving columns

Definition at line 174 of file pricingprob.c.

References GCG_PRICINGSTATUS_NOTAPPLICABLE, GCG_PricingProb::lowerbound, GCG_PricingProb::nimpcols, GCG_PricingProb::nsolves, and GCG_PricingProb::status.

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

◆ GCGpricingprobGetProbnr()

int GCGpricingprobGetProbnr ( GCG_PRICINGPROB pricingprob)

◆ GCGpricingprobGetGenericBranchData()

void GCGpricingprobGetGenericBranchData ( GCG_PRICINGPROB pricingprob,
SCIP_CONS ***  branchconss,
SCIP_Real **  branchduals,
int *  nbranchconss 
)

get generic branching data corresponding to the pricing problem

Parameters
pricingprobpricing problem structure
branchconsspointer to store branching constraints array, or NULL
branchdualspointer to store array of corresponding dual values, or NULL
nbranchconsspointer to store number of generic branching constraints, or NULL

Definition at line 212 of file pricingprob.c.

References GCG_PricingProb::branchconss, GCG_PricingProb::branchduals, and GCG_PricingProb::nbranchconss.

Referenced by ObjPricerGcg::computeRedCostGcgCol().

◆ GCGpricingprobGetNGenericBranchconss()

int GCGpricingprobGetNGenericBranchconss ( GCG_PRICINGPROB pricingprob)

get the number of generic branching constraints corresponding to the pricing problem

Parameters
pricingprobpricing problem structure

Definition at line 228 of file pricingprob.c.

References GCG_PricingProb::nbranchconss.

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

◆ GCGpricingprobGetBranchconsIdx()

int GCGpricingprobGetBranchconsIdx ( GCG_PRICINGPROB pricingprob)

get index of current generic branching constraint considered the pricing problem

Parameters
pricingprobpricing problem structure

Definition at line 236 of file pricingprob.c.

References GCG_PricingProb::branchconsidx.

◆ GCGpricingprobBranchconsIsAdded()

SCIP_Bool GCGpricingprobBranchconsIsAdded ( GCG_PRICINGPROB pricingprob)

check if the current generic branching constraint has already been added

Parameters
pricingprobpricing problem structure

Definition at line 244 of file pricingprob.c.

References GCG_PricingProb::consisadded.

◆ GCGpricingprobMarkBranchconsAdded()

void GCGpricingprobMarkBranchconsAdded ( GCG_PRICINGPROB pricingprob)

mark the current generic branching constraint to be added

Parameters
pricingprobpricing problem structure

Definition at line 252 of file pricingprob.c.

References GCG_PricingProb::consisadded.

◆ GCGpricingprobNextBranchcons()

void GCGpricingprobNextBranchcons ( GCG_PRICINGPROB pricingprob)

add the information that the next branching constraint must be added

Parameters
pricingprobpricing problem structure

Definition at line 260 of file pricingprob.c.

References GCG_PricingProb::branchconsidx, GCG_PricingProb::consisadded, GCG_PRICINGSTATUS_UNKNOWN, and GCG_PricingProb::status.

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

◆ GCGpricingprobGetStatus()

GCG_PRICINGSTATUS GCGpricingprobGetStatus ( GCG_PRICINGPROB pricingprob)

get the status of a pricing problem

Parameters
pricingprobpricing problem structure

Definition at line 271 of file pricingprob.c.

References GCG_PricingProb::status.

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

◆ GCGpricingprobGetLowerbound()

SCIP_Real GCGpricingprobGetLowerbound ( GCG_PRICINGPROB pricingprob)

get the lower bound of a pricing problem

Parameters
pricingprobpricing problem structure

Definition at line 279 of file pricingprob.c.

References GCG_PricingProb::lowerbound.

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

◆ GCGpricingprobGetNImpCols()

int GCGpricingprobGetNImpCols ( GCG_PRICINGPROB pricingprob)

get the number of improving columns found for this pricing problem

Parameters
pricingprobpricing problem structure

Definition at line 287 of file pricingprob.c.

References GCG_PricingProb::nimpcols.

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

◆ GCGpricingprobGetNSolves()

int GCGpricingprobGetNSolves ( GCG_PRICINGPROB pricingprob)

get the number of times the pricing problem was solved during the loop

Parameters
pricingprobpricing problem structure

Definition at line 295 of file pricingprob.c.

References GCG_PricingProb::nsolves.

◆ GCGpricingprobGetNColsLastRounds()

int GCGpricingprobGetNColsLastRounds ( GCG_PRICINGPROB pricingprob,
int  nroundscol 
)

get the total number of improving columns found in the last pricing rounds

Parameters
pricingprobpricing problem structure
nroundscolnumber of previous pricing rounds for which the number of improving columns should be counted

Definition at line 303 of file pricingprob.c.

References GCG_PricingProb::ncolsround.

Referenced by GCGpricingjobSetup().