ClpGubDynamicMatrix Class Reference

This implements Gub rows plus a ClpPackedMatrix. More...

#include <ClpGubDynamicMatrix.hpp>

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

List of all members.

Public Member Functions

Main functions provided



virtual void partialPricing (ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted)
 Partial pricing.
virtual int synchronize (ClpSimplex *model, int mode)
 This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming.
virtual void useEffectiveRhs (ClpSimplex *model, bool cheapest=true)
 Sets up an effective RHS and does gub crash if needed.
virtual int updatePivot (ClpSimplex *model, double oldInValue, double oldOutValue)
 update information for a pivot (and effective rhs)
void insertNonBasic (int sequence, int iSet)
 Add a new variable to a set.
virtual double * rhsOffset (ClpSimplex *model, bool forceRefresh=false, bool check=false)
 Returns effective RHS offset if it is being used.
virtual void times (double scalar, const double *x, double *y) const
 Return y + A * scalar *x in y.
virtual int checkFeasible (ClpSimplex *model, double &sum) const
 Just for debug Returns sum and number of primal infeasibilities.
void cleanData (ClpSimplex *model)
 Cleans data after setWarmStart.
Constructors, destructor



 ClpGubDynamicMatrix ()
 Default constructor.
virtual ~ClpGubDynamicMatrix ()
 Destructor.
Copy method



 ClpGubDynamicMatrix (const ClpGubDynamicMatrix &)
 The copy constructor.
 ClpGubDynamicMatrix (ClpSimplex *model, int numberSets, int numberColumns, const int *starts, const double *lower, const double *upper, const int *startColumn, const int *row, const double *element, const double *cost, const double *lowerColumn=NULL, const double *upperColumn=NULL, const unsigned char *status=NULL)
 This is the real constructor.
ClpGubDynamicMatrixoperator= (const ClpGubDynamicMatrix &)
 The copy constructor.
virtual ClpMatrixBaseclone () const
 Clone.

Protected Attributes

Data members

The data members are protected to allow access for derived classes.



double objectiveOffset_
 Saved value of objective offset.
CoinBigIndexstartColumn_
 Starts of each column.
int * row_
 rows
double * element_
 elements
double * cost_
 costs
int * fullStart_
 full starts
int * id_
 ids of active columns (just index here)
unsigned char * dynamicStatus_
 for status and which bound
double * lowerColumn_
 Optional lower bounds on columns.
double * upperColumn_
 Optional upper bounds on columns.
double * lowerSet_
 Optional true lower bounds on sets.
double * upperSet_
 Optional true upper bounds on sets.
int numberGubColumns_
 size
int firstAvailable_
 first free
int savedFirstAvailable_
 saved first free
int firstDynamic_
 first dynamic
int lastDynamic_
 number of columns in dynamic model
int numberElements_
 size of working matrix (max)

gets and sets



enum  DynamicStatus { inSmall = 0x01, atUpperBound = 0x02, atLowerBound = 0x03 }
 

enums for status of various sorts

More...
bool flagged (int i) const
 Whether flagged.
void setFlagged (int i)
 enums for status of various sorts
void unsetFlagged (int i)
 enums for status of various sorts
void setDynamicStatus (int sequence, DynamicStatus status)
 enums for status of various sorts
DynamicStatus getDynamicStatus (int sequence) const
 enums for status of various sorts
double objectiveOffset () const
 Saved value of objective offset.
CoinBigIndexstartColumn () const
 Starts of each column.
int * row () const
 rows
double * element () const
 elements
double * cost () const
 costs
int * fullStart () const
 full starts
int * id () const
 ids of active columns (just index here)
double * lowerColumn () const
 Optional lower bounds on columns.
double * upperColumn () const
 Optional upper bounds on columns.
double * lowerSet () const
 Optional true lower bounds on sets.
double * upperSet () const
 Optional true upper bounds on sets.
int numberGubColumns () const
 size
int firstAvailable () const
 first free
void setFirstAvailable (int value)
 set first free
int firstDynamic () const
 first dynamic
int lastDynamic () const
 number of columns in dynamic model
int numberElements () const
 size of working matrix (max)
unsigned char * gubRowStatus () const
 Status region for gub slacks.
unsigned char * dynamicStatus () const
 Status region for gub variables.
int whichSet (int sequence) const
 Returns which set a variable is in.

Detailed Description

This implements Gub rows plus a ClpPackedMatrix.

This a dynamic version which stores the gub part and dynamically creates matrix. All bounds are assumed to be zero and infinity

This is just a simple example for real column generation

Definition at line 17 of file ClpGubDynamicMatrix.hpp.


Member Enumeration Documentation

enums for status of various sorts

Enumerator:
inSmall 
atUpperBound 
atLowerBound 

Definition at line 97 of file ClpGubDynamicMatrix.hpp.


Constructor & Destructor Documentation

ClpGubDynamicMatrix::ClpGubDynamicMatrix (  ) 

Default constructor.

virtual ClpGubDynamicMatrix::~ClpGubDynamicMatrix (  )  [virtual]

Destructor.

ClpGubDynamicMatrix::ClpGubDynamicMatrix ( const ClpGubDynamicMatrix  ) 

The copy constructor.

ClpGubDynamicMatrix::ClpGubDynamicMatrix ( ClpSimplex model,
int  numberSets,
int  numberColumns,
const int *  starts,
const double *  lower,
const double *  upper,
const int *  startColumn,
const int *  row,
const double *  element,
const double *  cost,
const double *  lowerColumn = NULL,
const double *  upperColumn = NULL,
const unsigned char *  status = NULL 
)

This is the real constructor.

It assumes factorization frequency will not be changed. This resizes model !!!!


Member Function Documentation

virtual void ClpGubDynamicMatrix::partialPricing ( ClpSimplex model,
double  start,
double  end,
int &  bestSequence,
int &  numberWanted 
) [virtual]

Partial pricing.

Reimplemented from ClpGubMatrix.

virtual int ClpGubDynamicMatrix::synchronize ( ClpSimplex model,
int  mode 
) [virtual]

This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming.

Reimplemented from ClpGubMatrix.

virtual void ClpGubDynamicMatrix::useEffectiveRhs ( ClpSimplex model,
bool  cheapest = true 
) [virtual]

Sets up an effective RHS and does gub crash if needed.

Reimplemented from ClpGubMatrix.

virtual int ClpGubDynamicMatrix::updatePivot ( ClpSimplex model,
double  oldInValue,
double  oldOutValue 
) [virtual]

update information for a pivot (and effective rhs)

Reimplemented from ClpGubMatrix.

void ClpGubDynamicMatrix::insertNonBasic ( int  sequence,
int  iSet 
)

Add a new variable to a set.

virtual double* ClpGubDynamicMatrix::rhsOffset ( ClpSimplex model,
bool  forceRefresh = false,
bool  check = false 
) [virtual]

Returns effective RHS offset if it is being used.

This is used for long problems or big gub or anywhere where going through full columns is expensive. This may re-compute

Reimplemented from ClpGubMatrix.

virtual void ClpGubDynamicMatrix::times ( double  scalar,
const double *  x,
double *  y 
) const [virtual]

Return y + A * scalar *x in y.

Precondition:
x must be of size numColumns()
y must be of size numRows()

Reimplemented from ClpPackedMatrix.

virtual int ClpGubDynamicMatrix::checkFeasible ( ClpSimplex model,
double &  sum 
) const [virtual]

Just for debug Returns sum and number of primal infeasibilities.

Recomputes keys

Reimplemented from ClpMatrixBase.

void ClpGubDynamicMatrix::cleanData ( ClpSimplex model  ) 

Cleans data after setWarmStart.

ClpGubDynamicMatrix& ClpGubDynamicMatrix::operator= ( const ClpGubDynamicMatrix  ) 

The copy constructor.

Reimplemented from ClpGubMatrix.

virtual ClpMatrixBase* ClpGubDynamicMatrix::clone (  )  const [virtual]

Clone.

Reimplemented from ClpGubMatrix.

bool ClpGubDynamicMatrix::flagged ( int  i  )  const [inline]

Whether flagged.

Reimplemented from ClpGubMatrix.

Definition at line 103 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::setFlagged ( int  i  )  [inline]

enums for status of various sorts

Reimplemented from ClpGubMatrix.

Definition at line 106 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::unsetFlagged ( int  i  )  [inline]

enums for status of various sorts

Definition at line 109 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::setDynamicStatus ( int  sequence,
DynamicStatus  status 
) [inline]

enums for status of various sorts

Definition at line 112 of file ClpGubDynamicMatrix.hpp.

DynamicStatus ClpGubDynamicMatrix::getDynamicStatus ( int  sequence  )  const [inline]

enums for status of various sorts

Definition at line 118 of file ClpGubDynamicMatrix.hpp.

double ClpGubDynamicMatrix::objectiveOffset (  )  const [inline]

Saved value of objective offset.

Definition at line 121 of file ClpGubDynamicMatrix.hpp.

CoinBigIndex* ClpGubDynamicMatrix::startColumn (  )  const [inline]

Starts of each column.

Definition at line 124 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::row (  )  const [inline]

rows

Definition at line 127 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::element (  )  const [inline]

elements

Definition at line 130 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::cost (  )  const [inline]

costs

Definition at line 133 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::fullStart (  )  const [inline]

full starts

Definition at line 136 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::id (  )  const [inline]

ids of active columns (just index here)

Definition at line 139 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerColumn (  )  const [inline]

Optional lower bounds on columns.

Definition at line 142 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperColumn (  )  const [inline]

Optional upper bounds on columns.

Definition at line 145 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerSet (  )  const [inline]

Optional true lower bounds on sets.

Definition at line 148 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperSet (  )  const [inline]

Optional true upper bounds on sets.

Definition at line 151 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberGubColumns (  )  const [inline]

size

Definition at line 154 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstAvailable (  )  const [inline]

first free

Definition at line 157 of file ClpGubDynamicMatrix.hpp.

void ClpGubDynamicMatrix::setFirstAvailable ( int  value  )  [inline]

set first free

Definition at line 160 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstDynamic (  )  const [inline]

first dynamic

Definition at line 163 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::lastDynamic (  )  const [inline]

number of columns in dynamic model

Definition at line 166 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberElements (  )  const [inline]

size of working matrix (max)

Definition at line 169 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::gubRowStatus (  )  const [inline]

Status region for gub slacks.

Definition at line 172 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::dynamicStatus (  )  const [inline]

Status region for gub variables.

Definition at line 175 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::whichSet ( int  sequence  )  const

Returns which set a variable is in.


Member Data Documentation

Saved value of objective offset.

Definition at line 187 of file ClpGubDynamicMatrix.hpp.

Starts of each column.

Definition at line 189 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::row_ [protected]

rows

Definition at line 191 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::element_ [protected]

elements

Definition at line 193 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::cost_ [protected]

costs

Definition at line 195 of file ClpGubDynamicMatrix.hpp.

full starts

Definition at line 197 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::id_ [protected]

ids of active columns (just index here)

Definition at line 199 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::dynamicStatus_ [protected]

for status and which bound

Definition at line 201 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerColumn_ [protected]

Optional lower bounds on columns.

Definition at line 203 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperColumn_ [protected]

Optional upper bounds on columns.

Definition at line 205 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerSet_ [protected]

Optional true lower bounds on sets.

Definition at line 207 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperSet_ [protected]

Optional true upper bounds on sets.

Definition at line 209 of file ClpGubDynamicMatrix.hpp.

size

Definition at line 211 of file ClpGubDynamicMatrix.hpp.

first free

Definition at line 213 of file ClpGubDynamicMatrix.hpp.

saved first free

Definition at line 215 of file ClpGubDynamicMatrix.hpp.

first dynamic

Definition at line 217 of file ClpGubDynamicMatrix.hpp.

number of columns in dynamic model

Definition at line 219 of file ClpGubDynamicMatrix.hpp.

size of working matrix (max)

Definition at line 221 of file ClpGubDynamicMatrix.hpp.


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

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