6.18 ABA_LP Class Reference

section provides a generic interface class to linear programs, from which we will derive further classes both for the solution of LP-relaxations (ABA_LPSUB) with a \ algorithm and for interfaces to LP-solvers (ABA_OSIIF).

#include <lp.h>

Inheritance diagram for ABA_LP::


PIC


Public Types

Public Member Functions

Protected Member Functions

Protected Attributes

Private Member Functions

Friends

6.18.1 Detailed Description

section provides a generic interface class to linear programs, from which we will derive further classes both for the solution of LP-relaxations (ABA_LPSUB) with a \ algorithm and for interfaces to LP-solvers (ABA_OSIIF).

Definition at line 70 of file lp.h.

6.18.2 Member Enumeration Documentation

6.18.2.1 enum ABA_LP::OPTSTAT

The optimization status of the linear program.

Parameters:

Unoptimized
Optimization is still required, this is also the case for reoptimization.
Optimized
The optimization has been performed, yet only a call to |()| can give us the status of optimization.
Error
An error has happened during optimization.
Optimal
The optimal solution has been computed.
Feasible
A primal feasible solution for the linear program, but not the optimal solution has been found.
Infeasible
The linear program is primal infeasible.
Unbounded
The linear program is unbounded.

Enumerator:

Optimal
Unoptimized
Error
Feasible
Infeasible
Unbounded

Definition at line 87 of file lp.h.

6.18.2.2 enum ABA_LP::SOLSTAT

This enumeration describes if parts of the solution like x-values, reduced costs, etc. are available.

Parameters:

Available
The part of the solution is available.
Missing
The part of the solution is missing.

Enumerator:

Available
Missing

Definition at line 96 of file lp.h.

6.18.2.3 enum ABA_LP::METHOD

The solution method for the linear program.

Parameters:

Primal
The primal simplex method.
Dual
The dual simplex method.
BarrierAndCrossover
The barrier method followed by a crossover to a basis.
BarrierNoCrossover
The barrier method without crossover.
Approximate
An approximative solver

Enumerator:

Primal
Dual
BarrierAndCrossover
BarrierNoCrossover
Approximate

Definition at line 107 of file lp.h.

6.18.3 Constructor & Destructor Documentation

6.18.3.1 ABA_LP::ABA_LP (ABA_MASTER * master)

The constructor.

Parameters:

master
A pointer to the corresponding master of the optimization.

6.18.3.2 virtual ABA_LP::~ABA_LP () [virtual]

The destructor.

6.18.3.3 ABA_LP::ABA_LP (const ABA_LP & rhs) [private]

6.18.4 Member Function Documentation

6.18.4.1 void ABA_LP::initialize (ABA_OPTSENSE sense, int nRow, int maxRow, int nCol, int maxCol, ABA_ARRAY< double > & obj, ABA_ARRAY< double > & lBound, ABA_ARRAY< double > & uBound, ABA_ARRAY< ABA_ROW * > & rows)

Loads the linear program defined by its arguments.

We do not perform the initialization via arguments of a constructor, since for the most frequent application of linear programs within , the solution of the linear programming relaxations in the subproblems, the problem data is preprocessed before it is loaded. Only after the preprocessing in the constructor of the derived class, we can call initialize().

Of course, it would be possible to provide an extra constructor with automatic initialization if required.

Parameters:

sense
The sense of the objective function.
nCol
The number of columns (variables).
maxCol
The maximal number of columns.
nRow
The number of rows.
maxRow
The maximal number of rows.
obj
An array with the objective function coefficients.
lb
An array with the lower bounds of the columns.
ub
An array with the upper bounds of the columns.
rows
An array storing the rows of the problem.

Reimplemented in ABA_LPSUB.

6.18.4.2 void ABA_LP::initialize (ABA_OPTSENSE sense, int nRow, int maxRow, int nCol, int maxCol, ABA_ARRAY< double > & obj, ABA_ARRAY< double > & lBound, ABA_ARRAY< double > & uBound, ABA_ARRAY< ABA_ROW * > & rows, ABA_ARRAY< ABA_LPVARSTAT::STATUS > & lpVarStat, ABA_ARRAY< ABA_SLACKSTAT::STATUS > & slackStat)

This version of the function initialize() performs like its previous version, but also initializes the basis with the arguments:.

Parameters:

lpVarStat
An array storing the status of the columns.
slackStat
An array storing the status of the slack variables.

Reimplemented in ABA_LPSUB.

6.18.4.3 virtual void ABA_LP::loadBasis (ABA_ARRAY< ABA_LPVARSTAT::STATUS > & lpVarStat, ABA_ARRAY< ABA_SLACKSTAT::STATUS > & slackStat) [virtual]

Loads a new basis for the linear program.

Parameters:

lpVarStat
An array storing the status of the columns.
slackStat
An array storing the status of the slack variables.

Reimplemented in ABA_LPSUB.

6.18.4.4 ABA_OPTSENSE ABA_LP::sense () const [inline]

Definition at line 705 of file lp.h.

6.18.4.5 void ABA_LP::sense (const ABA_OPTSENSE & newSense) [inline]

Definition at line 710 of file lp.h.

6.18.4.6 int ABA_LP::nRow () const [inline]

Definition at line 715 of file lp.h.

6.18.4.7 int ABA_LP::maxRow () const [inline]

Definition at line 720 of file lp.h.

6.18.4.8 int ABA_LP::nCol () const [inline]

Reimplemented in ABA_LPSUB.

Definition at line 725 of file lp.h.

6.18.4.9 int ABA_LP::maxCol () const [inline]

Reimplemented in ABA_LPSUB.

Definition at line 730 of file lp.h.

6.18.4.10 int ABA_LP::nnz () const [inline]

Reimplemented in ABA_LPSUB.

Definition at line 735 of file lp.h.

6.18.4.11 double ABA_LP::obj (int i) const [inline]

Reimplemented in ABA_LPSUB.

Definition at line 740 of file lp.h.

6.18.4.12 double ABA_LP::lBound (int i) const [inline]

Reimplemented in ABA_LPSUB.

Definition at line 748 of file lp.h.

6.18.4.13 double ABA_LP::uBound (int i) const [inline]

Reimplemented in ABA_LPSUB.

Definition at line 756 of file lp.h.

6.18.4.14 void ABA_LP::row (int i, ABA_ROW & r) const [inline]

Definition at line 764 of file lp.h.

6.18.4.15 double ABA_LP::rhs (int i) const [inline]

Definition at line 772 of file lp.h.

6.18.4.16 double ABA_LP::value () const [inline, virtual]

Reimplemented in ABA_LPSUB.

Definition at line 780 of file lp.h.

6.18.4.17 double ABA_LP::xVal (int i) [inline, virtual]

Reimplemented in ABA_LPSUB.

Definition at line 785 of file lp.h.

6.18.4.18 double ABA_LP::barXVal (int i) [inline, virtual]

Reimplemented in ABA_LPSUB.

Definition at line 793 of file lp.h.

6.18.4.19 double ABA_LP::reco (int i) [inline, virtual]

Reimplemented in ABA_LPSUB.

Definition at line 801 of file lp.h.

6.18.4.20 double ABA_LP::yVal (int c) [inline, virtual]

Definition at line 809 of file lp.h.

6.18.4.21 double ABA_LP::slack (int c) [inline, virtual]

Definition at line 817 of file lp.h.

6.18.4.22 ABA_LP::SOLSTAT ABA_LP::xValStatus () const [inline]

Definition at line 825 of file lp.h.

6.18.4.23 ABA_LP::SOLSTAT ABA_LP::barXValStatus () const [inline]

Definition at line 830 of file lp.h.

6.18.4.24 ABA_LP::SOLSTAT ABA_LP::yValStatus () const [inline]

Definition at line 840 of file lp.h.

6.18.4.25 ABA_LP::SOLSTAT ABA_LP::recoStatus () const [inline]

Definition at line 835 of file lp.h.

6.18.4.26 ABA_LP::SOLSTAT ABA_LP::slackStatus () const [inline]

Definition at line 845 of file lp.h.

6.18.4.27 ABA_LP::SOLSTAT ABA_LP::basisStatus () const [inline]

Definition at line 850 of file lp.h.

6.18.4.28 int ABA_LP::nOpt () const [inline]

Definition at line 855 of file lp.h.

6.18.4.29 bool ABA_LP::infeasible () const [inline, virtual]

Reimplemented in ABA_LPSUB.

Definition at line 860 of file lp.h.

6.18.4.30 virtual int ABA_LP::getInfeas (int & infeasRow, int & infeasCol, double * bInvRow) [virtual]

Can be called if the last linear program has been solved with the dual simplex method and is infeasible and all inactive variables price out correctly.

Then, the basis is dual feasible, but primal infeasible, i.e., some variables or slack variables violate their bounds. In this case the function getInfeas() determines an infeasible variable or slack variable.

Returns:

0 On success,

1 otherwise.

Parameters:

infeasRow
Holds after the execution the number of an infeasible slack variable, or -1.
infeasVar
Holds after the execution the number of an infeasible column, or -1.
bInvRow
Holds after the execution the row of the basis inverse corresponding to the infeasible column or slack variable, which is always a basic variable. If getInfeas() is successful, then either infeasRow or infeasVar is -1 and the other argument holds the nonnegative number of the infeasible variable.

Reimplemented in ABA_LPSUB.

6.18.4.31 ABA_LPVARSTAT::STATUS ABA_LP::lpVarStat (int i) [inline, virtual]

Reimplemented in ABA_LPSUB.

Definition at line 866 of file lp.h.

6.18.4.32 ABA_SLACKSTAT::STATUS ABA_LP::slackStat (int i) [inline, virtual]

Definition at line 874 of file lp.h.

6.18.4.33 virtual OPTSTAT ABA_LP::optimize (METHOD method) [virtual]

Performs the optimization of the linear program.

Returns:

The status of the optimization.

Parameters:

method
The method with which the optimization is performed.

Reimplemented in ABA_LPSUB.

6.18.4.34 void ABA_LP::remRows (ABA_BUFFER< int > & ind)

Removes rows of the linear program.

Parameters:

ind
The numbers of the rows that should be removed.

6.18.4.35 void ABA_LP::addRows (ABA_BUFFER< ABA_ROW * > & newRows)

Adds rows to the linear program.

If the new number of rows exceeds the maximal number of rows a reallocation is performed.

Parameters:

newRows
The rows that should be added to the linear program.

6.18.4.36 void ABA_LP::remCols (ABA_BUFFER< int > & cols)

Removes columns from the linear program.

Parameters:

cols
The numbers of the columns that should be removed.

6.18.4.37 void ABA_LP::addCols (ABA_BUFFER< ABA_COLUMN * > & newCols)

Adds columns to the linear program.

If the new number of columns exceeds the maximal number of columns a reallocation is performed.

Parameters:

newCols
The new columns that are added.

6.18.4.38 void ABA_LP::changeRhs (ABA_ARRAY< double > & newRhs)

Changes the complete right hand side of the linear program.

Parameters:

newRhs
The new right hand side of the rows.

6.18.4.39 virtual void ABA_LP::changeLBound (int i, double newLb) [virtual]

Changes the lower bound of a single column.

Parameters:

i
The column.
newLb
The new lower bound of the column.

Reimplemented in ABA_LPSUB.

6.18.4.40 virtual void ABA_LP::changeUBound (int i, double newUb) [virtual]

Changes the upper bound of a single column.

Parameters:

i
The column.
newUb
The new upper bound of the column.

Reimplemented in ABA_LPSUB.

6.18.4.41 virtual int ABA_LP::pivotSlackVariableIn (ABA_BUFFER< int > & rows) [virtual]

Pivots the slack variables stored in the buffer rows into the basis.

Returns:

0 All variables could be pivoted in,

1 otherwise.

Parameters:

rows
The numbers of the slack variables that should be pivoted in.

6.18.4.42 void ABA_LP::rowRealloc (int newSize)

Performs a reallocation of the row space of the linear program.

Parameters:

newSize
The new maximal number of rows of the linear program.

Reimplemented in ABA_LPSUB.

6.18.4.43 void ABA_LP::colRealloc (int newSize)

Performs a reallocation of the column space of the linear program.

Parameters:

newSize
The new maximal number of columns of the linear program.

Reimplemented in ABA_LPSUB.

6.18.4.44 int ABA_LP::writeBasisMatrix (const char * fileName)

Writes the complete basis of an optimal linear program to a file.

Returns:

0 If a basis is available and could be written,

1 otherwise.

Parameters:

fileName
The name of the file the basis is written to.

6.18.4.45 int ABA_LP::setSimplexIterationLimit (int limit)

Changes the iteration limit of the Simplex algorithm.

Returns:

0 If the iteration limit could be set,

1 otherwise.

Parameters:

limit
The new value of the iteration limit.

6.18.4.46 int ABA_LP::getSimplexIterationLimit (int & limit)

Returns:

0 If the iteration limit could be get,

1 otherwise.

Parameters:

limit
Stores the iteration limit if the return value is 0.

6.18.4.47 ABA_CPUTIMER* ABA_LP::lpSolverTime () [inline]

Definition at line 347 of file lp.h.

6.18.4.48 void ABA_LP::colsNnz (int nRow, ABA_ARRAY< ABA_ROW * > & rows, ABA_ARRAY< int > & nnz) [protected]

Computes the number of nonzero elements in each column of a given set of rows.

Parameters:

nRow
The number of rows.
rows
The array storing the rows.
nnz
An array of length at least the number of columns of the linear program which will hold the number of nonzero elements of each column.

6.18.4.49 void ABA_LP::rows2cols (int nRow, ABA_ARRAY< ABA_ROW * > & rows, ABA_ARRAY< ABA_SPARVEC * > & cols) [protected]

Computes the columnwise representation of the row matrix.

Parameters:

nRow
The number of rows.
rows
The array storing the rows.
cols
An array holding pointers to sparse vectors which will contain the columnwise representation of the constraint matrix defined by rows. The length of this array must be at least the number of columns. The elements of the array must not be 0-pointers. Sparse vectors of sufficient length should be allocated before the function is called. The size of these sparse vectors can be determined with the function colsNnz().

6.18.4.50 void ABA_LP::rowRangeCheck (int r) const [protected]

Terminates the program if there is no row with index r.

Parameters:

r
The number of a row of the linear program.

6.18.4.51 void ABA_LP::colRangeCheck (int i) const [protected]

Terminates the program if there is no column with index i.

Parameters:

i
The number of a column.

6.18.4.52 virtual ABA_OPTSENSE ABA_LP::_sense () const [protected, pure virtual]

The pure virtual function _sense() must be defined by the used LP-solver and return the sense of the optimization.

Implemented in ABA_OSIIF.

6.18.4.53 virtual void ABA_LP::_sense (const ABA_OPTSENSE & newSense) [protected, pure virtual]

Implemented in ABA_OSIIF.

6.18.4.54 virtual int ABA_LP::_nRow () const [protected, pure virtual]

The pure virtual function _nRow() must be defined by the used LP-solver and return the number of rows of the problem.

Implemented in ABA_OSIIF.

6.18.4.55 virtual int ABA_LP::_maxRow () const [protected, pure virtual]

The pure virtual function _maxRow() must be defined by the used LP-solver and return the maximal number of rows.

Implemented in ABA_OSIIF.

6.18.4.56 virtual int ABA_LP::_nCol () const [protected, pure virtual]

The pure virtual function _nCol() must be defined by the used LP-solver and return the number of columns.

Implemented in ABA_OSIIF.

6.18.4.57 virtual int ABA_LP::_maxCol () const [protected, pure virtual]

The pure virtual function _maxCol() must be defined by the the used LP-solver and return the maximal number of columns.

Implemented in ABA_OSIIF.

6.18.4.58 virtual int ABA_LP::_nnz () const [protected, pure virtual]

The pure virtual function _nnz() must be defined by the used LP-solver and return the number of nonzero elements of the constraint matrix not including the right hand side and the bounds of the variables.

Implemented in ABA_OSIIF.

6.18.4.59 virtual double ABA_LP::_obj (int i) const [protected, pure virtual]

The pure virtual function _obj() must be defined by the used LP-solver and return the objective function coefficient of variable i.

Implemented in ABA_OSIIF.

6.18.4.60 virtual double ABA_LP::_lBound (int i) const [protected, pure virtual]

The pure virtual function _lBound() must be defined by the used LP-solver and return the lower bound of variable i.

Implemented in ABA_OSIIF.

6.18.4.61 virtual double ABA_LP::_uBound (int i) const [protected, pure virtual]

The pure virtual function _uBound() must be defined by the used LP-solver and return the upper bound of variable i.

Implemented in ABA_OSIIF.

6.18.4.62 virtual double ABA_LP::_rhs (int i) const [protected, pure virtual]

The pure virtual function _rhs() must be defined by the used LP-solver and return the right hand side of constraint i.

Implemented in ABA_OSIIF.

6.18.4.63 virtual void ABA_LP::_row (int i, ABA_ROW & r) const [protected, pure virtual]

The pure virtual function _row() must be defined by the used LP-solver and store the i-th row of the problem in the row r.

Implemented in ABA_OSIIF.

6.18.4.64 virtual void ABA_LP::_initialize (ABA_OPTSENSE sense, int nRow, int maxRow, int nCol, int maxCol, ABA_ARRAY< double > & obj, ABA_ARRAY< double > & lBound, ABA_ARRAY< double > & uBound, ABA_ARRAY< ABA_ROW * > & rows) [protected, pure virtual]

The pure virtual function _initialize() must be defined by the used LP-solver and should initialize the LP-solver with.

Parameters:

sense
The sense of the optimization.
nRow
The number of rows.
maxRow
The maximal number of rows.
nCol
The number of columns.
maxCol
The maximal number of columns.
obj
An array with the objective functions coefficients.
lBound
An array with the lower bounds of the variables.
uBound
An array with the upper bounds of the variables.
rows
An array storing the constraint matrix in row format.

Implemented in ABA_OSIIF.

6.18.4.65 virtual void ABA_LP::_loadBasis (ABA_ARRAY< ABA_LPVARSTAT::STATUS > & lpVarStat, ABA_ARRAY< ABA_SLACKSTAT::STATUS > & slackStat) [protected, pure virtual]

This pure virtual function should load a basis into the LP-solver.

Parameters:

lpVarStat
An array storing the status of the variables.
slackStat
An array storing the status of the slack variables.

Implemented in ABA_OSIIF.

6.18.4.66 virtual OPTSTAT ABA_LP::_primalSimplex () [protected, pure virtual]

The pure virtual function _primalSimplex() must be defined by the used LP-solver and should call the primal simplex method of the used LP-solver.

Implemented in ABA_OSIIF.

6.18.4.67 virtual OPTSTAT ABA_LP::_dualSimplex () [protected, pure virtual]

The pure virtual function _dualSimplex() must be defined by the used LP-solver and should call the dual simplex method of the used LP-solver.

Implemented in ABA_OSIIF.

6.18.4.68 virtual OPTSTAT ABA_LP::_barrier (bool doCrossover) [protected, pure virtual]

The pure virtual function _barrier() must be defined by the used LP-solver and should call the barrier method of the used LP-solver.

Implemented in ABA_OSIIF.

6.18.4.69 virtual OPTSTAT ABA_LP::_approx () [protected, pure virtual]

The pure virtual function _approx() must be defined by the used LP-solver and should call the approximative method of the used LP-solver.

Implemented in ABA_OSIIF.

6.18.4.70 virtual double ABA_LP::_value () const [protected, pure virtual]

The pure virtual function _value() must be defined by the used LP-solver and should return the optimum value of the linear program after it has been solved.

Implemented in ABA_OSIIF.

6.18.4.71 virtual double ABA_LP::_xVal (int i) [protected, pure virtual]

The pure virtual function _xVal() must be defined by the used LP-solver and should return the value of variable i in the LP-solution.

Implemented in ABA_OSIIF.

6.18.4.72 virtual double ABA_LP::_barXVal (int i) [protected, pure virtual]

Implemented in ABA_OSIIF.

6.18.4.73 virtual double ABA_LP::_reco (int i) [protected, pure virtual]

The pure virtual function _reco() must be defined by the used LP-solver and should return the reduced cost of variable i.

Implemented in ABA_OSIIF.

6.18.4.74 virtual double ABA_LP::_slack (int i) [protected, pure virtual]

The pure virtual function _slack() must be defined by the used LP-solver and should return the value of the slack variable i.

Implemented in ABA_OSIIF.

6.18.4.75 virtual double ABA_LP::_yVal (int i) [protected, pure virtual]

The pure virtual function _yVal() must be defined by the used LP-solver and should return the value of the dual variable of the constraint i.

Implemented in ABA_OSIIF.

6.18.4.76 virtual ABA_LPVARSTAT::STATUS ABA_LP::_lpVarStat (int i) [protected, pure virtual]

The pure virtual function _lpVarStat() must be defined by the used LP-solver and should return the status of the variable i in the LP-solution.

Implemented in ABA_OSIIF.

6.18.4.77 virtual ABA_SLACKSTAT::STATUS ABA_LP::_slackStat (int i) [protected, pure virtual]

The pure virtual function _slackStat() must be defined by the used LP-solver and should return the status of the slack variable i in the LP-solution.

Implemented in ABA_OSIIF.

6.18.4.78 virtual int ABA_LP::_getInfeas (int & infeasRow, int & infeasCol, double * bInvRow) [protected, pure virtual]

The pure virtual function _getInfeas() must be defined by the used LP-solver and can be called if the last linear program has been solved with the dual simplex method and is infeasible.

In this case it should compute the infeasible basic variable or constraint and the corresponding row bInvRow of the basis inverse. Either infeasRow or infeasCol is nonnegative. The nonnegative argument is an infeasible row or column, respectively.

Returns:

0 if it is successful

1 otherwise.

Implemented in ABA_OSIIF.

6.18.4.79 virtual void ABA_LP::_remRows (ABA_BUFFER< int > & ind) [protected, pure virtual]

The pure virtual function _remRows() must be defined by the used LP-solver and should remove the rows with numbers given in the buffer ind from the LP-solver.

Implemented in ABA_OSIIF.

6.18.4.80 virtual void ABA_LP::_addRows (ABA_BUFFER< ABA_ROW * > & newRows) [protected, pure virtual]

The pure virtual function _addRows() must be defined by the used LP-solver and should add the rows given in the buffer newRows to the LP.

Implemented in ABA_OSIIF.

6.18.4.81 virtual void ABA_LP::_remCols (ABA_BUFFER< int > & vars) [protected, pure virtual]

The pure virtual function _remCols() must be defined by the used LP-solver and should remove the columns with numbers given in vars from the LP.

Implemented in ABA_OSIIF.

6.18.4.82 virtual void ABA_LP::_addCols (ABA_BUFFER< ABA_COLUMN * > & newCols) [protected, pure virtual]

The pure virtual function _addCols() must be defined by the used LP-solver and should add the columns newCols to the LP.

Implemented in ABA_OSIIF.

6.18.4.83 virtual void ABA_LP::_changeRhs (ABA_ARRAY< double > & newRhs) [protected, pure virtual]

The pure virtual function _changeRhs() must be defined by the used LP-solver and should set the right hand side of the constraint matrix of the LP to newRhs.

Implemented in ABA_OSIIF.

6.18.4.84 virtual void ABA_LP::_changeLBound (int i, double newLb) [protected, pure virtual]

The pure virtual function _changeLBound() must be defined by the used LP-solver and should set the lower bound of variable i to newLb.

Implemented in ABA_OSIIF.

6.18.4.85 virtual void ABA_LP::_changeUBound (int i, double newUb) [protected, pure virtual]

The pure virtual function _changeLBound() must be defined by the used LP-solver and should set the upper bound of variable i to newUb.

Implemented in ABA_OSIIF.

6.18.4.86 virtual int ABA_LP::_pivotSlackVariableIn (ABA_BUFFER< int > & rows) [protected, pure virtual]

The function pivotSlackVariableIn() pivots the slack variables stored in the buffer rows into the basis.

Returns:

0 All variables could be pivoted in,

1 otherwise.

Parameters:

rows
The numbers of the slack variables that should be pivoted in.

Implemented in ABA_OSIIF.

6.18.4.87 virtual void ABA_LP::_rowRealloc (int newSize) [protected, pure virtual]

The pure virtual function _rowRealloc() must be defined in the used LP-solver and should reallocate its memory such that up to newSize rows can be handled.

Implemented in ABA_OSIIF.

6.18.4.88 virtual void ABA_LP::_colRealloc (int newSize) [protected, pure virtual]

The pure virtual function _colRealloc() must be defined by the used LP-solver and should reallocate its memory such that up to newSize columns can be handled.

Implemented in ABA_OSIIF.

6.18.4.89 virtual int ABA_LP::_setSimplexIterationLimit (int limit) [protected, pure virtual]

The function setSimplexIterationLimit() changes the iteration limit of the Simplex algorithm.

Returns:

0 If the iteration limit could be set,

1 otherwise.

Parameters:

limit
The new value of the iteration limit.

Implemented in ABA_OSIIF.

6.18.4.90 virtual int ABA_LP::_getSimplexIterationLimit (int & limit) [protected, pure virtual]

The function getSimplexIterationLimit() retrieves the value of the iteration limit of the simplex algorithm.

Returns:

0 If the iteration limit could be get,

1 otherwise.

Parameters:

limit
Stores the value of the iteration limit if the function returns 0.

Implemented in ABA_OSIIF.

6.18.4.91 void ABA_LP::initPostOpt () [private]

Resets the optimization status and the availability statuses of the solution.

The function initPostOpt() must be called after each modification of the linear program. It resets the optimization status and the availability status of the solution.

6.18.4.92 const ABA_LP& ABA_LP::operator= (const ABA_LP & rhs) [private]

6.18.5 Friends And Related Function Documentation

6.18.5.1 ostream& operator<< (ostream & out, const ABA_LP & rhs) [friend]

The output operator writes the objective function, followed by the constraints, the bounds on the columns and the solution values (if available) to an output stream.

Every ten output columns we perform a line break for better readability. This has also the advantage that LP-solvers with an input function requiring a limited length of a line (e.g., Cplex 255 characters) have a higher chance to read a file generated by this output operator.

Returns:

A reference to the output stream.

Parameters:

out
The output stream.
rhs
The linear program being output.

6.18.6 Member Data Documentation

6.18.6.1 ABA_MASTER*ABA_LP::master_ [protected]

A pointer to the corresponding master of the optimization.

Definition at line 644 of file lp.h.

6.18.6.2 OPTSTAT ABA_LP::optStat_ [protected]

The status of the linear program.

Definition at line 648 of file lp.h.

6.18.6.3 SOLSTAT ABA_LP::xValStatus_ [protected]

This member becomes Available if the x-values of the optimal solution can be accessed with the function xVal(), otherwise it has the value Missing.

Definition at line 654 of file lp.h.

6.18.6.4 SOLSTAT ABA_LP::barXValStatus_ [protected]

Definition at line 655 of file lp.h.

6.18.6.5 SOLSTAT ABA_LP::yValStatus_ [protected]

This member becomes Available if the values of the dual variables of the optimal solution can be accessed with the function yVal(), otherwise it has the value Missing/.

Definition at line 662 of file lp.h.

6.18.6.6 SOLSTAT ABA_LP::recoStatus_ [protected]

This member becomes Available if the reduced costs of the optimal solution can be accessed with the function reco(), otherwise it has the value Missing.

Definition at line 668 of file lp.h.

6.18.6.7 SOLSTAT ABA_LP::slackStatus_ [protected]

This member becomes Available if the values of the slack variables of the optimal solution can be accessed with the function slack(), otherwise it has the value Missing.

Definition at line 675 of file lp.h.

6.18.6.8 SOLSTAT ABA_LP::basisStatus_ [protected]

This member becomes Available if the status of the variables and the slack variables of the optimal solution can be accessed with the functions lpVarStat() and slackStat(), otherwise it has the value Missing.

Definition at line 683 of file lp.h.

6.18.6.9 int ABA_LP::nOpt_ [protected]

The number of optimizations of the linear program.

Definition at line 687 of file lp.h.

6.18.6.10 ABA_CPUTIMER ABA_LP::lpSolverTime_ [protected]

Definition at line 688 of file lp.h.

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