pricer_gcg.cpp File Reference

Detailed Description

pricer for generic column generation

Author
Gerald Gamrath
Martin Bergner
Alexander Gross
Christian Puchert
Michael Bastubbe
Jonas Witt

Definition in file pricer_gcg.cpp.

#include <cassert>
#include <cstring>
#include "scip/scip.h"
#include "gcg.h"
#include "scip/cons_linear.h"
#include "scip/cons_knapsack.h"
#include "pricer_gcg.h"
#include "objpricer_gcg.h"
#include "sepa_master.h"
#include "sepa_basis.h"
#include "relax_gcg.h"
#include "scip_misc.h"
#include "pub_gcgvar.h"
#include "pub_gcgcol.h"
#include "pub_pricingjob.h"
#include "pub_pricingprob.h"
#include "pub_solver.h"
#include "solver.h"
#include "cons_masterbranch.h"
#include "objscip/objscip.h"
#include "class_pricingtype.h"
#include "class_pricingcontroller.h"
#include "class_stabilization.h"
#include "branch_generic.h"
#include "event_display.h"
#include "pub_colpool.h"

Go to the source code of this file.

Macros

#define PRICER_NAME   "gcg"
 
#define PRICER_DESC   "pricer for gcg"
 
#define PRICER_PRIORITY   5000000
 
#define PRICER_DELAY   TRUE /* only call pricer if all problem variables have non-negative reduced costs */
 
#define DEFAULT_ABORTPRICINGINT   TRUE
 
#define DEFAULT_ABORTPRICINGGAP   0.00
 
#define DEFAULT_DISPINFOS   FALSE
 
#define DEFAULT_DISABLECUTOFF   2
 
#define DEFAULT_THREADS   0
 
#define DEFAULT_STABILIZATION   TRUE
 
#define DEFAULT_STABILIZATIONTREE   FALSE
 
#define DEFAULT_HYBRIDASCENT   FALSE
 
#define DEFAULT_HYBRIDASCENT_NOAGG   FALSE
 
#define DEFAULT_USECOLPOOL   TRUE
 
#define DEFAULT_COLPOOL_AGELIMIT   100
 
#define DEFAULT_PRICE_ORTHOFAC   0.0
 
#define DEFAULT_PRICE_OBJPARALFAC   0.0
 
#define DEFAULT_PRICE_REDCOSTFAC   1.0
 
#define DEFAULT_PRICE_MINCOLORTH   0.0
 
#define DEFAULT_PRICE_EFFICIACYCHOICE   0
 
#define DEFAULT_USEARTIFICIALVARS   FALSE
 
#define DEFAULT_USEMAXOBJ   TRUE
 
#define DEFAULT_ONLYRELIABLEBIGM   TRUE
 
#define DEFAULT_FACTORUNRELIABLE   1000
 
#define DEFAULT_BIGMARTIFICIAL   1000
 
#define EVENTHDLR_NAME   "probdatavardeleted"
 
#define EVENTHDLR_DESC   "event handler for variable deleted event"
 
#define GCGpricerPrintInfo(scip, pricerdata, ...)
 
#define PRICER_STAT_ARRAYLEN_TIME   1024
 
#define PRICER_STAT_BUCKETSIZE_TIME   10
 
#define PRICER_STAT_ARRAYLEN_VARS   1024
 
#define PRICER_STAT_BUCKETSIZE_VARS   1
 
#define eventFreeVardeleted   NULL
 
#define eventInitVardeleted   NULL
 
#define eventExitVardeleted   NULL
 
#define eventInitsolVardeleted   NULL
 
#define eventExitsolVardeleted   NULL
 
#define eventDeleteVardeleted   NULL
 

Functions

static SCIP_DECL_PARAMCHGD (paramChgdDisablecutoff)
 
static SCIP_DECL_EVENTEXEC (eventExecVardeleted)
 
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_RETCODE GCGcomputeColMastercoefs (SCIP *scip, GCG_COL *gcgcol)
 
SCIP_Real GCGcomputeRedCostGcgCol (SCIP *scip, SCIP_Bool infarkas, GCG_COL *gcgcol, SCIP_Real *objvalptr)
 
 SCIP_DECL_PRICERFREE (ObjPricerGcg::scip_free)
 
 SCIP_DECL_PRICERINIT (ObjPricerGcg::scip_init)
 
 SCIP_DECL_PRICEREXIT (ObjPricerGcg::scip_exit)
 
 SCIP_DECL_PRICERINITSOL (ObjPricerGcg::scip_initsol)
 
 SCIP_DECL_PRICEREXITSOL (ObjPricerGcg::scip_exitsol)
 
 SCIP_DECL_PRICERREDCOST (ObjPricerGcg::scip_redcost)
 
 SCIP_DECL_PRICERFARKAS (ObjPricerGcg::scip_farkas)
 
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 GCGpricerIncludeSolver (SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool enabled, GCG_DECL_SOLVERUPDATE((*solverupdate)), GCG_DECL_SOLVERSOLVE((*solversolve)), GCG_DECL_SOLVERSOLVEHEUR((*solversolveheur)), 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)
 

Macro Definition Documentation

#define DEFAULT_ABORTPRICINGGAP   0.00

gap between dual bound and RMP objective at which pricing is aborted

Definition at line 98 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_ABORTPRICINGINT   TRUE

should the pricing be aborted when integral

Definition at line 97 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_BIGMARTIFICIAL   1000

default value for big M objective of artificial variables (if maxobj is not used)

Definition at line 122 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_COLPOOL_AGELIMIT   100

default age limit for columns in column pool

Definition at line 110 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_DISABLECUTOFF   2

should the cutoffbound be applied in master LP solving? (0: on, 1:off, 2:auto)

Definition at line 100 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_DISPINFOS   FALSE

should additional information be displayed

Definition at line 99 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_FACTORUNRELIABLE   1000

default factor to use for objective of unbounded variables

Definition at line 121 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_HYBRIDASCENT   FALSE

should hybridization of smoothing with an ascent method be enabled

Definition at line 104 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_HYBRIDASCENT_NOAGG   FALSE

should hybridization of smoothing with an ascent method be enabled if pricing problems cannot be aggregation

Definition at line 105 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_ONLYRELIABLEBIGM   TRUE

default value for only using maxobj for big M objective of artificial variables if it is reliable

Definition at line 120 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_PRICE_EFFICIACYCHOICE   0

Definition at line 116 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_PRICE_MINCOLORTH   0.0

Definition at line 115 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_PRICE_OBJPARALFAC   0.0

Definition at line 113 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_PRICE_ORTHOFAC   0.0

Definition at line 112 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_PRICE_REDCOSTFAC   1.0

Definition at line 114 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_STABILIZATION   TRUE

should stabilization be used

Definition at line 102 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_STABILIZATIONTREE   FALSE

should stabilization be used in nodes other than the root node

Definition at line 103 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_THREADS   0

number of threads (0 is OpenMP default)

Definition at line 101 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_USEARTIFICIALVARS   FALSE

add artificial vars to master (instead of using Farkas pricing)

Definition at line 118 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_USECOLPOOL   TRUE

should the colpool be checked for negative redcost cols before solving the pricing problems?

Definition at line 109 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define DEFAULT_USEMAXOBJ   TRUE

default value for using maxobj for big M objective of artificial variables

Definition at line 119 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define eventDeleteVardeleted   NULL

frees specific event data

Definition at line 287 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define eventExitsolVardeleted   NULL

solving process deinitialization method of event handler (called before branch and bound process data is freed)

Definition at line 284 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define eventExitVardeleted   NULL

deinitialization method of event handler (called before transformed problem is freed)

Definition at line 278 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define eventFreeVardeleted   NULL

destructor of event handler to free user data (called when SCIP is exiting)

Definition at line 272 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define EVENTHDLR_DESC   "event handler for variable deleted event"

Definition at line 125 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define EVENTHDLR_NAME   "probdatavardeleted"

Definition at line 124 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define eventInitsolVardeleted   NULL

solving process initialization method of event handler (called when branch and bound process is about to begin)

Definition at line 281 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define eventInitVardeleted   NULL

initialization method of event handler (called after problem was transformed)

Definition at line 275 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define GCGpricerPrintInfo (   scip,
  pricerdata,
  ... 
)
Value:
do { \
if( pricerdata->dispinfos ) { \
SCIPverbMessage(scip, SCIP_VERBLEVEL_NORMAL, NULL, __VA_ARGS__);\
} else {\
SCIPdebugMessage(__VA_ARGS__); \
}\
}while( FALSE )

small macro to simplify printing pricer information

Definition at line 128 of file pricer_gcg.cpp.

Referenced by ObjPricerGcg::createNewMasterVarFromGcgCol(), and ObjPricerGcg::priceNewVariables().

#define PRICER_DELAY   TRUE /* only call pricer if all problem variables have non-negative reduced costs */

Definition at line 95 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define PRICER_DESC   "pricer for gcg"

Definition at line 93 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define PRICER_PRIORITY   5000000

Definition at line 94 of file pricer_gcg.cpp.

Referenced by SCIPincludePricerGcg().

#define PRICER_STAT_ARRAYLEN_TIME   1024

length of the array for Time histogram representation

Definition at line 136 of file pricer_gcg.cpp.

Referenced by GCGpricerPrintStatistics(), ObjPricerGcg::getMaxColsProb(), and SCIP_DECL_PRICERINITSOL().

#define PRICER_STAT_ARRAYLEN_VARS   1024

length of the array for foundVars histogram representation

Definition at line 138 of file pricer_gcg.cpp.

Referenced by GCGpricerPrintStatistics(), ObjPricerGcg::getMaxColsProb(), and SCIP_DECL_PRICERINITSOL().

#define PRICER_STAT_BUCKETSIZE_TIME   10

size of the buckets for Time histogram representation

Definition at line 137 of file pricer_gcg.cpp.

Referenced by GCGpricerPrintStatistics(), and ObjPricerGcg::getMaxColsProb().

#define PRICER_STAT_BUCKETSIZE_VARS   1

size of the buckets for foundVars histogram representation

Definition at line 139 of file pricer_gcg.cpp.

Referenced by GCGpricerPrintStatistics(), and ObjPricerGcg::getMaxColsProb().

Function Documentation

SCIP_RETCODE GCGcomputeColMastercoefs ( SCIP *  scip,
GCG_COL gcgcol 
)

compute master and cut coefficients of column

Parameters
scipSCIP data structure
gcgcolGCG column data structure

Definition at line 3230 of file pricer_gcg.cpp.

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

Referenced by GCGcolpoolUpdateRedcost(), and GCGcreateNewMasterVarFromGcgCol().

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

computes the reduced cost of a column

Parameters
scipSCIP data structure
infarkasin Farkas pricing?
gcgcolgcg column to compute reduced cost for
objvalptrpointer to store the computed objective value

Definition at line 3250 of file pricer_gcg.cpp.

References ObjPricerGcg::computeRedCostGcgCol(), ObjPricerGcg::getFarkasPricingNonConst(), ObjPricerGcg::getReducedCostPricingNonConst(), ObjPricerGcg::priceNewVariables(), and PRICER_NAME.

Referenced by GCGcolpoolUpdateRedcost(), and GCGcomputeColMastercoefs().

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

Parameters
scipSCIP data structure
infarkasin Farkas pricing?
gcgcolGCG column data structure
forceshould the given variable be added also if it has non-negative reduced cost?
addedpointer to store whether the variable was successfully added
addedvarpointer to store the created variable
scorescore of column (or -1.0 if not specified)

Definition at line 3199 of file pricer_gcg.cpp.

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

Referenced by GCGsetPricingObjs(), and pricestoreApplyCol().

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

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

Parameters
scipSCIP data structure
consthe constraint that should be added
posthe position of the constraint in the relaxator's masterconss array

Definition at line 4239 of file pricer_gcg.cpp.

References GCGmasterSetRootLPSol(), GCGpricerIncludeSolver(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGmasterGetNPricedvars(), and GCGrelaxTransOrigToMasterCons().

SCIP_Real GCGmasterGetDegeneracy ( SCIP *  scip)

get root node degeneracy

Parameters
scipSCIP data structure

Definition at line 4992 of file pricer_gcg.cpp.

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

Referenced by GCGgetDegeneracy(), and GCGmasterCreateInitialMastervars().

int GCGmasterGetNPricedvars ( SCIP *  scip)

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

Parameters
scipSCIP data structure

Definition at line 4218 of file pricer_gcg.cpp.

References GCGmasterAddMasterconsToHashmap(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

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

SCIP* GCGmasterGetOrigprob ( SCIP *  scip)

returns the pointer to the scip instance representing the original problem

Parameters
scipSCIP data structure

Definition at line 4182 of file pricer_gcg.cpp.

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

Referenced by 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::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_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(), SCIPincludeBranchruleOrig(), SCIPincludeBranchruleRelpsprob(), SCIPincludeConshdlrMasterbranch(), SCIPincludeEventHdlrSolvingstats(), SCIPincludePricerGcg(), SCIPincludeSepaBasis(), SCIPincludeSepaMaster(), SCIPsepaBasisAddPPObjConss(), tightenPricingVarBound(), undoLocalBndchgsToPricingprobs(), gcg::Stabilization::updateAlpha(), gcg::Stabilization::updateStabilityCenter(), gcg::Pricingcontroller::~Pricingcontroller(), and gcg::Stabilization::~Stabilization().

SCIP_VAR** GCGmasterGetPricedvars ( SCIP *  scip)

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

Parameters
scipSCIP data structure

Definition at line 4198 of file pricer_gcg.cpp.

References GCGmasterGetNPricedvars(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by applyGlobalBndchgsToPricedMastervars(), applyLocalBndchgsToPricedMastervars(), and GCGmasterGetOrigprob().

SCIP_Longint GCGmasterGetPricingSimplexIters ( SCIP *  scip)

get number of iterations in pricing problems

Parameters
scipSCIP data structure

Definition at line 5136 of file pricer_gcg.cpp.

References GCGmasterPrintSimplexIters(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGmasterIsSolValid(), and SCIP_DECL_DISPOUTPUT().

SCIP_Bool GCGmasterIsCurrentSolValid ( SCIP *  scip)
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 5100 of file pricer_gcg.cpp.

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

Referenced by GCGmasterIsBestsolValid(), GCGrelaxUpdateCurrentSol(), and GCGtransformMastersolToOrigsol().

SCIP_RETCODE GCGmasterPrintSimplexIters ( SCIP *  scip,
FILE *  file 
)

print simplex iteration statistics

Parameters
scipSCIP data structure
fileoutput file

Definition at line 5156 of file pricer_gcg.cpp.

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

Referenced by GCGmasterGetPricingSimplexIters(), and GCGprintStatistics().

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

transfers a primal solution of the original problem into the master variable space, i.e. creates one master variable for each block and adds the solution to the master problem

Parameters
scipSCIP data structure
origsolthe solution that should be transferred
storedpointer to store if transferred solution is feasible (or NULL)

Definition at line 4721 of file pricer_gcg.cpp.

References ObjPricerGcg::createNewMasterVar(), DEC_DECMODE_DANTZIGWOLFE, GCGgetBlockRepresentative(), GCGgetDecompositionMode(), GCGgetOriginalprob(), GCGlinkingVarGetBlocks(), GCGlinkingVarGetNBlocks(), GCGlinkingVarGetPricingVars(), GCGmasterCreateInitialMastervars(), GCGoriginalVarGetMastervars(), GCGoriginalVarGetNMastervars(), GCGoriginalVarGetPricingVar(), GCGoriginalVarIsLinking(), GCGvarGetBlock(), GCGvarIsOriginal(), ObjPricerGcg::getPricerdata(), ObjPricerGcg::origprob, PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGpricerAddCol(), SCIP_DECL_EVENTEXEC(), and SCIP_DECL_PRICERFARKAS().

SCIP_RETCODE GCGpricerAddCol ( SCIP *  scip,
GCG_COL col 
)

add a new column to the pricing storage

Parameters
scipSCIP data structure
colpriced col

Definition at line 4703 of file pricer_gcg.cpp.

References ObjPricerGcg::addColToPricestore(), GCGmasterTransOrigSolToMasterVars(), and PRICER_NAME.

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

SCIP_RETCODE GCGpricerExistRays ( SCIP *  scip,
SCIP_Bool *  exist 
)

method to get existence of rays

Parameters
scipmaster SCIP data structure
existpointer to store if there exists any ray

Definition at line 4589 of file pricer_gcg.cpp.

References GCGpricerGetNPointsProb(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGbranchGenericInitbranch(), and GCGpricerPrintStatistics().

int GCGpricerGetMaxColsProb ( SCIP *  scip)

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

Parameters
scipmaster SCIP data structure

Definition at line 4687 of file pricer_gcg.cpp.

References GCGpricerAddCol(), ObjPricerGcg::getMaxColsProb(), and PRICER_NAME.

Referenced by GCGpricerGetMaxColsRound(), and GCGpricestoreApplyCols().

int GCGpricerGetMaxColsRound ( SCIP *  scip)

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

Parameters
scipmaster SCIP data structure

Definition at line 4671 of file pricer_gcg.cpp.

References GCGpricerGetMaxColsProb(), ObjPricerGcg::getMaxColsRound(), and PRICER_NAME.

Referenced by GCGpricerGetNRaysProb(), and GCGpricestoreApplyCols().

int GCGpricerGetNPointsProb ( SCIP *  scip,
int  probnr 
)

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

Parameters
scipmaster SCIP data structure
probnrindex of pricing problem

Definition at line 4623 of file pricer_gcg.cpp.

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

Referenced by GCGpricerExistRays().

int GCGpricerGetNRaysProb ( SCIP *  scip,
int  probnr 
)

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

Parameters
scipmaster SCIP data structure
probnrindex of pricing problem

Definition at line 4647 of file pricer_gcg.cpp.

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

Referenced by GCGpricerGetNPointsProb().

int GCGpricerGetNSolvers ( SCIP *  scip)

returns the number of available pricing solvers

Parameters
scipSCIP data structure

Definition at line 4386 of file pricer_gcg.cpp.

References GCGpricerPrintListOfSolvers(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGpricerGetSolvers().

GCG_SOLVER** GCGpricerGetSolvers ( SCIP *  scip)

returns the available pricing solvers

Parameters
scipSCIP data structure

Definition at line 4366 of file pricer_gcg.cpp.

References GCGpricerGetNSolvers(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGpricerIncludeSolver().

SCIP_RETCODE GCGpricerIncludeSolver ( SCIP *  scip,
const char *  name,
const char *  desc,
int  priority,
SCIP_Bool  enabled,
GCG_DECL_SOLVERUPDATE((*solverupdate))  ,
GCG_DECL_SOLVERSOLVE((*solversolve))  ,
GCG_DECL_SOLVERSOLVEHEUR((*solversolveheur))  ,
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
enabledflag to indicate whether the solver is enabled
solverdatapricing solver data

Definition at line 4313 of file pricer_gcg.cpp.

References GCGpricerGetSolvers(), GCGsolverCreate(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGincludeSolverCliquer(), GCGincludeSolverCplex(), GCGincludeSolverKnapsack(), GCGincludeSolverMip(), and GCGmasterAddMasterconsToHashmap().

void GCGpricerPrintListOfSolvers ( SCIP *  scip)

writes out a list of all pricing problem solvers

Parameters
scipSCIP data structure

Definition at line 4406 of file pricer_gcg.cpp.

References GCGpricerPrintPricingStatistics(), GCGsolverGetDesc(), GCGsolverGetName(), GCGsolverGetPriority(), GCGsolverIsEnabled(), ObjPricerGcg::getPricerdata(), PRICER_NAME, and ObjPricerGcg::pricerdata.

Referenced by GCGpricerGetNSolvers(), and SCIP_DECL_DIALOGEXEC().

void GCGpricerPrintPricingStatistics ( SCIP *  scip,
FILE *  file 
)
void GCGpricerPrintStatistics ( SCIP *  scip,
FILE *  file 
)
SCIP_RETCODE GCGsetPricingObjs ( SCIP *  scip,
SCIP_Real *  dualsolconv 
)

set pricing objectives

Parameters
scipSCIP data structure
dualsolconvarray of dual solutions corresponding to convexity constraints

Definition at line 3152 of file pricer_gcg.cpp.

References GCGcreateNewMasterVarFromGcgCol(), GCGsolverUpdate(), ObjPricerGcg::getReducedCostPricingNonConst(), PRICER_NAME, ObjPricerGcg::pricerdata, and ObjPricerGcg::setPricingObjs().

Referenced by ObjPricerGcg::pricingLoop(), and SCIP_DECL_SEPAEXECLP().

static SCIP_DECL_EVENTEXEC ( eventExecVardeleted  )
static
static SCIP_DECL_PARAMCHGD ( paramChgdDisablecutoff  )
static

information method for a parameter change of disablecutoff

Definition at line 253 of file pricer_gcg.cpp.

References GCGgetMasterprob().

SCIP_DECL_PRICEREXIT ( ObjPricerGcg::scip_exit  )

deinitialization method of variable pricer (called before transformed problem is freed)

Definition at line 3443 of file pricer_gcg.cpp.

References ObjPricerGcg::SCIP_DECL_PRICERINITSOL().

SCIP_DECL_PRICEREXITSOL ( ObjPricerGcg::scip_exitsol  )

solving process deinitialization method of variable pricer (called before branch and bound process data is freed)

Definition at line 3655 of file pricer_gcg.cpp.

References ObjPricerGcg::colpool, gcg::Pricingcontroller::exitSol(), GCGcolpoolFree(), GCGpricestoreFree(), ObjPricerGcg::pricerdata, ObjPricerGcg::pricestore, and ObjPricerGcg::SCIP_DECL_PRICERREDCOST().

SCIP_DECL_PRICERFREE ( ObjPricerGcg::scip_free  )

destructor of variable pricer to free user data (called when SCIP is exiting)

Definition at line 3400 of file pricer_gcg.cpp.

References ObjPricerGcg::pricerdata, and ObjPricerGcg::SCIP_DECL_PRICERINIT().

SCIP_DECL_PRICERINIT ( ObjPricerGcg::scip_init  )

initialization method of variable pricer (called after problem was transformed)

Definition at line 3427 of file pricer_gcg.cpp.

References PricingType::resetCalls(), and ObjPricerGcg::SCIP_DECL_PRICEREXIT().