Scippy

GCG

Branch-and-Price & Column Generation for Everyone

Detailed Description

Typedefs

typedef enum GCG_Pricetype GCG_PRICETYPE
 

Enumerations

enum  GCG_Pricetype {
  GCG_PRICETYPE_UNKNOWN = -1,
  GCG_PRICETYPE_INIT = 0,
  GCG_PRICETYPE_FARKAS = 1,
  GCG_PRICETYPE_REDCOST = 2
}
 

Functions

SCIP_RETCODE SCIPincludePricerGcg (SCIP *scip, SCIP *origprob)
 
SCIP * GCGmasterGetOrigprob (SCIP *scip)
 
SCIP_VAR ** GCGmasterGetPricedvars (SCIP *scip)
 
int GCGmasterGetNPricedvars (SCIP *scip)
 
SCIP_RETCODE GCGmasterAddMasterconsToHashmap (SCIP *scip, SCIP_CONS *cons, int pos)
 
SCIP_RETCODE GCGmasterSetRootLPSol (SCIP *scip, SCIP_SOL **sol)
 
SCIP_RETCODE GCGpricerIncludeSolver (SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool heurenabled, SCIP_Bool exactenabled, GCG_DECL_SOLVERUPDATE((*solverupdate)), GCG_DECL_SOLVERSOLVE((*solversolve)), GCG_DECL_SOLVERSOLVEHEUR((*solveheur)), GCG_DECL_SOLVERFREE((*solverfree)), GCG_DECL_SOLVERINIT((*solverinit)), GCG_DECL_SOLVEREXIT((*solverexit)), GCG_DECL_SOLVERINITSOL((*solverinitsol)), GCG_DECL_SOLVEREXITSOL((*solverexitsol)), GCG_SOLVERDATA *solverdata)
 
GCG_SOLVER ** GCGpricerGetSolvers (SCIP *scip)
 
int GCGpricerGetNSolvers (SCIP *scip)
 
void GCGpricerPrintListOfSolvers (SCIP *scip)
 
void GCGpricerPrintPricingStatistics (SCIP *scip, FILE *file)
 
void GCGpricerPrintStatistics (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGpricerExistRays (SCIP *scip, SCIP_Bool *exist)
 
int GCGpricerGetNPointsProb (SCIP *scip, int probnr)
 
int GCGpricerGetNRaysProb (SCIP *scip, int probnr)
 
int GCGpricerGetMaxColsRound (SCIP *scip)
 
int GCGpricerGetMaxColsProb (SCIP *scip)
 
SCIP_RETCODE GCGpricerAddCol (SCIP *scip, GCG_COL *col)
 
SCIP_RETCODE GCGmasterTransOrigSolToMasterVars (SCIP *scip, SCIP_SOL *origsol, SCIP_Bool *stored)
 
SCIP_RETCODE GCGmasterCreateInitialMastervars (SCIP *scip)
 
SCIP_Real GCGmasterGetDegeneracy (SCIP *scip)
 
SCIP_Bool GCGmasterIsCurrentSolValid (SCIP *scip)
 
SCIP_Bool GCGmasterIsBestsolValid (SCIP *scip)
 
SCIP_Bool GCGmasterIsSolValid (SCIP *scip, SCIP_SOL *mastersol)
 
SCIP_Longint GCGmasterGetPricingSimplexIters (SCIP *scip)
 
SCIP_RETCODE GCGmasterPrintSimplexIters (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGsetPricingObjs (SCIP *scip, SCIP_Real *dualsolconv)
 
SCIP_RETCODE GCGcreateNewMasterVarFromGcgCol (SCIP *scip, SCIP_Bool infarkas, GCG_COL *gcgcol, SCIP_Bool force, SCIP_Bool *added, SCIP_VAR **addedvar, SCIP_Real score)
 
SCIP_Real GCGcomputeRedCostGcgCol (SCIP *scip, SCIP_Bool infarkas, GCG_COL *gcgcol, SCIP_Real *objvalptr)
 
SCIP_RETCODE GCGcomputeColMastercoefs (SCIP *scip, GCG_COL *gcgcol)
 

Typedef Documentation

◆ GCG_PRICETYPE

Definition at line 59 of file pricer_gcg.h.

Enumeration Type Documentation

◆ GCG_Pricetype

Enumerator
GCG_PRICETYPE_UNKNOWN 

unknown pricing type

GCG_PRICETYPE_INIT 

initial pricing

GCG_PRICETYPE_FARKAS 

farkas pricing

GCG_PRICETYPE_REDCOST 

redcost pricing

Definition at line 52 of file pricer_gcg.h.

Function Documentation

◆ SCIPincludePricerGcg()

◆ GCGmasterGetOrigprob()

SCIP* GCGmasterGetOrigprob ( SCIP *  scip)

returns the pointer to the scip instance representing the original problem

Definition at line 4239 of file pricer_gcg.cpp.

References ObjPricerGcg::getOrigprob(), and PRICER_NAME.

Referenced by gcg::Pricingcontroller::addParameters(), ReducedCostPricing::addParameters(), FarkasPricing::addParameters(), applyGlobalBndchgsToPricedMastervars(), applyGlobalBndchgsToPricingprobs(), applyLocalBndchgsToPricedMastervars(), applyLocalBndchgsToPricingprobs(), gcg::Pricingcontroller::canPricingloopBeAborted(), gcg::Pricingcontroller::collectResults(), gcg::Stabilization::consGetDual(), gcg::Stabilization::convGetDual(), ObjPricerGcg::createNewMasterVarFromGcgCol(), GCG_DECL_BRANCHACTIVEMASTER(), GCG_DECL_BRANCHDEACTIVEMASTER(), GCG_DECL_BRANCHPROPMASTER(), GCG_DECL_SOLVEREXITSOL(), GCG_DECL_SOLVERINITSOL(), GCGbranchGenericInitbranch(), GCGcolComputeDualObjPara(), GCGcreateConsMasterbranch(), GCGgetOriginalprob(), GCGincludeSolverCliquer(), GCGincludeSolverCplex(), GCGincludeSolverMip(), GCGpricerGetNPointsProb(), GCGpricerGetNRaysProb(), GCGpricestoreApplyCols(), GCGsepaBasisAddPricingCut(), GCGsolverCreate(), getBestMastervar(), initializeConsdata(), initializeStartsol(), gcg::Pricingcontroller::initSol(), gcg::Stabilization::linkingconsGetDual(), ObjPricerGcg::pricingLoop(), resetPricingVarBound(), SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_BRANCHINIT(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSDEACTIVE(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSINIT(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSPROP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINIT(), SCIP_DECL_NODESELSELECT(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXIT(), SCIP_DECL_SEPAEXITSOL(), SCIP_DECL_SEPAINIT(), SCIPgetRelpsprobBranchVar(), SCIPincludeBranchruleBPStrong(), SCIPincludeBranchruleOrig(), SCIPincludeBranchruleRelpsprob(), SCIPincludeBranchruleRyanfoster(), SCIPincludeConshdlrMasterbranch(), SCIPincludeEventHdlrSolvingstats(), SCIPincludeSepaBasis(), SCIPincludeSepaMaster(), SCIPsepaBasisAddPPObjConss(), tightenPricingVarBound(), undoLocalBndchgsToPricingprobs(), and gcg::Stabilization::updateStabilityCenter().

◆ GCGmasterGetPricedvars()

SCIP_VAR** GCGmasterGetPricedvars ( SCIP *  scip)

returns the array of variables that were priced in during the solving process

Definition at line 4255 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by applyGlobalBndchgsToPricedMastervars(), and applyLocalBndchgsToPricedMastervars().

◆ GCGmasterGetNPricedvars()

int GCGmasterGetNPricedvars ( SCIP *  scip)

returns the number of variables that were priced in during the solving process

Definition at line 4275 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by applyGlobalBndchgsToPricedMastervars(), applyLocalBndchgsToPricedMastervars(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), and SCIP_DECL_CONSPROP().

◆ GCGmasterAddMasterconsToHashmap()

SCIP_RETCODE GCGmasterAddMasterconsToHashmap ( SCIP *  scip,
SCIP_CONS *  cons,
int  pos 
)

adds the given constraint and the given position to the hashmap of the pricer

Definition at line 4296 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGrelaxTransOrigToMasterCons().

◆ GCGmasterSetRootLPSol()

SCIP_RETCODE GCGmasterSetRootLPSol ( SCIP *  scip,
SCIP_SOL **  sol 
)

sets the optimal LP solution in the pricerdata

Parameters
scipSCIP data structure
solpointer to optimal solution to root LP

◆ GCGpricerIncludeSolver()

SCIP_RETCODE GCGpricerIncludeSolver ( SCIP *  scip,
const char *  name,
const char *  desc,
int  priority,
SCIP_Bool  heurenabled,
SCIP_Bool  exactenabled,
GCG_DECL_SOLVERUPDATE((*solverupdate))  ,
GCG_DECL_SOLVERSOLVE((*solversolve))  ,
GCG_DECL_SOLVERSOLVEHEUR((*solveheur))  ,
GCG_DECL_SOLVERFREE((*solverfree))  ,
GCG_DECL_SOLVERINIT((*solverinit))  ,
GCG_DECL_SOLVEREXIT((*solverexit))  ,
GCG_DECL_SOLVERINITSOL((*solverinitsol))  ,
GCG_DECL_SOLVEREXITSOL((*solverexitsol))  ,
GCG_SOLVERDATA solverdata 
)

includes a solver into the pricer data

Parameters
scipSCIP data structure
namename of solver
descdescription of solver
prioritypriority of solver
heurenabledflag to indicate whether heuristic solving method of the solver is enabled
exactenabledflag to indicate whether exact solving method of the solver is enabled
solverdatapricing solver data

◆ GCGpricerGetSolvers()

GCG_SOLVER** GCGpricerGetSolvers ( SCIP *  scip)

returns the available pricing solvers

Definition at line 4424 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGpricingjobNextSolver(), GCGpricingjobResetSolver(), and gcg::Pricingcontroller::initSol().

◆ GCGpricerGetNSolvers()

int GCGpricerGetNSolvers ( SCIP *  scip)

returns the number of available pricing solvers

Definition at line 4444 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGpricingjobNextSolver(), GCGpricingjobResetSolver(), gcg::Pricingcontroller::initPricing(), and gcg::Pricingcontroller::initSol().

◆ GCGpricerPrintListOfSolvers()

void GCGpricerPrintListOfSolvers ( SCIP *  scip)

writes out a list of all pricing problem solvers

Definition at line 4464 of file pricer_gcg.cpp.

References GCGsolverGetDesc(), GCGsolverGetName(), GCGsolverGetPriority(), GCGsolverIsExactEnabled(), GCGsolverIsHeurEnabled(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ GCGpricerPrintPricingStatistics()

◆ GCGpricerPrintStatistics()

◆ GCGpricerExistRays()

SCIP_RETCODE GCGpricerExistRays ( SCIP *  scip,
SCIP_Bool *  exist 
)

method to get existence of rays

Definition at line 4650 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGbranchGenericInitbranch().

◆ GCGpricerGetNPointsProb()

int GCGpricerGetNPointsProb ( SCIP *  scip,
int  probnr 
)

get the number of extreme points that a pricing problem has generated so far

Definition at line 4684 of file pricer_gcg.cpp.

References GCGisPricingprobRelevant(), GCGmasterGetOrigprob(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

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

◆ GCGpricerGetNRaysProb()

int GCGpricerGetNRaysProb ( SCIP *  scip,
int  probnr 
)

get the number of extreme rays that a pricing problem has generated so far

Definition at line 4708 of file pricer_gcg.cpp.

References GCGisPricingprobRelevant(), GCGmasterGetOrigprob(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

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

◆ GCGpricerGetMaxColsRound()

int GCGpricerGetMaxColsRound ( SCIP *  scip)

get the number of columns to be added to the master LP in the current pricing round

Definition at line 4732 of file pricer_gcg.cpp.

References ObjPricerGcg::getMaxColsRound(), and PRICER_NAME.

Referenced by GCGpricestoreApplyCols().

◆ GCGpricerGetMaxColsProb()

int GCGpricerGetMaxColsProb ( SCIP *  scip)

get the number of columns per pricing problem to be added to the master LP in the current pricing round

Definition at line 4748 of file pricer_gcg.cpp.

References ObjPricerGcg::getMaxColsProb(), and PRICER_NAME.

Referenced by GCGpricestoreApplyCols().

◆ GCGpricerAddCol()

SCIP_RETCODE GCGpricerAddCol ( SCIP *  scip,
GCG_COL col 
)

add a new column to the pricing storage

Definition at line 4764 of file pricer_gcg.cpp.

References ObjPricerGcg::addColToPricestore(), and PRICER_NAME.

Referenced by getColumnsFromPricingprob(), solveCliquer(), solveCplex(), solveKnapsack(), and solveProblem().

◆ GCGmasterTransOrigSolToMasterVars()

SCIP_RETCODE GCGmasterTransOrigSolToMasterVars ( SCIP *  scip,
SCIP_SOL *  origsol,
SCIP_Bool *  stored 
)

◆ GCGmasterCreateInitialMastervars()

◆ GCGmasterGetDegeneracy()

SCIP_Real GCGmasterGetDegeneracy ( SCIP *  scip)

get root node degeneracy

Definition at line 5065 of file pricer_gcg.cpp.

References GCGisRootNode(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGgetDegeneracy().

◆ GCGmasterIsCurrentSolValid()

SCIP_Bool GCGmasterIsCurrentSolValid ( SCIP *  scip)

return if artifical variables are used in current solution

check if current sol is valid

Definition at line 5090 of file pricer_gcg.cpp.

References DEC_DECMODE_DANTZIGWOLFE, GCGgetMasterDecompMode(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by relaxExecGcgDantzigWolfe(), SCIP_DECL_PRICERREDCOST(), solveMasterProblem(), and solveMasterProblemAndEvaluate().

◆ GCGmasterIsBestsolValid()

SCIP_Bool GCGmasterIsBestsolValid ( SCIP *  scip)

◆ GCGmasterIsSolValid()

SCIP_Bool GCGmasterIsSolValid ( SCIP *  scip,
SCIP_SOL *  mastersol 
)
Parameters
scipSCIP data structure
mastersolsolution of the master problem, or NULL for current LP solution

Definition at line 5173 of file pricer_gcg.cpp.

References DEC_DECMODE_DANTZIGWOLFE, GCGgetMasterDecompMode(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGrelaxUpdateCurrentSol(), and GCGtransformMastersolToOrigsol().

◆ GCGmasterGetPricingSimplexIters()

SCIP_Longint GCGmasterGetPricingSimplexIters ( SCIP *  scip)

get number of iterations in pricing problems

Parameters
scipSCIP data structure

Definition at line 5209 of file pricer_gcg.cpp.

References ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by SCIP_DECL_DISPOUTPUT().

◆ GCGmasterPrintSimplexIters()

SCIP_RETCODE GCGmasterPrintSimplexIters ( SCIP *  scip,
FILE *  file 
)

print simplex iteration statistics

Definition at line 5229 of file pricer_gcg.cpp.

References ObjPricerGcg::getOrigprob(), ObjPricerGcg::getPricerdata(), and PRICER_NAME.

Referenced by GCGprintStatistics().

◆ GCGsetPricingObjs()

SCIP_RETCODE GCGsetPricingObjs ( SCIP *  scip,
SCIP_Real *  dualsolconv 
)

◆ GCGcreateNewMasterVarFromGcgCol()

SCIP_RETCODE GCGcreateNewMasterVarFromGcgCol ( SCIP *  scip,
SCIP_Bool  infarkas,
GCG_COL gcgcol,
SCIP_Bool  force,
SCIP_Bool *  added,
SCIP_VAR **  addedvar,
SCIP_Real  score 
)

creates a new master variable corresponding to the given gcg column

Definition at line 3215 of file pricer_gcg.cpp.

References ObjPricerGcg::createNewMasterVarFromGcgCol(), ObjPricerGcg::getFarkasPricingNonConst(), ObjPricerGcg::getReducedCostPricingNonConst(), and PRICER_NAME.

Referenced by pricestoreApplyCol().

◆ GCGcomputeRedCostGcgCol()

SCIP_Real GCGcomputeRedCostGcgCol ( SCIP *  scip,
SCIP_Bool  infarkas,
GCG_COL gcgcol,
SCIP_Real *  objvalptr 
)

◆ GCGcomputeColMastercoefs()

SCIP_RETCODE GCGcomputeColMastercoefs ( SCIP *  scip,
GCG_COL gcgcol 
)

compute master and cut coefficients of column

Definition at line 3246 of file pricer_gcg.cpp.

References ObjPricerGcg::computeColMastercoefs(), ObjPricerGcg::computeColMastercuts(), and PRICER_NAME.

Referenced by GCGcolpoolUpdateRedcost().