Scippy

GCG

Branch-and-Price & Column Generation for Everyone

Detailed Description

Commonly used data structures.

Data Structures

struct  Dec_Scores
 

Modules

 GCG Column
 
 Priority Queue
 

Files

file  pub_decomp.h
 public methods for working with decomposition structures
 
file  struct_branchgcg.h
 data structures for branching rules
 
file  struct_colpool.h
 data structures for storing cols in a col pool
 
file  struct_consclassifier.h
 data structures for constraint classifiers
 
file  struct_decomp.h
 structure information for decomposition information in GCG projects
 
file  struct_detector.h
 data structures for detectors
 
file  struct_gcgcol.h
 data structure to store columns (solutions from a pricing problem)
 
file  struct_gcgpqueue.h
 data structure for priority queue
 
file  struct_pricestore_gcg.h
 datastructures for storing priced cols
 
file  struct_pricingjob.h
 data structure for pricing jobs
 
file  struct_pricingprob.h
 data structure to store pricing problem information
 
file  struct_solver.h
 data structures for solvers
 
file  struct_varclassifier.h
 data structures for variable classifiers
 
file  struct_vardata.h
 data structures for GCG variable data
 
SCIP_EXPORT GCG_COL ** GCGcolpoolGetCols (GCG_COLPOOL *colpool)
 
SCIP_EXPORT int GCGcolpoolGetNCols (GCG_COLPOOL *colpool)
 
SCIP_EXPORT int GCGcolpoolGetMaxNCols (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_Real GCGcolpoolGetTime (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_Longint GCGcolpoolGetNCalls (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_Longint GCGcolpoolGetNColsFound (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolCreate (SCIP *scip, GCG_COLPOOL **colpool, int agelimit)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolFree (SCIP *scip, GCG_COLPOOL **colpool)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolClear (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolAddCol (GCG_COLPOOL *colpool, GCG_COL *col, SCIP_Bool *success)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolAddNewCol (GCG_COLPOOL *colpool, GCG_COL *col)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolDelCol (GCG_COLPOOL *colpool, GCG_COL *col, SCIP_Bool freecol)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolUpdateNode (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolUpdateRedcost (GCG_COLPOOL *colpool)
 
SCIP_EXPORT void GCGcolpoolStartFarkas (GCG_COLPOOL *colpool)
 
SCIP_EXPORT void GCGcolpoolEndFarkas (GCG_COLPOOL *colpool)
 
SCIP_EXPORT SCIP_RETCODE GCGcolpoolPrice (SCIP *scip, GCG_COLPOOL *colpool, GCG_PRICESTORE *pricestore, SCIP_SOL *sol, SCIP_Bool *foundvars)
 

Function Documentation

◆ GCGcolpoolGetCols()

SCIP_EXPORT GCG_COL** GCGcolpoolGetCols ( GCG_COLPOOL colpool)

gets array of cols in the col pool

Definition at line 498 of file colpool.c.

References GCG_Colpool::cols.

Referenced by GCGcolpoolUpdateRedcost().

◆ GCGcolpoolGetNCols()

SCIP_EXPORT int GCGcolpoolGetNCols ( GCG_COLPOOL colpool)

get number of cols in the col pool

gets number of cols in the col pool

Definition at line 508 of file colpool.c.

References GCG_Colpool::ncols.

Referenced by GCGcolpoolUpdateRedcost().

◆ GCGcolpoolGetMaxNCols()

SCIP_EXPORT int GCGcolpoolGetMaxNCols ( GCG_COLPOOL colpool)

get maximum number of cols that were stored in the col pool at the same time

gets maximum number of cols that were stored in the col pool at the same time

Definition at line 518 of file colpool.c.

References GCG_Colpool::maxncols.

◆ GCGcolpoolGetTime()

SCIP_EXPORT SCIP_Real GCGcolpoolGetTime ( GCG_COLPOOL colpool)

gets time in seconds used for pricing cols from the pool

gets time in seconds used for separating cols from the pool

Definition at line 528 of file colpool.c.

References GCG_Colpool::poolclock, and GCG_Colpool::scip.

Referenced by GCGcolpoolFree().

◆ GCGcolpoolGetNCalls()

SCIP_EXPORT SCIP_Longint GCGcolpoolGetNCalls ( GCG_COLPOOL colpool)

get number of times, the col pool was separated

Definition at line 538 of file colpool.c.

References GCG_Colpool::ncalls.

◆ GCGcolpoolGetNColsFound()

SCIP_EXPORT SCIP_Longint GCGcolpoolGetNColsFound ( GCG_COLPOOL colpool)

get total number of cols that were priced from the col pool

get total number of cols that were separated from the col pool

Definition at line 548 of file colpool.c.

References GCG_Colpool::ncolsfound.

◆ GCGcolpoolCreate()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolCreate ( SCIP *  scip,
GCG_COLPOOL **  colpool,
int  agelimit 
)

creates col pool

Definition at line 159 of file colpool.c.

References GCG_HASHSIZE_COLPOOLS, GCG_HASHSIZE_COLPOOLS_SMALL, and GCG_USESMALLTABLES.

Referenced by ObjPricerGcg::createColpool().

◆ GCGcolpoolFree()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolFree ( SCIP *  scip,
GCG_COLPOOL **  colpool 
)

frees col pool

Definition at line 195 of file colpool.c.

References GCGcolpoolClear(), and GCGcolpoolGetTime().

Referenced by SCIP_DECL_PRICEREXITSOL().

◆ GCGcolpoolClear()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolClear ( GCG_COLPOOL colpool)

removes all cols from the col pool

removes all rows from the col pool

Definition at line 262 of file colpool.c.

References colpoolDelCol(), GCG_Colpool::cols, and GCG_Colpool::ncols.

Referenced by GCGcolpoolFree(), and GCGcolpoolUpdateNode().

◆ GCGcolpoolAddCol()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolAddCol ( GCG_COLPOOL colpool,
GCG_COL col,
SCIP_Bool *  success 
)

if not already existing, adds col to col pool and captures it

Definition at line 281 of file colpool.c.

References GCGcolpoolAddNewCol(), and GCG_Colpool::hashtable.

Referenced by GCGpricestoreApplyCols().

◆ GCGcolpoolAddNewCol()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolAddNewCol ( GCG_COLPOOL colpool,
GCG_COL col 
)

adds col to col pool and captures it; doesn't check for multiple cols

adds row to col pool and captures it; doesn't check for multiple cols

Definition at line 304 of file colpool.c.

References colpoolEnsureColsMem(), GCG_Colpool::cols, GCG_Colpool::hashtable, GCG_Colpool::maxncols, GCG_Colpool::ncols, and GCG_Col::pos.

Referenced by GCGcolpoolAddCol().

◆ GCGcolpoolDelCol()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolDelCol ( GCG_COLPOOL colpool,
GCG_COL col,
SCIP_Bool  freecol 
)

removes the col from the col pool

removes the LP row from the col pool

Definition at line 328 of file colpool.c.

References colpoolDelCol(), and GCG_Colpool::hashtable.

◆ GCGcolpoolUpdateNode()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolUpdateNode ( GCG_COLPOOL colpool)

update node at which columns of column pool are feasible

Definition at line 429 of file colpool.c.

References GCGcolpoolClear(), GCG_Colpool::nodenr, and GCG_Colpool::scip.

Referenced by ObjPricerGcg::pricingLoop().

◆ GCGcolpoolUpdateRedcost()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolUpdateRedcost ( GCG_COLPOOL colpool)

update reduced cost of columns in column pool

update reduced cost and compute master coefs of columns in column pool

Definition at line 451 of file colpool.c.

References GCGcolpoolGetCols(), GCGcolpoolGetNCols(), GCGcolUpdateRedcost(), GCGcomputeColMastercoefs(), GCGcomputeRedCostGcgCol(), GCG_Colpool::infarkas, and GCG_Colpool::scip.

Referenced by ObjPricerGcg::pricingLoop().

◆ GCGcolpoolStartFarkas()

SCIP_EXPORT void GCGcolpoolStartFarkas ( GCG_COLPOOL colpool)

gets number of cols in the col pool

Definition at line 481 of file colpool.c.

References GCG_Colpool::infarkas.

Referenced by SCIP_DECL_PRICERFARKAS().

◆ GCGcolpoolEndFarkas()

SCIP_EXPORT void GCGcolpoolEndFarkas ( GCG_COLPOOL colpool)

gets number of cols in the col pool

Definition at line 489 of file colpool.c.

References GCG_Colpool::infarkas.

Referenced by SCIP_DECL_PRICERREDCOST().

◆ GCGcolpoolPrice()

SCIP_EXPORT SCIP_RETCODE GCGcolpoolPrice ( SCIP *  scip,
GCG_COLPOOL colpool,
GCG_PRICESTORE pricestore,
SCIP_SOL *  sol,
SCIP_Bool *  foundvars 
)