CglDuplicateRow Class Reference

DuplicateRow Cut Generator Class. More...

#include <CglDuplicateRow.hpp>

Inheritance diagram for CglDuplicateRow:

Inheritance graph
[legend]
Collaboration diagram for CglDuplicateRow:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Generate Cuts
virtual void generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) const
 Fix variables and find duplicate/dominated rows for the model of the solver interface, si.
Get information on size of problem
const int * duplicate () const
 Get duplicate row list, -1 means still in, -2 means out (all fixed), k>= means same as row k.
int sizeDynamic () const
 Size of dynamic program.
int numberOriginalRows () const
 Number of rows in original problem.
Get information on size of problem
int logLevel () const
 logLevel
void setLogLevel (int value)
 logLevel
We only check for duplicates amongst rows with effective rhs <= this
int maximumRhs () const
 Get.
void setMaximumRhs (int value)
 Set.
Constructors and destructors
 CglDuplicateRow ()
 Default constructor.
 CglDuplicateRow (OsiSolverInterface *solver)
 Useful constructor.
 CglDuplicateRow (const CglDuplicateRow &rhs)
 Copy constructor.
virtual CglCutGeneratorclone () const
 Clone.
CglDuplicateRowoperator= (const CglDuplicateRow &rhs)
 Assignment operator.
virtual ~CglDuplicateRow ()
 Destructor.
virtual std::string generateCpp (FILE *fp)
 Create C++ lines to get to current state.
virtual void refreshSolver (OsiSolverInterface *solver)
 This can be used to refresh any inforamtion.

Protected Attributes

Protected member data
CoinPackedMatrix matrix_
 Matrix.
CoinPackedMatrix matrixByRow_
 Matrix by row.
int * rhs_
 Possible rhs (if 0 then not possible).
int * duplicate_
 Marks duplicate rows.
int * lower_
 To allow for <= rows.
int maximumRhs_
 Check duplicates if effective rhs <= this.
int sizeDynamic_
 Size of dynamic program.
int logLevel_
 Controls print out.

Detailed Description

DuplicateRow Cut Generator Class.

Definition at line 11 of file CglDuplicateRow.hpp.


Constructor & Destructor Documentation

CglDuplicateRow::CglDuplicateRow (  ) 

Default constructor.

CglDuplicateRow::CglDuplicateRow ( OsiSolverInterface solver  ) 

Useful constructor.

CglDuplicateRow::CglDuplicateRow ( const CglDuplicateRow rhs  ) 

Copy constructor.

virtual CglDuplicateRow::~CglDuplicateRow (  )  [virtual]

Destructor.


Member Function Documentation

virtual void CglDuplicateRow::generateCuts ( const OsiSolverInterface si,
OsiCuts cs,
const CglTreeInfo  info = CglTreeInfo() 
) const [virtual]

Fix variables and find duplicate/dominated rows for the model of the solver interface, si.

This is a very simple minded idea but I (JJF) am using it in a project so thought I might as well add it. It should really be called before first solve and I may modify CBC to allow for that.

This is designed for problems with few rows and many integer variables where the rhs are <= or == and all coefficients and rhs are small integers.

If effective rhs is K then we can fix all variables with coefficients > K to their lower bounds (effective rhs just means original with variables with nonzero lower bounds subtracted out).

If one row is a subset of another and the effective rhs are same we can fix some variables and then the two rows are identical.

The generator marks identical rows so can be taken out in solve

Implements CglCutGenerator.

const int* CglDuplicateRow::duplicate (  )  const [inline]

Get duplicate row list, -1 means still in, -2 means out (all fixed), k>= means same as row k.

Definition at line 43 of file CglDuplicateRow.hpp.

References duplicate_.

int CglDuplicateRow::sizeDynamic (  )  const [inline]

Size of dynamic program.

Definition at line 46 of file CglDuplicateRow.hpp.

References sizeDynamic_.

int CglDuplicateRow::numberOriginalRows (  )  const [inline]

Number of rows in original problem.

Definition at line 49 of file CglDuplicateRow.hpp.

References CoinPackedMatrix::getNumRows(), and matrix_.

int CglDuplicateRow::logLevel (  )  const [inline]

logLevel

Definition at line 56 of file CglDuplicateRow.hpp.

References logLevel_.

void CglDuplicateRow::setLogLevel ( int  value  )  [inline]

logLevel

Definition at line 58 of file CglDuplicateRow.hpp.

References logLevel_.

int CglDuplicateRow::maximumRhs (  )  const [inline]

Get.

Definition at line 66 of file CglDuplicateRow.hpp.

References maximumRhs_.

void CglDuplicateRow::setMaximumRhs ( int  value  )  [inline]

Set.

Definition at line 69 of file CglDuplicateRow.hpp.

References maximumRhs_.

virtual CglCutGenerator* CglDuplicateRow::clone (  )  const [virtual]

Clone.

Implements CglCutGenerator.

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

Assignment operator.

virtual std::string CglDuplicateRow::generateCpp ( FILE *  fp  )  [virtual]

Create C++ lines to get to current state.

Reimplemented from CglCutGenerator.

virtual void CglDuplicateRow::refreshSolver ( OsiSolverInterface solver  )  [virtual]

This can be used to refresh any inforamtion.

Reimplemented from CglCutGenerator.


Member Data Documentation

CoinPackedMatrix CglDuplicateRow::matrix_ [protected]

Matrix.

Definition at line 111 of file CglDuplicateRow.hpp.

Referenced by numberOriginalRows().

CoinPackedMatrix CglDuplicateRow::matrixByRow_ [protected]

Matrix by row.

Definition at line 113 of file CglDuplicateRow.hpp.

int* CglDuplicateRow::rhs_ [protected]

Possible rhs (if 0 then not possible).

Definition at line 115 of file CglDuplicateRow.hpp.

int* CglDuplicateRow::duplicate_ [mutable, protected]

Marks duplicate rows.

Definition at line 117 of file CglDuplicateRow.hpp.

Referenced by duplicate().

int* CglDuplicateRow::lower_ [protected]

To allow for <= rows.

Definition at line 119 of file CglDuplicateRow.hpp.

int CglDuplicateRow::maximumRhs_ [protected]

Check duplicates if effective rhs <= this.

Definition at line 121 of file CglDuplicateRow.hpp.

Referenced by maximumRhs(), and setMaximumRhs().

int CglDuplicateRow::sizeDynamic_ [mutable, protected]

Size of dynamic program.

Definition at line 123 of file CglDuplicateRow.hpp.

Referenced by sizeDynamic().

int CglDuplicateRow::logLevel_ [protected]

Controls print out.

Definition at line 125 of file CglDuplicateRow.hpp.

Referenced by logLevel(), and setLogLevel().


The documentation for this class was generated from the following file:
Generated on Thu May 15 22:00:12 2008 by  doxygen 1.4.7