Clp trunk
ClpGubDynamicMatrix Class Reference

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

#include <ClpGubDynamicMatrix.hpp>

Inheritance diagram for ClpGubDynamicMatrix:
Collaboration diagram for ClpGubDynamicMatrix:

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 &)
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.
CoinBigIndex * startColumn_
 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)
 To flag a variable.
void unsetFlagged (int i)
void setDynamicStatus (int sequence, DynamicStatus status)
DynamicStatus getDynamicStatus (int sequence) const
double objectiveOffset () const
 Saved value of objective offset.
CoinBigIndex * startColumn () 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 20 of file ClpGubDynamicMatrix.hpp.


Member Enumeration Documentation

enums for status of various sorts

Enumerator:
inSmall 
atUpperBound 
atLowerBound 

Definition at line 100 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 )
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 106 of file ClpGubDynamicMatrix.hpp.

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

To flag a variable.

Reimplemented from ClpGubMatrix.

Definition at line 109 of file ClpGubDynamicMatrix.hpp.

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

Definition at line 112 of file ClpGubDynamicMatrix.hpp.

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

Definition at line 115 of file ClpGubDynamicMatrix.hpp.

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

Definition at line 120 of file ClpGubDynamicMatrix.hpp.

double ClpGubDynamicMatrix::objectiveOffset ( ) const [inline]

Saved value of objective offset.

Definition at line 124 of file ClpGubDynamicMatrix.hpp.

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

Starts of each column.

Definition at line 128 of file ClpGubDynamicMatrix.hpp.

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

rows

Definition at line 132 of file ClpGubDynamicMatrix.hpp.

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

elements

Definition at line 136 of file ClpGubDynamicMatrix.hpp.

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

costs

Definition at line 140 of file ClpGubDynamicMatrix.hpp.

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

full starts

Definition at line 144 of file ClpGubDynamicMatrix.hpp.

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

ids of active columns (just index here)

Definition at line 148 of file ClpGubDynamicMatrix.hpp.

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

Optional lower bounds on columns.

Definition at line 152 of file ClpGubDynamicMatrix.hpp.

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

Optional upper bounds on columns.

Definition at line 156 of file ClpGubDynamicMatrix.hpp.

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

Optional true lower bounds on sets.

Definition at line 160 of file ClpGubDynamicMatrix.hpp.

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

Optional true upper bounds on sets.

Definition at line 164 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberGubColumns ( ) const [inline]

size

Definition at line 168 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstAvailable ( ) const [inline]

first free

Definition at line 172 of file ClpGubDynamicMatrix.hpp.

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

set first free

Definition at line 176 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::firstDynamic ( ) const [inline]

first dynamic

Definition at line 180 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::lastDynamic ( ) const [inline]

number of columns in dynamic model

Definition at line 184 of file ClpGubDynamicMatrix.hpp.

int ClpGubDynamicMatrix::numberElements ( ) const [inline]

size of working matrix (max)

Definition at line 188 of file ClpGubDynamicMatrix.hpp.

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

Status region for gub slacks.

Definition at line 192 of file ClpGubDynamicMatrix.hpp.

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

Status region for gub variables.

Definition at line 196 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 209 of file ClpGubDynamicMatrix.hpp.

CoinBigIndex* ClpGubDynamicMatrix::startColumn_ [protected]

Starts of each column.

Definition at line 211 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::row_ [protected]

rows

Definition at line 213 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::element_ [protected]

elements

Definition at line 215 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::cost_ [protected]

costs

Definition at line 217 of file ClpGubDynamicMatrix.hpp.

full starts

Definition at line 219 of file ClpGubDynamicMatrix.hpp.

int* ClpGubDynamicMatrix::id_ [protected]

ids of active columns (just index here)

Definition at line 221 of file ClpGubDynamicMatrix.hpp.

unsigned char* ClpGubDynamicMatrix::dynamicStatus_ [protected]

for status and which bound

Definition at line 223 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerColumn_ [protected]

Optional lower bounds on columns.

Definition at line 225 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperColumn_ [protected]

Optional upper bounds on columns.

Definition at line 227 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::lowerSet_ [protected]

Optional true lower bounds on sets.

Definition at line 229 of file ClpGubDynamicMatrix.hpp.

double* ClpGubDynamicMatrix::upperSet_ [protected]

Optional true upper bounds on sets.

Definition at line 231 of file ClpGubDynamicMatrix.hpp.

size

Definition at line 233 of file ClpGubDynamicMatrix.hpp.

first free

Definition at line 235 of file ClpGubDynamicMatrix.hpp.

saved first free

Definition at line 237 of file ClpGubDynamicMatrix.hpp.

first dynamic

Definition at line 239 of file ClpGubDynamicMatrix.hpp.

number of columns in dynamic model

Definition at line 241 of file ClpGubDynamicMatrix.hpp.

size of working matrix (max)

Definition at line 243 of file ClpGubDynamicMatrix.hpp.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines