Scippy

GCG

Branch-and-Price & Column Generation for Everyone

gcg::Stabilization Class Reference

Detailed Description

Definition at line 44 of file class_stabilization.h.

#include <class_stabilization.h>

Public Member Functions

 Stabilization (SCIP *scip, PricingType *pricingtype, SCIP_Bool hybridascent)
 
 Stabilization ()
 
virtual ~Stabilization ()
 
SCIP_RETCODE consGetDual (int i, SCIP_Real *dual)
 
SCIP_RETCODE rowGetDual (int i, SCIP_Real *dual)
 
SCIP_Real convGetDual (int i)
 
SCIP_RETCODE updateStabilityCenter (SCIP_Real lowerbound, SCIP_Real *dualsolconv, GCG_COL **pricingcols)
 
void updateAlphaMisprice ()
 
void updateAlpha ()
 
SCIP_Bool isStabilized ()
 
void activateMispricingSchedule ()
 
void disablingMispricingSchedule ()
 
SCIP_Bool isInMispricingSchedule () const
 
SCIP_RETCODE setLinkingConss (SCIP_CONS **linkingconss, int *linkingconsblock, int nlinkingconss)
 
SCIP_RETCODE setNLinkingconsvals (int nlinkingconssnew)
 
SCIP_RETCODE setNConvconsvals (int nconvconssnew)
 
SCIP_Real linkingconsGetDual (int i)
 
void updateNode ()
 
SCIP_RETCODE updateHybrid ()
 
SCIP_RETCODE updateSubgradientProduct (GCG_COL **pricingcols)
 

Constructor & Destructor Documentation

◆ Stabilization() [1/2]

gcg::Stabilization::Stabilization ( SCIP *  scip,
PricingType pricingtype,
SCIP_Bool  hybridascent 
)

constructor

Parameters
scipSCIP data structure
pricingtypethe pricing type when the stabilization should run
hybridascentenable hybridization of smoothing with an ascent method?

Definition at line 57 of file class_stabilization.cpp.

◆ Stabilization() [2/2]

gcg::Stabilization::Stabilization ( )

constructor

◆ ~Stabilization()

gcg::Stabilization::~Stabilization ( )
virtual

destructor

Definition at line 75 of file class_stabilization.cpp.

Member Function Documentation

◆ consGetDual()

SCIP_RETCODE gcg::Stabilization::consGetDual ( int  i,
SCIP_Real *  dual 
)

gets the stabilized dual solution of constraint at position i

Parameters
iindex of the constraint
dualreturn pointer for dual value

Definition at line 248 of file class_stabilization.cpp.

References PricingType::consGetDual(), GCGgetMasterConss(), GCGgetNMasterConss(), and GCGmasterGetOrigprob().

Referenced by updateStabilityCenter().

◆ rowGetDual()

SCIP_RETCODE gcg::Stabilization::rowGetDual ( int  i,
SCIP_Real *  dual 
)

gets the stabilized dual solution of cut at position i

Parameters
iindex of the row
dualreturn pointer for dual value

Definition at line 280 of file class_stabilization.cpp.

References GCGsepaGetMastercuts(), GCGsepaGetNCuts(), and PricingType::rowGetDual().

Referenced by updateStabilityCenter().

◆ convGetDual()

SCIP_Real gcg::Stabilization::convGetDual ( int  i)

gets the stabilized dual of the convexity constraint at position i

Definition at line 314 of file class_stabilization.cpp.

References PricingType::consGetDual(), GCGgetConvCons(), GCGgetNIdenticalBlocks(), GCGgetNPricingprobs(), and GCGmasterGetOrigprob().

◆ updateStabilityCenter()

SCIP_RETCODE gcg::Stabilization::updateStabilityCenter ( SCIP_Real  lowerbound,
SCIP_Real *  dualsolconv,
GCG_COL **  pricingcols 
)

updates the stability center if the bound has increased

Parameters
lowerboundlower bound due to lagrange function corresponding to current (stabilized) dual vars
dualsolconvcorresponding feasible dual solution for convexity constraints
pricingcolscolumns of the pricing problems

Definition at line 330 of file class_stabilization.cpp.

References consGetDual(), GCGgetNMasterConss(), GCGgetNPricingprobs(), GCGgetNVarLinkingconss(), GCGisPricingprobRelevant(), GCGmasterGetOrigprob(), GCGsepaGetNCuts(), linkingconsGetDual(), and rowGetDual().

◆ updateAlphaMisprice()

void gcg::Stabilization::updateAlphaMisprice ( )

updates the alpha after unsuccessful pricing

Definition at line 482 of file class_stabilization.cpp.

◆ updateAlpha()

void gcg::Stabilization::updateAlpha ( )

updates the alpha after successful pricing

Definition at line 490 of file class_stabilization.cpp.

◆ isStabilized()

SCIP_Bool gcg::Stabilization::isStabilized ( )

returns whether the stabilization is active

Definition at line 1122 of file class_stabilization.cpp.

◆ activateMispricingSchedule()

void gcg::Stabilization::activateMispricingSchedule ( )

enabling mispricing schedule

Definition at line 1130 of file class_stabilization.cpp.

◆ disablingMispricingSchedule()

void gcg::Stabilization::disablingMispricingSchedule ( )

disabling mispricing schedule

Definition at line 1137 of file class_stabilization.cpp.

◆ isInMispricingSchedule()

SCIP_Bool gcg::Stabilization::isInMispricingSchedule ( ) const

is mispricing schedule enabled

Definition at line 1145 of file class_stabilization.cpp.

◆ setLinkingConss()

SCIP_RETCODE gcg::Stabilization::setLinkingConss ( SCIP_CONS **  linkingconss,
int *  linkingconsblock,
int  nlinkingconss 
)

sets the variable linking constraints in the master

Parameters
linkingconssarray of linking master constraints
linkingconsblockblock of the linking constraints
nlinkingconsssize of the array

◆ setNLinkingconsvals()

SCIP_RETCODE gcg::Stabilization::setNLinkingconsvals ( int  nlinkingconssnew)

increases the number of new variable linking constraints

Parameters
nlinkingconssnewnumber of new linking constraints

Definition at line 190 of file class_stabilization.cpp.

◆ setNConvconsvals()

SCIP_RETCODE gcg::Stabilization::setNConvconsvals ( int  nconvconssnew)

increases the number of new convexity constraints

Definition at line 216 of file class_stabilization.cpp.

◆ linkingconsGetDual()

SCIP_Real gcg::Stabilization::linkingconsGetDual ( int  i)

gets the dual of variable linking constraints at index i update node

Definition at line 229 of file class_stabilization.cpp.

References PricingType::consGetDual(), GCGgetNVarLinkingconss(), GCGgetVarLinkingconss(), and GCGmasterGetOrigprob().

Referenced by updateStabilityCenter().

◆ updateNode()

void gcg::Stabilization::updateNode ( )

update information for hybrid stablization with dual ascent

◆ updateHybrid()

SCIP_RETCODE gcg::Stabilization::updateHybrid ( )

Definition at line 460 of file class_stabilization.cpp.

◆ updateSubgradientProduct()

SCIP_RETCODE gcg::Stabilization::updateSubgradientProduct ( GCG_COL **  pricingcols)

update subgradient product

Parameters
pricingcolssolutions of the pricing problems

Definition at line 1152 of file class_stabilization.cpp.