Scippy

GCG

Branch-and-Price & Column Generation for Everyone

gcgvar.c File Reference

Detailed Description

GCG variable access functions.

Author
Martin Bergner
Christian Puchert

Definition in file gcgvar.c.

#include "gcg.h"
#include "pub_gcgvar.h"
#include "struct_vardata.h"
#include "relax_gcg.h"
#include "scip_misc.h"
#include "scip/cons_linear.h"

Go to the source code of this file.

Macros

#define STARTMAXMASTERVARS   8
 
#define STARTMAXORIGVARS   1
 

Functions

static SCIP_DECL_VARDELORIG (GCGvarDelOrig)
 
static SCIP_DECL_VARDELTRANS (gcgvardeltrans)
 
SCIP_Bool GCGvarIsPricing (SCIP_VAR *var)
 
SCIP_Bool GCGvarIsMaster (SCIP_VAR *var)
 
SCIP_Bool GCGvarIsOriginal (SCIP_VAR *var)
 
SCIP_Bool GCGoriginalVarIsLinking (SCIP_VAR *var)
 
SCIP_Bool GCGoriginalVarIsTransVar (SCIP_VAR *var)
 
SCIP_VAR * GCGoriginalVarGetPricingVar (SCIP_VAR *var)
 
void GCGoriginalVarSetPricingVar (SCIP_VAR *var, SCIP_VAR *pricingvar)
 
SCIP_RETCODE GCGcreateOrigVarsData (SCIP *scip)
 
SCIP_RETCODE GCGfreeOrigVarsData (SCIP *scip)
 
SCIP_RETCODE GCGorigVarCreateData (SCIP *scip, SCIP_VAR *var)
 
SCIP_RETCODE GCGcopyPricingvarDataToMastervar (SCIP *scip, SCIP_VAR *pricingvar, SCIP_VAR *mastervar)
 
SCIP_VAR ** GCGlinkingVarGetPricingVars (SCIP_VAR *var)
 
void GCGlinkingVarSetPricingVar (SCIP_VAR *origvar, int pricingprobnr, SCIP_VAR *var)
 
SCIP_RETCODE GCGlinkingVarGetBlocks (SCIP_VAR *var, int nblocks, int *blocks)
 
int GCGlinkingVarGetNBlocks (SCIP_VAR *var)
 
SCIP_VAR * GCGpricingVarGetOriginalVar (SCIP_VAR *var)
 
SCIP_RETCODE GCGpricingVarAddOrigVar (SCIP *scip, SCIP_VAR *pricingvar, SCIP_VAR *origvar)
 
int GCGoriginalVarGetNMastervars (SCIP_VAR *var)
 
SCIP_VAR ** GCGoriginalVarGetMastervars (SCIP_VAR *var)
 
SCIP_Real * GCGoriginalVarGetMastervals (SCIP_VAR *var)
 
SCIP_Real * GCGoriginalVarGetCoefs (SCIP_VAR *var)
 
int GCGoriginalVarGetNCoefs (SCIP_VAR *var)
 
void GCGoriginalVarSetNCoefs (SCIP_VAR *var, int ncoefs)
 
SCIP_RETCODE GCGoriginalVarAddCoef (SCIP *scip, SCIP_VAR *var, SCIP_Real val, SCIP_CONS *cons)
 
SCIP_CONS ** GCGoriginalVarGetMasterconss (SCIP_VAR *var)
 
SCIP_RETCODE GCGoriginalVarAddBlock (SCIP *scip, SCIP_VAR *var, int newblock, int nblocks, DEC_DECMODE mode)
 
SCIP_CONS ** GCGlinkingVarGetLinkingConss (SCIP_VAR *var)
 
void GCGlinkingVarSetLinkingCons (SCIP_VAR *var, SCIP_CONS *cons, int index)
 
SCIP_Bool GCGmasterVarIsLinking (SCIP_VAR *var)
 
SCIP_Bool GCGmasterVarIsRay (SCIP_VAR *var)
 
SCIP_Bool GCGmasterVarIsArtificial (SCIP_VAR *var)
 
int GCGmasterVarGetNOrigvars (SCIP_VAR *var)
 
SCIP_VAR ** GCGmasterVarGetOrigvars (SCIP_VAR *var)
 
SCIP_Real * GCGmasterVarGetOrigvals (SCIP_VAR *var)
 
SCIP_Real GCGmasterVarGetOrigval (SCIP_VAR *mastervar, SCIP_VAR *origvar)
 
SCIP_HASHMAP * GCGmasterVarGetOrigvalmap (SCIP_VAR *var)
 
int GCGpricingVarGetNOrigvars (SCIP_VAR *var)
 
SCIP_VAR ** GCGpricingVarGetOrigvars (SCIP_VAR *var)
 
int GCGvarGetBlock (SCIP_VAR *var)
 
void GCGvarSetBlock (SCIP_VAR *var, int block)
 
SCIP_Bool GCGisLinkingVarInBlock (SCIP_VAR *var, int block)
 
SCIP_Bool GCGisMasterVarInBlock (SCIP_VAR *mastervar, int block)
 
SCIP_RETCODE GCGoriginalVarAddMasterVar (SCIP *scip, SCIP_VAR *origvar, SCIP_VAR *var, SCIP_Real val)
 
SCIP_RETCODE GCGoriginalVarRemoveMasterVar (SCIP *scip, SCIP_VAR *origvar, SCIP_VAR *var)
 
SCIP_RETCODE GCGoriginalVarCreatePricingVar (SCIP *scip, SCIP_VAR *origvar, SCIP_VAR **var)
 
SCIP_RETCODE GCGlinkingVarCreatePricingVar (SCIP *pricingscip, int pricingprobnr, SCIP_VAR *origvar, SCIP_VAR **var)
 
SCIP_RETCODE GCGlinkingVarCreateMasterCons (SCIP *masterscip, int pricingprobnr, SCIP_VAR *origvar, SCIP_CONS **linkcons)
 
SCIP_RETCODE GCGcreateMasterVar (SCIP *scip, SCIP *origscip, SCIP *pricingscip, SCIP_VAR **newvar, const char *varname, SCIP_Real objcoeff, SCIP_VARTYPE vartype, SCIP_Bool solisray, int prob, int nsolvars, SCIP_Real *solvals, SCIP_VAR **solvars, SCIP_Bool auxiliaryvar)
 
SCIP_RETCODE GCGcreateInitialMasterVar (SCIP *scip, SCIP_VAR *var, SCIP_VAR **newvar)
 
SCIP_RETCODE GCGcreateArtificialVar (SCIP *scip, SCIP_VAR **newvar, const char *name, SCIP_Real objcoef)
 
SCIP_RETCODE GCGaddDataAuxiliaryVar (SCIP *scip, SCIP_VAR *auxiliaryvar, int probnumber)
 
void GCGsetCreationNode (SCIP_VAR *var, SCIP_Longint creationNode)
 
long long int GCGgetCreationNode (SCIP_VAR *var)
 
void GCGsetCreationTime (SCIP_VAR *var, SCIP_Real time)
 
SCIP_Real GCGgetCreationTime (SCIP_VAR *var)
 
void GCGsetRootRedcostCall (SCIP_VAR *var, SCIP_Longint rootredcostcall)
 
SCIP_Longint GCGgetRootRedcostCall (SCIP_VAR *var)
 
void GCGsetIteration (SCIP_VAR *var, SCIP_Longint iteration)
 
SCIP_Longint GCGgetIteration (SCIP_VAR *var)
 
void GCGsetVarGap (SCIP_VAR *var, SCIP_Real gap)
 
SCIP_Real GCGgetVarGap (SCIP_VAR *var)
 
void GCGsetRedcost (SCIP *scip, SCIP_VAR *var, SCIP_Real redcost)
 
SCIP_Real GCGgetRedcost (SCIP_VAR *var)
 
void GCGupdateVarStatistics (SCIP *scip, SCIP *origprob, SCIP_VAR *newvar, SCIP_Real redcost)
 
void GCGprintVar (SCIP *scip, FILE *file, SCIP_VAR *var)
 
int GCGmasterVarGetIndex (SCIP_VAR *var)
 
void GCGmasterVarSetIndex (SCIP_VAR *var, int index)
 

Macro Definition Documentation

◆ STARTMAXMASTERVARS

#define STARTMAXMASTERVARS   8

Definition at line 45 of file gcgvar.c.

◆ STARTMAXORIGVARS

#define STARTMAXORIGVARS   1

Definition at line 46 of file gcgvar.c.

Function Documentation

◆ SCIP_DECL_VARDELORIG()

static SCIP_DECL_VARDELORIG ( GCGvarDelOrig  )
static

callback method called when an original GCG variable is deleted

Definition at line 54 of file gcgvar.c.

References GCG_VARTYPE_MASTER, GCG_VARTYPE_ORIGINAL, GCG_VARTYPE_PRICING, and GCGgetNPricingprobs().

◆ SCIP_DECL_VARDELTRANS()

static SCIP_DECL_VARDELTRANS ( gcgvardeltrans  )
static

callback method called when a transformed GCG variable is deleted

Definition at line 118 of file gcgvar.c.

References GCG_VARTYPE_MASTER.

◆ GCGvarIsMaster()

◆ GCGvarIsOriginal()

SCIP_Bool GCGvarIsOriginal ( SCIP_VAR *  var)

returns TRUE or FALSE whether variable is a original variable or not

Parameters
varSCIP variable structure

Definition at line 166 of file gcgvar.c.

References GCG_VARTYPE_ORIGINAL.

Referenced by applyGlobalBndchgsToPricedMastervars(), applyLocalBndchgsToCopiedMastervars(), applyLocalBndchgsToPricedMastervars(), applyLocalBndchgsToPricingprobs(), assignUniqueBlockFlags(), checkAggregatedLocalBounds(), checkIdentical(), checkIdenticalBlocks(), ObjPricerGcg::computeColMastercoefs(), ObjPricerGcg::computeColMastercuts(), createChildNodesRyanfoster(), createLinkingPricingVars(), fixVariables(), GCG_DECL_BRANCHACTIVEMASTER(), GCGcreateMasterVar(), GCGisLinkingVarInBlock(), GCGlinkingVarGetLinkingConss(), GCGlinkingVarSetLinkingCons(), GCGmasterCreateInitialMastervars(), GCGmasterTransOrigSolToMasterVars(), GCGoriginalVarAddBlock(), GCGoriginalVarAddCoef(), GCGoriginalVarAddMasterVar(), GCGoriginalVarCreatePricingVar(), GCGoriginalVarGetCoefs(), GCGoriginalVarGetMasterconss(), GCGoriginalVarGetMastervals(), GCGoriginalVarGetMastervars(), GCGoriginalVarGetNCoefs(), GCGoriginalVarGetNMastervars(), GCGoriginalVarGetPricingVar(), GCGoriginalVarIsLinking(), GCGoriginalVarIsTransVar(), GCGoriginalVarRemoveMasterVar(), GCGoriginalVarSetNCoefs(), GCGoriginalVarSetPricingVar(), GCGpricingVarAddOrigVar(), GCGprintVar(), GCGtransformOrigvalsToMastervals(), ObjPricerGcg::getStabilizedDualObjectiveValue(), getUniqueBlockFlagForIter(), initializeStartsol(), newProbingNodeRyanfosterMaster(), saveOriginalVarMastercoeffs(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_CONSCHECK(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_SEPAEXECLP(), setOriginalVarBlockNr(), ObjPricerGcg::setPricingObjs(), setPricingObjsOriginal(), transformMaster(), and undoLocalBndchgsToPricingprobs().

◆ GCGoriginalVarIsLinking()

SCIP_Bool GCGoriginalVarIsLinking ( SCIP_VAR *  var)

returns TRUE or FALSE whether variable is a linking variable or not

Parameters
varSCIP variable structure

Definition at line 182 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by applyLocalBndchgsToPricedMastervars(), areVarsInSameBlock(), assignUniqueBlockFlags(), checkIdenticalBlocks(), compareOneExtremePoint(), ObjPricerGcg::computeColMastercoefs(), convertStructToGCG(), createGraph(), createLinkingPricingVars(), createMasterprobConss(), ObjPricerGcg::createNewMasterVar(), ObjPricerGcg::createNewMasterVarFromGcgCol(), createPricingVariables(), fixVariables(), GCGisLinkingVarInBlock(), GCGisMasterVarInBlock(), GCGlinkingVarCreateMasterCons(), GCGlinkingVarCreatePricingVar(), GCGlinkingVarGetBlocks(), GCGlinkingVarGetLinkingConss(), GCGlinkingVarGetNBlocks(), GCGlinkingVarGetPricingVars(), GCGlinkingVarSetLinkingCons(), GCGlinkingVarSetPricingVar(), GCGmasterCreateInitialMastervars(), GCGmasterTransOrigSolToMasterVars(), GCGmasterVarGetOrigval(), GCGmasterVarIsLinking(), GCGoriginalVarAddBlock(), GCGoriginalVarCreatePricingVar(), GCGoriginalVarGetPricingVar(), GCGoriginalVarSetPricingVar(), GCGprintVar(), GCGtransformMastersolToOrigsol(), ObjPricerGcg::getStabilizedDualObjectiveValue(), getUniqueBlockFlagForIter(), initializeStartsol(), SCIP_DECL_BENDERSGETVAR(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_HEUREXEC(), setOriginalVarBlockNr(), ObjPricerGcg::setPricingObjs(), setSubproblemObjs(), transformMaster(), undoLocalBndchgsToPricingprobs(), varGetObj(), and ReducedCostPricing::varGetObj().

◆ GCGoriginalVarIsTransVar()

SCIP_Bool GCGoriginalVarIsTransVar ( SCIP_VAR *  var)

returns TRUE or FALSE whether variable is a directly transferred variable or not

Parameters
varSCIP variable structure

Definition at line 199 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by createMasterprobConss(), and ObjPricerGcg::getStabilizedDualObjectiveValue().

◆ GCGoriginalVarGetPricingVar()

◆ GCGoriginalVarSetPricingVar()

void GCGoriginalVarSetPricingVar ( SCIP_VAR *  var,
SCIP_VAR *  pricingvar 
)

returns the pricing var of an original variable

Parameters
varSCIP variable structure
pricingvarSCIP variable structure

Definition at line 235 of file gcgvar.c.

References GCGoriginalVarIsLinking(), GCGvarIsOriginal(), and GCGvarIsPricing().

Referenced by checkIdenticalBlocks(), and createPricingVar().

◆ GCGcreateOrigVarsData()

SCIP_RETCODE GCGcreateOrigVarsData ( SCIP *  scip)

creates the data for all variables of the original program

Parameters
scipSCIP data structure

Definition at line 255 of file gcgvar.c.

References GCGorigVarCreateData().

Referenced by convertStructToGCG().

◆ GCGfreeOrigVarsData()

SCIP_RETCODE GCGfreeOrigVarsData ( SCIP *  scip)

frees the data for all variables of the original program

Parameters
scipSCIP data structure

Definition at line 279 of file gcgvar.c.

Referenced by SCIP_DECL_RELAXEXITSOL().

◆ GCGorigVarCreateData()

SCIP_RETCODE GCGorigVarCreateData ( SCIP *  scip,
SCIP_VAR *  var 
)

creates the data for a variable of the original program

Parameters
scipSCIP data structure
varpointer to variable object

Definition at line 313 of file gcgvar.c.

References GCG_VARTYPE_ORIGINAL, and STARTMAXMASTERVARS.

Referenced by convertStructToGCG(), and GCGcreateOrigVarsData().

◆ GCGcopyPricingvarDataToMastervar()

SCIP_RETCODE GCGcopyPricingvarDataToMastervar ( SCIP *  scip,
SCIP_VAR *  pricingvar,
SCIP_VAR *  mastervar 
)

copies the pricing variable data to a master problem variable. This is used in the Benders' decomposition mode when subproblems are merged into the master problem.

Parameters
scipmaster SCIP data structure
pricingvarthe pricing problem variable is copied from
mastervarthe master variable that the vardata is copied to

Definition at line 367 of file gcgvar.c.

References GCG_VARTYPE_MASTER, GCGpricingVarGetNOrigvars(), GCGpricingVarGetOrigvars(), and GCGvarIsPricing().

Referenced by mergeSubproblemIntoMaster().

◆ GCGlinkingVarGetPricingVars()

◆ GCGlinkingVarSetPricingVar()

void GCGlinkingVarSetPricingVar ( SCIP_VAR *  origvar,
int  pricingprobnr,
SCIP_VAR *  var 
)

sets the pricing var of the corresponding linking variable at the specified position

Parameters
origvaroriginal variable
pricingprobnrnumber of pricing problem
varpricing variable

Definition at line 427 of file gcgvar.c.

References GCGoriginalVarIsLinking(), and GCGvarIsPricing().

Referenced by createLinkingPricingVars().

◆ GCGlinkingVarGetBlocks()

SCIP_RETCODE GCGlinkingVarGetBlocks ( SCIP_VAR *  var,
int  nblocks,
int *  blocks 
)

returns the blocks the linking variable is in

Parameters
varSCIP variable structure
nblockssize of array blocks
blocksarray to store the blocks of the linking variable

Definition at line 450 of file gcgvar.c.

References GCGoriginalVarIsLinking().

Referenced by assignUniqueBlockFlags(), GCGmasterTransOrigSolToMasterVars(), getUniqueBlockFlagForIter(), and SCIP_DECL_BRANCHEXECPS().

◆ GCGlinkingVarGetNBlocks()

int GCGlinkingVarGetNBlocks ( SCIP_VAR *  var)

returns the number of blocks the linking variable is in

Parameters
varSCIP variable structure

Definition at line 493 of file gcgvar.c.

References GCGoriginalVarIsLinking().

Referenced by assignUniqueBlockFlags(), createLinkingPricingVars(), fixVariables(), GCGmasterTransOrigSolToMasterVars(), GCGprintVar(), getUniqueBlockFlagForIter(), and SCIP_DECL_BRANCHEXECPS().

◆ GCGpricingVarGetOriginalVar()

SCIP_VAR* GCGpricingVarGetOriginalVar ( SCIP_VAR *  var)

returns the original var of a pricing variable

Parameters
varSCIP variable structure

Definition at line 511 of file gcgvar.c.

References GCGvarIsPricing().

Referenced by GCGconshdlrDecompCreateVarmapForPartialdecId(), and GCGtransformOrigvalsToMastervals().

◆ GCGpricingVarAddOrigVar()

SCIP_RETCODE GCGpricingVarAddOrigVar ( SCIP *  scip,
SCIP_VAR *  pricingvar,
SCIP_VAR *  origvar 
)

adds the original var to the pricing variable

Parameters
scipSCIP variable structure
pricingvarpricing variable
origvaroriginal pricing variable

Definition at line 531 of file gcgvar.c.

References GCGvarIsOriginal(), and GCGvarIsPricing().

Referenced by checkIdenticalBlocks().

◆ GCGoriginalVarGetNMastervars()

◆ GCGoriginalVarGetMastervars()

◆ GCGoriginalVarGetMastervals()

SCIP_Real* GCGoriginalVarGetMastervals ( SCIP_VAR *  var)

returns the fraction of master variables the original variable is contained in

Parameters
varSCIP variable structure

Definition at line 605 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by calcPscostDownMaster(), calcPscostUpMaster(), GCGprintVar(), GCGtransformOrigvalsToMastervals(), getMasterDownFrac(), getMasterDownScore(), getMasterUpFrac(), getMasterUpScore(), getNLocksDown(), getNLocksUp(), and SCIP_DECL_EVENTEXEC().

◆ GCGoriginalVarGetCoefs()

SCIP_Real* GCGoriginalVarGetCoefs ( SCIP_VAR *  var)

returns the coefficients of master constraints the original variable is contained in

Parameters
varSCIP variable structure

Definition at line 623 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by checkIdentical(), ObjPricerGcg::computeColMastercoefs(), GCGmasterCreateInitialMastervars(), and saveOriginalVarMastercoeffs().

◆ GCGoriginalVarGetNCoefs()

int GCGoriginalVarGetNCoefs ( SCIP_VAR *  var)

returns the number of coefficients of master constraints the original variable is contained in

Parameters
varSCIP variable structure

Definition at line 641 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by checkIdentical(), ObjPricerGcg::computeColMastercoefs(), GCGmasterCreateInitialMastervars(), and SCIP_DECL_BRANCHEXECLP().

◆ GCGoriginalVarSetNCoefs()

void GCGoriginalVarSetNCoefs ( SCIP_VAR *  var,
int  ncoefs 
)

sets the number of master variables the original variable is contained in

Parameters
varSCIP variable structure
ncoefsnumber of coefficient to set

Definition at line 658 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by saveOriginalVarMastercoeffs().

◆ GCGoriginalVarAddCoef()

SCIP_RETCODE GCGoriginalVarAddCoef ( SCIP *  scip,
SCIP_VAR *  var,
SCIP_Real  val,
SCIP_CONS *  cons 
)

adds a coefficient of the master variable to the coefs array for the resp. constraint

Parameters
scipSCIP data structure
varvariable to add coef
valcoefficent to set
consconstraint the variable is in

Definition at line 679 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by GCGrelaxTransOrigToMasterCons(), and saveOriginalVarMastercoeffs().

◆ GCGoriginalVarGetMasterconss()

SCIP_CONS** GCGoriginalVarGetMasterconss ( SCIP_VAR *  var)

returns the fraction of master variables the original variable is contained in

Parameters
varSCIP variable structure

Definition at line 710 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by checkIdentical(), ObjPricerGcg::computeColMastercoefs(), and GCGmasterCreateInitialMastervars().

◆ GCGoriginalVarAddBlock()

SCIP_RETCODE GCGoriginalVarAddBlock ( SCIP *  scip,
SCIP_VAR *  var,
int  newblock,
int  nblocks,
DEC_DECMODE  mode 
)

adds variable to a new block, making a linkingvariable out of it, if necessary

Parameters
scipSCIP data structure
varvar that is added to a block
newblockthe new block the variable will be in
nblockstotal number of pricing problems
modethe decomposition mode

Definition at line 726 of file gcgvar.c.

References DEC_DECMODE_BENDERS, GCGgetDecompositionMode(), GCGoriginalVarIsLinking(), GCGvarGetBlock(), and GCGvarIsOriginal().

Referenced by setOriginalVarBlockNr().

◆ GCGlinkingVarGetLinkingConss()

SCIP_CONS** GCGlinkingVarGetLinkingConss ( SCIP_VAR *  var)

returns the linking constraints

Parameters
varSCIP variable structure

Definition at line 787 of file gcgvar.c.

References GCGoriginalVarIsLinking(), and GCGvarIsOriginal().

Referenced by createLinkingPricingVars(), GCGmasterCreateInitialMastervars(), and transformMaster().

◆ GCGlinkingVarSetLinkingCons()

void GCGlinkingVarSetLinkingCons ( SCIP_VAR *  var,
SCIP_CONS *  cons,
int  index 
)

sets the linking constraints

Parameters
varvariable data structure
conslinking constraint
indexindex of pricing problem

Definition at line 806 of file gcgvar.c.

References GCGoriginalVarIsLinking(), and GCGvarIsOriginal().

Referenced by createLinkingPricingVars(), and transformMaster().

◆ GCGmasterVarIsLinking()

SCIP_Bool GCGmasterVarIsLinking ( SCIP_VAR *  var)

returns TRUE or FALSE whether a master variable is a direct copy of a linking variable or not

Parameters
varvariable data structure

Definition at line 828 of file gcgvar.c.

References GCGmasterVarGetOrigvars(), GCGmasterVarIsArtificial(), GCGoriginalVarIsLinking(), GCGvarGetBlock(), and GCGvarIsMaster().

Referenced by applyGlobalBndchgsToPricedMastervars(), GCG_DECL_SORTPTRCOMP(), GCGbranchGenericInitbranch(), and SCIP_DECL_EVENTEXEC().

◆ GCGmasterVarIsRay()

SCIP_Bool GCGmasterVarIsRay ( SCIP_VAR *  var)

returns whether the master variable is a ray

Parameters
varvariable data structure

Definition at line 852 of file gcgvar.c.

References GCGvarIsMaster().

Referenced by GCGtransformMastersolToOrigsol(), getBestMastervar(), initializeStartsol(), SCIP_DECL_HEUREXEC(), and selectExtremePoints().

◆ GCGmasterVarIsArtificial()

SCIP_Bool GCGmasterVarIsArtificial ( SCIP_VAR *  var)

returns TRUE or FALSE whether a master variable is an artificial variable

Parameters
varvariable data structure

Definition at line 869 of file gcgvar.c.

References GCGvarIsMaster().

Referenced by GCGbranchGenericInitbranch(), GCGisMasterVarInBlock(), GCGmasterVarIsLinking(), and initializeStartsol().

◆ GCGmasterVarGetNOrigvars()

◆ GCGmasterVarGetOrigvars()

◆ GCGmasterVarGetOrigvals()

SCIP_Real* GCGmasterVarGetOrigvals ( SCIP_VAR *  var)

◆ GCGmasterVarGetOrigval()

SCIP_Real GCGmasterVarGetOrigval ( SCIP_VAR *  mastervar,
SCIP_VAR *  origvar 
)

returns the fraction of the original variable the master variable is contained in

Parameters
mastervarmaster variable data structure
origvaroriginal variable data structure

Definition at line 949 of file gcgvar.c.

References GCGisLinkingVarInBlock(), GCGoriginalVarIsLinking(), GCGvarGetBlock(), and GCGvarIsMaster().

◆ GCGmasterVarGetOrigvalmap()

SCIP_HASHMAP* GCGmasterVarGetOrigvalmap ( SCIP_VAR *  var)

returns a hash map that stores the fraction of original variables the master variable is contained in

Parameters
varmaster variable data structure

Definition at line 979 of file gcgvar.c.

References GCGvarIsMaster().

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

◆ GCGpricingVarGetNOrigvars()

int GCGpricingVarGetNOrigvars ( SCIP_VAR *  var)

◆ GCGpricingVarGetOrigvars()

◆ GCGvarGetBlock()

int GCGvarGetBlock ( SCIP_VAR *  var)

returns the block of the variable

Parameters
varSCIP variable structure

Definition at line 1033 of file gcgvar.c.

Referenced by addVarToMasterbranch(), applyGlobalBndchgsToPricedMastervars(), applyGlobalBndchgsToPricingprobs(), applyLocalBndchgsToCopiedMastervars(), applyLocalBndchgsToPricedMastervars(), applyLocalBndchgsToPricingprobs(), applyOriginalBranching(), areVarsInSameBlock(), assignUniqueBlockFlags(), checkAggregatedLocalBounds(), checkIdenticalBlocks(), combineSolutions(), compareExtremePointsToRelaxSol(), compareOneExtremePoint(), ObjPricerGcg::computeColMastercuts(), countExtremePoints(), createChildNodesRyanfoster(), createGraph(), createPricingVar(), createPricingVariables(), fixVariables(), GCG_DECL_BRANCHACTIVEMASTER(), GCG_DECL_BRANCHPROPMASTER(), GCG_DECL_SORTPTRCOMP(), GCGbranchGenericInitbranch(), GCGcreateInitialMasterVar(), GCGisMasterVarInBlock(), GCGmasterCreateInitialMastervars(), GCGmasterTransOrigSolToMasterVars(), GCGmasterVarGetOrigval(), GCGmasterVarIsLinking(), GCGoriginalVarAddBlock(), GCGoriginalVarCreatePricingVar(), GCGprintVar(), GCGtransformMastersolToOrigsol(), GCGtransformOrigvalsToMastervals(), getBestMastervar(), ObjPricerGcg::getStabilizedDualObjectiveValue(), getUniqueBlockFlagForIter(), initializeStartsol(), newProbingNodeRyanfosterMaster(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIPreadRef(), searchZeroMastervar(), selectExtremePoints(), selectExtremePointsRandomized(), setOriginalVarBlockNr(), ObjPricerGcg::setPricingObjs(), setPricingObjsOriginal(), setSubproblemObjs(), and undoLocalBndchgsToPricingprobs().

◆ GCGvarSetBlock()

void GCGvarSetBlock ( SCIP_VAR *  var,
int  block 
)

sets the block of the variable

Parameters
varvariable to set block for
blockblock to set

Definition at line 1048 of file gcgvar.c.

Referenced by setOriginalVarBlockNr().

◆ GCGisLinkingVarInBlock()

SCIP_Bool GCGisLinkingVarInBlock ( SCIP_VAR *  var,
int  block 
)

returns TRUE if the linking variable is in the block, FALSE otherwise

Parameters
varvariabel data structure
blockpricing problem number

Definition at line 1064 of file gcgvar.c.

References GCGlinkingVarGetPricingVars(), GCGoriginalVarIsLinking(), and GCGvarIsOriginal().

Referenced by applyGlobalBndchgsToPricedMastervars(), applyLocalBndchgsToPricedMastervars(), areVarsInSameBlock(), compareOneExtremePoint(), GCGisMasterVarInBlock(), GCGmasterVarGetOrigval(), and setOriginalVarBlockNr().

◆ GCGisMasterVarInBlock()

SCIP_Bool GCGisMasterVarInBlock ( SCIP_VAR *  mastervar,
int  block 
)

determines if the master variable is in the given block

Parameters
mastervarmaster variable
blockblock number to check

Definition at line 1084 of file gcgvar.c.

References GCGisLinkingVarInBlock(), GCGmasterVarGetOrigvars(), GCGmasterVarIsArtificial(), GCGoriginalVarIsLinking(), and GCGvarGetBlock().

Referenced by addVarToMasterbranch(), ChooseSeparateMethod(), createChildNodesGeneric(), and GCGbranchGenericInitbranch().

◆ GCGoriginalVarAddMasterVar()

SCIP_RETCODE GCGoriginalVarAddMasterVar ( SCIP *  scip,
SCIP_VAR *  origvar,
SCIP_VAR *  var,
SCIP_Real  val 
)

informs an original variable, that a variable in the master problem was created, that contains a part of the original variable. Saves this information in the original variable's data

Parameters
scipSCIP data structure
origvaroriginal variable
varmaster variable
valfraction of the original variable

Definition at line 1121 of file gcgvar.c.

References GCGisOriginal(), and GCGvarIsOriginal().

Referenced by createMasterprobConss(), GCGcreateMasterVar(), and GCGmasterCreateInitialMastervars().

◆ GCGoriginalVarRemoveMasterVar()

SCIP_RETCODE GCGoriginalVarRemoveMasterVar ( SCIP *  scip,
SCIP_VAR *  origvar,
SCIP_VAR *  var 
)

informs an original variable, that a variable in the master problem was deleted, that contains a part of the original variable. Update the information in the original variable's data

Parameters
scipSCIP data structure
origvaroriginal variable
varmaster variable

Definition at line 1168 of file gcgvar.c.

References GCGvarIsOriginal().

Referenced by SCIP_DECL_EVENTEXEC().

◆ GCGoriginalVarCreatePricingVar()

SCIP_RETCODE GCGoriginalVarCreatePricingVar ( SCIP *  scip,
SCIP_VAR *  origvar,
SCIP_VAR **  var 
)

creates the corresponding pricing variable for the given original variable

Parameters
scipSCIP data structure
origvaroriginal variable
varpricing variable

Definition at line 1213 of file gcgvar.c.

References GCG_VARTYPE_PRICING, GCGoriginalVarGetPricingVar(), GCGoriginalVarIsLinking(), GCGvarGetBlock(), GCGvarIsOriginal(), and STARTMAXORIGVARS.

Referenced by createPricingVar().

◆ GCGlinkingVarCreatePricingVar()

SCIP_RETCODE GCGlinkingVarCreatePricingVar ( SCIP *  pricingscip,
int  pricingprobnr,
SCIP_VAR *  origvar,
SCIP_VAR **  var 
)

creates the corresponding pricing variable for the given original variable

Parameters
pricingscippricing problem SCIP data structure
pricingprobnrnumber of the pricing problem
origvaroriginal variable
varpointer to store new pricing variable

Definition at line 1250 of file gcgvar.c.

References GCG_VARTYPE_PRICING, GCGoriginalVarIsLinking(), and STARTMAXORIGVARS.

Referenced by createLinkingPricingVars().

◆ GCGlinkingVarCreateMasterCons()

SCIP_RETCODE GCGlinkingVarCreateMasterCons ( SCIP *  masterscip,
int  pricingprobnr,
SCIP_VAR *  origvar,
SCIP_CONS **  linkcons 
)

creates the corresponding constraint in the master problem for the linking variable

Parameters
masterscipmsater problem SCIP data structure
pricingprobnrnumber of the pricing problem
origvaroriginal variable
linkconsconstraint linking pricing variables

Definition at line 1285 of file gcgvar.c.

References GCGoriginalVarIsLinking().

Referenced by createLinkingPricingVars().

◆ GCGcreateMasterVar()

SCIP_RETCODE GCGcreateMasterVar ( SCIP *  scip,
SCIP *  origscip,
SCIP *  pricingscip,
SCIP_VAR **  newvar,
const char *  varname,
SCIP_Real  objcoeff,
SCIP_VARTYPE  vartype,
SCIP_Bool  solisray,
int  prob,
int  nsolvars,
SCIP_Real *  solvals,
SCIP_VAR **  solvars,
SCIP_Bool  auxiliaryvar 
)

creates the master var and initializes the vardata

Parameters
scipmaster SCIP data structure
origsciporiginal SCIP data structure
pricingscippricing problem SCIP data structure
newvarpointer to store new master variable
varnamenew variable name
objcoeffnew objective coefficient
vartypenew variable type
solisrayindicates whether new variable is a ray
probnumber of pricing problem that created this variable
nsolvarsnumber of variables in the solution
solvalsvalues of variables in the solution
solvarsvariables with non zero coefficient in the solution
auxiliaryvaris new variable an Benders' auxiliary variables?

Definition at line 1309 of file gcgvar.c.

References GCG_VARTYPE_MASTER, GCGoriginalVarAddMasterVar(), GCGpricingVarGetOrigvars(), GCGvarIsOriginal(), and GCGvarIsPricing().

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

◆ GCGcreateInitialMasterVar()

SCIP_RETCODE GCGcreateInitialMasterVar ( SCIP *  scip,
SCIP_VAR *  var,
SCIP_VAR **  newvar 
)

creates initial master variables and the vardata

Parameters
scipSCIP data structure
varoriginal variable
newvarpointer to store new variable

Definition at line 1472 of file gcgvar.c.

References DEC_DECMODE_BENDERS, DEC_DECMODE_ORIGINAL, GCG_VARTYPE_MASTER, GCGgetMasterDecompMode(), and GCGvarGetBlock().

Referenced by createMasterprobConss(), and GCGmasterCreateInitialMastervars().

◆ GCGcreateArtificialVar()

SCIP_RETCODE GCGcreateArtificialVar ( SCIP *  scip,
SCIP_VAR **  newvar,
const char *  name,
SCIP_Real  objcoef 
)

creates artificial variable and the vardata

Parameters
scipSCIP data structure
newvarpointer to store new variable
namename of variable, or NULL for automatic name creation
objcoefobjective coefficient of artificial variable

Definition at line 1522 of file gcgvar.c.

References GCG_VARTYPE_MASTER.

Referenced by ObjPricerGcg::addArtificialVars().

◆ GCGaddDataAuxiliaryVar()

SCIP_RETCODE GCGaddDataAuxiliaryVar ( SCIP *  scip,
SCIP_VAR *  auxiliaryvar,
int  probnumber 
)
Parameters
scipSCIP data structure
auxiliaryvarthe auxiliary variable
probnumberthe subproblem number

Definition at line 1554 of file gcgvar.c.

References GCG_VARTYPE_MASTER.

Referenced by SCIP_DECL_BENDERSINITPRE().

◆ GCGsetCreationNode()

void GCGsetCreationNode ( SCIP_VAR *  var,
SCIP_Longint  creationNode 
)

set creation node of variable

Parameters
varvariable data structure
creationNodenode in which the variable is created

Definition at line 1591 of file gcgvar.c.

Referenced by GCGupdateVarStatistics().

◆ GCGgetCreationNode()

long long int GCGgetCreationNode ( SCIP_VAR *  var)

return creation node of variable

Parameters
varvariable data structure

Definition at line 1606 of file gcgvar.c.

Referenced by GCGwriteVarCreationDetails().

◆ GCGsetCreationTime()

void GCGsetCreationTime ( SCIP_VAR *  var,
SCIP_Real  time 
)

store creation time

Parameters
varvariable data structure
timetime at which the variable is created

Definition at line 1619 of file gcgvar.c.

Referenced by GCGupdateVarStatistics().

◆ GCGgetCreationTime()

SCIP_Real GCGgetCreationTime ( SCIP_VAR *  var)

return stored creation time

Parameters
varvariable data structure

Definition at line 1634 of file gcgvar.c.

Referenced by GCGwriteVarCreationDetails().

◆ GCGsetRootRedcostCall()

void GCGsetRootRedcostCall ( SCIP_VAR *  var,
SCIP_Longint  rootredcostcall 
)

store pricing reduced cost call

Parameters
varvariable data structure
rootredcostcalliteration at which the variable is created

Definition at line 1647 of file gcgvar.c.

Referenced by ObjPricerGcg::createNewMasterVar(), ObjPricerGcg::createNewMasterVarFromGcgCol(), and GCGupdateVarStatistics().

◆ GCGgetRootRedcostCall()

SCIP_Longint GCGgetRootRedcostCall ( SCIP_VAR *  var)

return stored pricing reduced cost call

Parameters
varvariable data structure

Definition at line 1662 of file gcgvar.c.

Referenced by GCGwriteVarCreationDetails().

◆ GCGsetIteration()

void GCGsetIteration ( SCIP_VAR *  var,
SCIP_Longint  iteration 
)

store iteration

Parameters
varvariable data structure
iterationiteration at which the variable is created

Definition at line 1675 of file gcgvar.c.

Referenced by GCGupdateVarStatistics().

◆ GCGgetIteration()

SCIP_Longint GCGgetIteration ( SCIP_VAR *  var)

return stored iteration

Parameters
varvariable data structure

Definition at line 1690 of file gcgvar.c.

Referenced by GCGwriteVarCreationDetails().

◆ GCGsetVarGap()

void GCGsetVarGap ( SCIP_VAR *  var,
SCIP_Real  gap 
)

store gap

Parameters
varvariable data structure
gappresent gap when variable is created

Definition at line 1703 of file gcgvar.c.

Referenced by GCGupdateVarStatistics().

◆ GCGgetVarGap()

SCIP_Real GCGgetVarGap ( SCIP_VAR *  var)

return stored gap

Parameters
varvariable data structure

Definition at line 1718 of file gcgvar.c.

Referenced by GCGwriteVarCreationDetails().

◆ GCGsetRedcost()

void GCGsetRedcost ( SCIP *  scip,
SCIP_VAR *  var,
SCIP_Real  redcost 
)

store reduced cost

Parameters
scipmaster SCIP data structure
varvariable data structure
redcostreduced cost of the variable at creation

Definition at line 1731 of file gcgvar.c.

Referenced by GCGupdateVarStatistics().

◆ GCGgetRedcost()

SCIP_Real GCGgetRedcost ( SCIP_VAR *  var)

return stored reduced cost

Parameters
varvariable data structure

Definition at line 1748 of file gcgvar.c.

Referenced by GCGwriteVarCreationDetails().

◆ GCGupdateVarStatistics()

void GCGupdateVarStatistics ( SCIP *  scip,
SCIP *  origprob,
SCIP_VAR *  newvar,
SCIP_Real  redcost 
)

updates the statistics part of the variable

Parameters
scipmaster SCIP data structure
origproboriginal SCIP data structure
newvarnew variable for statistic update
redcostreduced cost of the variable

Definition at line 1761 of file gcgvar.c.

References GCGisMaster(), GCGisOriginal(), GCGsetCreationNode(), GCGsetCreationTime(), GCGsetIteration(), GCGsetRedcost(), GCGsetRootRedcostCall(), and GCGsetVarGap().

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

◆ GCGprintVar()

void GCGprintVar ( SCIP *  scip,
FILE *  file,
SCIP_VAR *  var 
)

prints the given variable: name, type (original, master or pricing) block number, and the list of all variables related to the given variable

Parameters
scipSCIP data structure
fileFile to write information to, or NULL for stdout
varvariable that should be printed

Definition at line 1789 of file gcgvar.c.

References GCGlinkingVarGetNBlocks(), GCGlinkingVarGetPricingVars(), GCGmasterVarGetNOrigvars(), GCGmasterVarGetOrigvals(), GCGmasterVarGetOrigvars(), GCGoriginalVarGetMastervals(), GCGoriginalVarGetMastervars(), GCGoriginalVarGetNMastervars(), GCGoriginalVarIsLinking(), GCGpricingVarGetNOrigvars(), GCGpricingVarGetOrigvars(), GCGvarGetBlock(), GCGvarIsMaster(), GCGvarIsOriginal(), and GCGvarIsPricing().

◆ GCGmasterVarGetIndex()

int GCGmasterVarGetIndex ( SCIP_VAR *  var)

returns the index of the mater variable

Parameters
varSCIP variable structure

Definition at line 1878 of file gcgvar.c.

Referenced by SCIP_DECL_EVENTEXEC().

◆ GCGmasterVarSetIndex()

void GCGmasterVarSetIndex ( SCIP_VAR *  var,
int  index 
)

sets the index of the master variable

Parameters
varSCIP variable structure
indexindex

Definition at line 1891 of file gcgvar.c.

Referenced by SCIP_DECL_EVENTEXEC().