BlisConGenerator Class Reference

Interface between Blis and Cut Generation Library. More...

#include <BlisConGenerator.h>

Inheritance diagram for BlisConGenerator:
Inheritance graph
[legend]
Collaboration diagram for BlisConGenerator:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Constructors and destructors



 BlisConGenerator ()
 Default constructor.
 BlisConGenerator (BlisModel *model, CglCutGenerator *generator, const char *name=NULL, int strategy=0, bool normal=true, bool atSolution=false, bool infeasible=false)
 Useful constructor.
 BlisConGenerator (const BlisConGenerator &)
 Copy constructor.
BlisConGeneratoroperator= (const BlisConGenerator &rhs)
 Assignment operator.
 ~BlisConGenerator ()
 Destructor.
 BlisConGenerator ()
 Default constructor.
 BlisConGenerator (BlisModel *model, CglCutGenerator *generator, const char *name=NULL, BlisCutStrategy strategy=BlisCutStrategyAuto, int cutGenerationFrequency_=1, bool normal=true, bool atSolution=false, bool infeasible=false)
 Useful constructor.
 BlisConGenerator (const BlisConGenerator &)
 Copy constructor.
BlisConGeneratoroperator= (const BlisConGenerator &rhs)
 Assignment operator.
virtual ~BlisConGenerator ()
 Destructor.
Generate Cons



bool generateCons (OsiCuts &cs, bool fullScan)
 Generate cons for the client model.
Gets and sets



void refreshModel (BlisModel *model)
 Set the client model.
const char * name () const
 return name of generator.
void setStrategy (int value)
 Set the con generation strategy.
int strategy () const
 Get the con generation interval.
bool normal () const
 Get whether the con generator should be called in the normal place.
void setNormal (bool value)
 Set whether the con generator should be called in the normal place.
bool atSolution () const
 Get whether the con generator should be called when a solution is found.
void setAtSolution (bool value)
 Set whether the con generator should be called when a solution is found.
bool whenInfeasible () const
 Get whether the con generator should be called when the subproblem is found to be infeasible.
void setWhenInfeasible (bool value)
 Set whether the con generator should be called when the subproblem is found to be infeasible.
CglCutGeneratorgenerator () const
 Get the CglCutGenerator bound to this BlisConGenerator.
int numConsGenerated ()
 Get number of generated cons.
void addNumConsGenerated (int n)
 Increase the number of generated cons.
int numConsUsed ()
 Get number of used cons.
void addNumConsUsed (int n)
 Increase the number of generated cons.
double time ()
 Cpu time used.
void addTime (double t)
 Increase Cpu time used.
int calls ()
 Number called.
void addCalls (int n=1)
 Increase the number of called.
int noConsCalls ()
 Number called and no cons found.
void addNoConsCalls (int n=1)
 Increase the number of no cons called.
BlisModelgetModel ()
 Set the client model.
void setModel (BlisModel *m)
 Set the model.
void refreshModel (BlisModel *model)
 Refresh the model.
void setName (const char *str)
 return name of generator.
std::string name () const
 return name of generator.
void setStrategy (BlisCutStrategy value)
 Set the con generation strategy.
BlisCutStrategy strategy () const
 Get the con generation interval.
void setCutGenerationFreq (int freq)
 Set the con generation strategy.
int cutGenerationFreq () const
 Get the con generation interval.
bool normal () const
 Get whether the con generator should be called in the normal place.
void setNormal (bool value)
 Set whether the con generator should be called in the normal place.
bool atSolution () const
 Get whether the con generator should be called when a solution is found.
void setAtSolution (bool value)
 Set whether the con generator should be called when a solution is found.
bool whenInfeasible () const
 Get whether the con generator should be called when the subproblem is found to be infeasible.
void setWhenInfeasible (bool value)
 Set whether the con generator should be called when the subproblem is found to be infeasible.
CglCutGeneratorgenerator () const
 Get the CglCutGenerator bound to this BlisConGenerator.
int numConsGenerated ()
 Get number of generated cons.
void addNumConsGenerated (int n)
 Increase the number of generated cons.
int numConsUsed ()
 Get number of used cons.
void addNumConsUsed (int n)
 Increase the number of generated cons.
double time () const
 Cpu time used.
void addTime (double t)
 Increase Cpu time used.
int calls () const
 Number called.
void addCalls (int n=1)
 Increase the number of called.
int noConsCalls () const
 Number called and no cons found.
void addNoConsCalls (int n=1)
 Increase the number of no cons called.
Generate Constraints



virtual bool generateConstraints (BcpsConstraintPool &conPool)
 Generate cons for the client model.

Protected Attributes

BlisCutStrategy strategy_
 When to call CglCutGenerator::generateCuts routine.
int cutGenerationFrequency_
 The frequency of calls to the cut generator.
std::string name_
 Name of generator.

Private Attributes

BlisModelmodel_
 The client model.
CglCutGeneratorgenerator_
 The CglCutGenerator object.
int strategy_
 When to call CglCutGenerator::generateCuts routine.
char * name_
 Name of generator.
bool normal_
 Whether to call the generator in the normal place.
bool atSolution_
 Whether to call the generator when a new solution is found.
bool whenInfeasible_
 Whether to call generator when a subproblem is found to be infeasible.
int numConsGenerated_
 Number of cons generated.
int numConsUsed_
 Number of cons used.
double time_
 Used CPU/User time.
int calls_
 The times of calling this generator.
int noConsCalls_
 The times of calling this generator and no cons found.

Detailed Description

Interface between Blis and Cut Generation Library.

BlisConGenerator is intended to provide an intelligent interface between Blis and the cutting plane algorithms in the CGL. A BlisConGenerator is bound to a CglCutGenerator and to an BlisModel. It contains parameters which control when and how the generateCuts method of the CglCutGenerator will be called.

The builtin decision criteria available to use when deciding whether to generate cons are: at root, autmatic, every X nodes, when a solution is found, and when a subproblem is found to be infeasible.

Definition at line 57 of file BlisConGenerator.h.


Constructor & Destructor Documentation

BlisConGenerator::BlisConGenerator (  )  [inline]

Default constructor.

Definition at line 115 of file BlisConGenerator.h.

BlisConGenerator::BlisConGenerator ( BlisModel model,
CglCutGenerator generator,
const char *  name = NULL,
int  strategy = 0,
bool  normal = true,
bool  atSolution = false,
bool  infeasible = false 
)

Useful constructor.

BlisConGenerator::BlisConGenerator ( const BlisConGenerator  ) 

Copy constructor.

BlisConGenerator::~BlisConGenerator (  )  [inline]

Destructor.

Definition at line 147 of file BlisConGenerator.h.

BlisConGenerator::BlisConGenerator (  )  [inline]

Default constructor.

Definition at line 119 of file BlisConGenerator.h.

BlisConGenerator::BlisConGenerator ( BlisModel model,
CglCutGenerator generator,
const char *  name = NULL,
BlisCutStrategy  strategy = BlisCutStrategyAuto,
int  cutGenerationFrequency_ = 1,
bool  normal = true,
bool  atSolution = false,
bool  infeasible = false 
)

Useful constructor.

BlisConGenerator::BlisConGenerator ( const BlisConGenerator  ) 

Copy constructor.

virtual BlisConGenerator::~BlisConGenerator (  )  [inline, virtual]

Destructor.

Definition at line 152 of file BlisConGenerator.h.


Member Function Documentation

BlisConGenerator& BlisConGenerator::operator= ( const BlisConGenerator rhs  ) 

Assignment operator.

bool BlisConGenerator::generateCons ( OsiCuts cs,
bool  fullScan 
)

Generate cons for the client model.

Evaluate the state of the client model and decide whether to generate cons. The generated cons are inserted into and returned in the collection of cons cs.

If fullScan is true, the generator is obliged to call the CGL generateCuts routine. Otherwise, it is free to make a local decision. The current implementation uses strategy_ to decide.

The routine returns true if reoptimisation is needed (because the state of the solver interface has been modified).

void BlisConGenerator::refreshModel ( BlisModel model  ) 

Set the client model.

In addition to setting the client model, refreshModel also calls the refreshSolver method of the CglCutGenerator object.

const char* BlisConGenerator::name (  )  const [inline]

return name of generator.

Definition at line 185 of file BlisConGenerator.h.

void BlisConGenerator::setStrategy ( int  value  )  [inline]

Set the con generation strategy.

Definition at line 188 of file BlisConGenerator.h.

int BlisConGenerator::strategy (  )  const [inline]

Get the con generation interval.

Definition at line 191 of file BlisConGenerator.h.

bool BlisConGenerator::normal (  )  const [inline]

Get whether the con generator should be called in the normal place.

Definition at line 194 of file BlisConGenerator.h.

void BlisConGenerator::setNormal ( bool  value  )  [inline]

Set whether the con generator should be called in the normal place.

Definition at line 197 of file BlisConGenerator.h.

bool BlisConGenerator::atSolution (  )  const [inline]

Get whether the con generator should be called when a solution is found.

Definition at line 201 of file BlisConGenerator.h.

void BlisConGenerator::setAtSolution ( bool  value  )  [inline]

Set whether the con generator should be called when a solution is found.

Definition at line 205 of file BlisConGenerator.h.

bool BlisConGenerator::whenInfeasible (  )  const [inline]

Get whether the con generator should be called when the subproblem is found to be infeasible.

Definition at line 209 of file BlisConGenerator.h.

void BlisConGenerator::setWhenInfeasible ( bool  value  )  [inline]

Set whether the con generator should be called when the subproblem is found to be infeasible.

Definition at line 213 of file BlisConGenerator.h.

CglCutGenerator* BlisConGenerator::generator (  )  const [inline]

Get the CglCutGenerator bound to this BlisConGenerator.

Definition at line 216 of file BlisConGenerator.h.

int BlisConGenerator::numConsGenerated (  )  [inline]

Get number of generated cons.

Definition at line 219 of file BlisConGenerator.h.

void BlisConGenerator::addNumConsGenerated ( int  n  )  [inline]

Increase the number of generated cons.

Definition at line 222 of file BlisConGenerator.h.

int BlisConGenerator::numConsUsed (  )  [inline]

Get number of used cons.

Definition at line 225 of file BlisConGenerator.h.

void BlisConGenerator::addNumConsUsed ( int  n  )  [inline]

Increase the number of generated cons.

Definition at line 228 of file BlisConGenerator.h.

double BlisConGenerator::time (  )  [inline]

Cpu time used.

Definition at line 231 of file BlisConGenerator.h.

void BlisConGenerator::addTime ( double  t  )  [inline]

Increase Cpu time used.

Definition at line 234 of file BlisConGenerator.h.

int BlisConGenerator::calls (  )  [inline]

Number called.

Definition at line 237 of file BlisConGenerator.h.

void BlisConGenerator::addCalls ( int  n = 1  )  [inline]

Increase the number of called.

Definition at line 240 of file BlisConGenerator.h.

int BlisConGenerator::noConsCalls (  )  [inline]

Number called and no cons found.

Definition at line 243 of file BlisConGenerator.h.

void BlisConGenerator::addNoConsCalls ( int  n = 1  )  [inline]

Increase the number of no cons called.

Definition at line 246 of file BlisConGenerator.h.

BlisConGenerator& BlisConGenerator::operator= ( const BlisConGenerator rhs  ) 

Assignment operator.

virtual bool BlisConGenerator::generateConstraints ( BcpsConstraintPool conPool  )  [virtual]

Generate cons for the client model.

Evaluate the state of the client model and decide whether to generate cons. The generated cons are inserted into and returned in the collection of cons cs.

The routine returns true if reoptimisation is needed (because the state of the solver interface has been modified).

Reimplemented in VrpCutGenerator.

BlisModel* BlisConGenerator::getModel (  )  [inline]

Set the client model.

In addition to setting the client model, refreshModel also calls the refreshSolver method of the CglCutGenerator object. Get a pointer to the model

Definition at line 182 of file BlisConGenerator.h.

void BlisConGenerator::setModel ( BlisModel m  )  [inline]

Set the model.

Definition at line 185 of file BlisConGenerator.h.

void BlisConGenerator::refreshModel ( BlisModel model  ) 

Refresh the model.

void BlisConGenerator::setName ( const char *  str  )  [inline]

return name of generator.

Definition at line 191 of file BlisConGenerator.h.

std::string BlisConGenerator::name (  )  const [inline]

return name of generator.

Definition at line 194 of file BlisConGenerator.h.

void BlisConGenerator::setStrategy ( BlisCutStrategy  value  )  [inline]

Set the con generation strategy.

Definition at line 197 of file BlisConGenerator.h.

BlisCutStrategy BlisConGenerator::strategy (  )  const [inline]

Get the con generation interval.

Definition at line 200 of file BlisConGenerator.h.

void BlisConGenerator::setCutGenerationFreq ( int  freq  )  [inline]

Set the con generation strategy.

Definition at line 203 of file BlisConGenerator.h.

int BlisConGenerator::cutGenerationFreq (  )  const [inline]

Get the con generation interval.

Definition at line 206 of file BlisConGenerator.h.

bool BlisConGenerator::normal (  )  const [inline]

Get whether the con generator should be called in the normal place.

Definition at line 209 of file BlisConGenerator.h.

void BlisConGenerator::setNormal ( bool  value  )  [inline]

Set whether the con generator should be called in the normal place.

Definition at line 212 of file BlisConGenerator.h.

bool BlisConGenerator::atSolution (  )  const [inline]

Get whether the con generator should be called when a solution is found.

Definition at line 216 of file BlisConGenerator.h.

void BlisConGenerator::setAtSolution ( bool  value  )  [inline]

Set whether the con generator should be called when a solution is found.

Definition at line 220 of file BlisConGenerator.h.

bool BlisConGenerator::whenInfeasible (  )  const [inline]

Get whether the con generator should be called when the subproblem is found to be infeasible.

Definition at line 224 of file BlisConGenerator.h.

void BlisConGenerator::setWhenInfeasible ( bool  value  )  [inline]

Set whether the con generator should be called when the subproblem is found to be infeasible.

Definition at line 228 of file BlisConGenerator.h.

CglCutGenerator* BlisConGenerator::generator (  )  const [inline]

Get the CglCutGenerator bound to this BlisConGenerator.

Definition at line 231 of file BlisConGenerator.h.

int BlisConGenerator::numConsGenerated (  )  [inline]

Get number of generated cons.

Definition at line 234 of file BlisConGenerator.h.

void BlisConGenerator::addNumConsGenerated ( int  n  )  [inline]

Increase the number of generated cons.

Definition at line 237 of file BlisConGenerator.h.

int BlisConGenerator::numConsUsed (  )  [inline]

Get number of used cons.

Definition at line 240 of file BlisConGenerator.h.

void BlisConGenerator::addNumConsUsed ( int  n  )  [inline]

Increase the number of generated cons.

Definition at line 243 of file BlisConGenerator.h.

double BlisConGenerator::time (  )  const [inline]

Cpu time used.

Definition at line 246 of file BlisConGenerator.h.

void BlisConGenerator::addTime ( double  t  )  [inline]

Increase Cpu time used.

Definition at line 249 of file BlisConGenerator.h.

int BlisConGenerator::calls (  )  const [inline]

Number called.

Definition at line 252 of file BlisConGenerator.h.

void BlisConGenerator::addCalls ( int  n = 1  )  [inline]

Increase the number of called.

Definition at line 255 of file BlisConGenerator.h.

int BlisConGenerator::noConsCalls (  )  const [inline]

Number called and no cons found.

Definition at line 258 of file BlisConGenerator.h.

void BlisConGenerator::addNoConsCalls ( int  n = 1  )  [inline]

Increase the number of no cons called.

Definition at line 261 of file BlisConGenerator.h.


Member Data Documentation

The client model.

Reimplemented in VrpCutGenerator.

Definition at line 61 of file BlisConGenerator.h.

The CglCutGenerator object.

Definition at line 64 of file BlisConGenerator.h.

When to call CglCutGenerator::generateCuts routine.

-2: disable -1: just root 0: automatically decided by BLIS any positive integer: the node interval between the call

Definition at line 76 of file BlisConGenerator.h.

char* BlisConGenerator::name_ [private]

Name of generator.

Definition at line 79 of file BlisConGenerator.h.

bool BlisConGenerator::normal_ [private]

Whether to call the generator in the normal place.

Definition at line 82 of file BlisConGenerator.h.

Whether to call the generator when a new solution is found.

Definition at line 85 of file BlisConGenerator.h.

Whether to call generator when a subproblem is found to be infeasible.

Definition at line 89 of file BlisConGenerator.h.

Number of cons generated.

Definition at line 96 of file BlisConGenerator.h.

Number of cons used.

Definition at line 99 of file BlisConGenerator.h.

double BlisConGenerator::time_ [private]

Used CPU/User time.

Definition at line 102 of file BlisConGenerator.h.

int BlisConGenerator::calls_ [private]

The times of calling this generator.

Definition at line 105 of file BlisConGenerator.h.

The times of calling this generator and no cons found.

Definition at line 108 of file BlisConGenerator.h.

When to call CglCutGenerator::generateCuts routine.

BlisCutStrategyNone: disable BlisCutStrategyRoot: just root BlisCutStrategyAuto: automatically decided by BLIS BlisCutStrategyPeriodic: Generate every 't' nodes

Definition at line 77 of file BlisConGenerator.h.

The frequency of calls to the cut generator.

Definition at line 80 of file BlisConGenerator.h.

std::string BlisConGenerator::name_ [protected]

Name of generator.

Definition at line 83 of file BlisConGenerator.h.


The documentation for this class was generated from the following files:

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1