Scippy

GCG

Branch-and-Price & Column Generation for Everyone

pricestore_gcg.h File Reference

Detailed Description

methods for storing priced cols (based on SCIP's separation storage)

Author
Jonas Witt

Definition in file pricestore_gcg.h.

#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_implics.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_event.h"
#include "scip/type_lp.h"
#include "scip/type_prob.h"
#include "scip/type_tree.h"
#include "scip/type_reopt.h"
#include "scip/type_branch.h"
#include "pub_colpool.h"
#include "pub_gcgcol.h"
#include "type_pricestore_gcg.h"

Go to the source code of this file.

Functions

SCIP_RETCODE GCGpricestoreCreate (SCIP *scip, GCG_PRICESTORE **pricestore, SCIP_Real redcostfac, SCIP_Real objparalfac, SCIP_Real orthofac, SCIP_Real mincolorth, GCG_EFFICIACYCHOICE efficiacychoice)
 
SCIP_RETCODE GCGpricestoreFree (SCIP *scip, GCG_PRICESTORE **pricestore)
 
void GCGpricestoreStartFarkas (GCG_PRICESTORE *pricestore)
 
void GCGpricestoreEndFarkas (GCG_PRICESTORE *pricestore)
 
void GCGpricestoreStartForceCols (GCG_PRICESTORE *pricestore)
 
void GCGpricestoreEndForceCols (GCG_PRICESTORE *pricestore)
 
SCIP_RETCODE GCGpricestoreAddCol (SCIP *scip, GCG_PRICESTORE *pricestore, GCG_COL *col, SCIP_Bool forcecol)
 
SCIP_RETCODE GCGpricestoreApplyCols (GCG_PRICESTORE *pricestore, GCG_COLPOOL *colpool, SCIP_Bool usecolpool, int *nfoundvars)
 
void GCGpricestoreClearCols (GCG_PRICESTORE *pricestore)
 
void GCGpricestoreRemoveInefficaciousCols (GCG_PRICESTORE *pricestore)
 
GCG_COL ** GCGpricestoreGetCols (GCG_PRICESTORE *pricestore)
 
int GCGpricestoreGetNCols (GCG_PRICESTORE *pricestore)
 
int GCGpricestoreGetNEfficaciousCols (GCG_PRICESTORE *pricestore)
 
int GCGpricestoreGetNColsFound (GCG_PRICESTORE *pricestore)
 
int GCGpricestoreGetNColsFoundRound (GCG_PRICESTORE *pricestore)
 
int GCGpricestoreGetNColsApplied (GCG_PRICESTORE *pricestore)
 
SCIP_Real GCGpricestoreGetTime (GCG_PRICESTORE *pricestore)
 

Function Documentation

◆ GCGpricestoreCreate()

SCIP_RETCODE GCGpricestoreCreate ( SCIP *  scip,
GCG_PRICESTORE **  pricestore,
SCIP_Real  efficiacyfac,
SCIP_Real  objparalfac,
SCIP_Real  orthofac,
SCIP_Real  mincolorth,
GCG_EFFICIACYCHOICE  efficiacychoice 
)

creates price storage

Definition at line 85 of file pricestore_gcg.c.

Referenced by ObjPricerGcg::createPricestore().

◆ GCGpricestoreFree()

SCIP_RETCODE GCGpricestoreFree ( SCIP *  scip,
GCG_PRICESTORE **  pricestore 
)

frees price storage

Definition at line 127 of file pricestore_gcg.c.

References GCGpricestoreGetTime().

Referenced by SCIP_DECL_PRICEREXITSOL().

◆ GCGpricestoreStartFarkas()

void GCGpricestoreStartFarkas ( GCG_PRICESTORE pricestore)

informs price storage, that Farkas pricing starts now

Definition at line 152 of file pricestore_gcg.c.

References GCG_PriceStore::infarkas, and GCG_PriceStore::ncols.

Referenced by SCIP_DECL_PRICERFARKAS().

◆ GCGpricestoreEndFarkas()

void GCGpricestoreEndFarkas ( GCG_PRICESTORE pricestore)

informs price storage, that Farkas pricing is now finished

Definition at line 163 of file pricestore_gcg.c.

References GCG_PriceStore::infarkas, and GCG_PriceStore::ncols.

Referenced by SCIP_DECL_PRICERREDCOST().

◆ GCGpricestoreStartForceCols()

void GCGpricestoreStartForceCols ( GCG_PRICESTORE pricestore)

informs price storage, that the following cols should be used in any case

Definition at line 174 of file pricestore_gcg.c.

References GCG_PriceStore::forcecols.

◆ GCGpricestoreEndForceCols()

void GCGpricestoreEndForceCols ( GCG_PRICESTORE pricestore)

informs price storage, that the following cols should no longer be used in any case

Definition at line 185 of file pricestore_gcg.c.

References GCG_PriceStore::forcecols.

◆ GCGpricestoreAddCol()

SCIP_RETCODE GCGpricestoreAddCol ( SCIP *  scip,
GCG_PRICESTORE pricestore,
GCG_COL col,
SCIP_Bool  forcecol 
)

◆ GCGpricestoreApplyCols()

◆ GCGpricestoreClearCols()

void GCGpricestoreClearCols ( GCG_PRICESTORE pricestore)

◆ GCGpricestoreRemoveInefficaciousCols()

void GCGpricestoreRemoveInefficaciousCols ( GCG_PRICESTORE pricestore)

removes cols that are inefficacious w.r.t. the current LP solution from price storage without adding the cols to the LP

removes cols that are inefficacious w.r.t. the current dual solution from price storage without adding the cols to the LP

Definition at line 683 of file pricestore_gcg.c.

References GCG_PriceStore::cols, GCGcolGetRedcost(), GCG_PriceStore::nforcedcols, pricestoreDelCol(), and GCG_PriceStore::scip.

◆ GCGpricestoreGetCols()

GCG_COL** GCGpricestoreGetCols ( GCG_PRICESTORE pricestore)

get cols in the price storage

Definition at line 709 of file pricestore_gcg.c.

References GCG_PriceStore::cols.

Referenced by ObjPricerGcg::getBestCols().

◆ GCGpricestoreGetNCols()

int GCGpricestoreGetNCols ( GCG_PRICESTORE pricestore)

get number of cols in the price storage

Definition at line 719 of file pricestore_gcg.c.

References GCG_PriceStore::ncols.

Referenced by GCGcolpoolPrice(), ObjPricerGcg::getBestCols(), and ObjPricerGcg::pricingLoop().

◆ GCGpricestoreGetNEfficaciousCols()

int GCGpricestoreGetNEfficaciousCols ( GCG_PRICESTORE pricestore)

get number of efficacious cols in the price storage

Definition at line 729 of file pricestore_gcg.c.

References GCG_PriceStore::nefficaciouscols.

Referenced by ObjPricerGcg::pricingLoop().

◆ GCGpricestoreGetNColsFound()

int GCGpricestoreGetNColsFound ( GCG_PRICESTORE pricestore)

get total number of cols found so far

Definition at line 739 of file pricestore_gcg.c.

References GCG_PriceStore::ncolsfound.

◆ GCGpricestoreGetNColsFoundRound()

int GCGpricestoreGetNColsFoundRound ( GCG_PRICESTORE pricestore)

get number of cols found so far in current price round

Definition at line 749 of file pricestore_gcg.c.

References GCG_PriceStore::ncolsfoundround.

◆ GCGpricestoreGetNColsApplied()

int GCGpricestoreGetNColsApplied ( GCG_PRICESTORE pricestore)

get total number of cols applied to the LPs

Definition at line 759 of file pricestore_gcg.c.

References GCG_PriceStore::ncolsapplied.

◆ GCGpricestoreGetTime()

SCIP_Real GCGpricestoreGetTime ( GCG_PRICESTORE pricestore)

gets time in seconds used for pricing cols from the pricestore

Definition at line 769 of file pricestore_gcg.c.

References GCG_PriceStore::priceclock, and GCG_PriceStore::scip.

Referenced by GCGpricestoreFree().