6 #ifndef CoinStructuredModel_H
7 #define CoinStructuredModel_H
55 int addBlock(
const std::string & rowBlock,
56 const std::string & columnBlock,
60 int addBlock(
const std::string & rowBlock,
61 const std::string & columnBlock,
63 const double * rowLower,
const double * rowUpper,
64 const double * columnLower,
const double * columnUpper,
65 const double * objective);
92 int writeMps(
const char *filename,
int compression = 0,
93 int formatType = 0,
int numberAcross = 2,
bool keepStrings=
false) ;
96 bool keepNames =
false,
97 bool ignoreErrors =
false);
106 int maxBlocks=50,
const char ** starts=NULL);
114 const double * rowLower,
const double * rowUpper,
115 const double * columnLower,
const double * columnUpper,
116 const double * objective,
int type,
int maxBlocks=50,
145 int rowBlock(
const std::string &name)
const;
181 const double * & rowLower,
const double * & rowUpper,
182 const double * & columnLower,
const double * & columnUpper,
183 const double * & objective)
const;
int numberColumnBlocks() const
Return number of column blocks.
double optimizationDirection() const
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
This is a simple minded model which is stored in a format which makes it easier to construct and modi...
virtual ~CoinStructuredModel()
Destructor.
int blockIndex(int row, int column) const
Return block number corresponding to row and column.
int numberRowBlocks() const
Return number of row blocks.
CoinModel ** coinModelBlocks_
CoinModel copies of blocks or NULL if original CoinModel.
int addBlock(const std::string &rowBlock, const std::string &columnBlock, const CoinBaseModel &block)
add a block from a CoinModel using names given as parameters returns number of errors (e...
int addColumnBlock(int numberColumns, const std::string &name)
Add or check a column block name and number of columns.
const std::string & getRowBlock(int i) const
Return the i'th row block name.
Sparse Matrix Base Class.
int maximumElementBlocks_
Maximum number of element blocks.
CoinModel * coinModelBlock(CoinModelBlockInfo &info)
Return model as a CoinModel block and fill in info structure and update counts.
const std::string & getColumnBlock(int i) const
Return i'th the column block name.
void setCoinModel(CoinModel *block, int iBlock)
Sets given block into coinModelBlocks_.
void setRowBlock(int i, const std::string &name)
Set i'th row block name.
int fillInfo(CoinModelBlockInfo &info, const CoinModel *block)
Fill in info structure and update counts Returns number of inconsistencies on border.
int columnBlock(const std::string &name) const
Return a column block index given a column block name.
void refresh(int iBlock)
Refresh info in blockType_.
int numberColumns() const
Return number of columns.
virtual CoinBaseModel * clone() const
Clone.
int numberElementBlocks_
Current number of element blocks.
CoinBaseModel * block(int i) const
Return i'th block.
CoinBigIndex numberElementBlocks() const
Return number of elementBlocks.
CoinStructuredModel()
Default constructor.
int numberRowBlocks_
Current number of row blocks.
int decompose(const CoinModel &model, int type, int maxBlocks=50, const char **starts=NULL)
Decompose a CoinModel 1 - try D-W 2 - try Benders 3 - try Staircase Returns number of blocks or zero ...
struct CoinModelInfo2 CoinModelBlockInfo
This is a model which is made up of Coin(Structured)Model blocks.
double objectiveOffset() const
Returns the (constant) objective offset This is the RHS entry for the objective row.
CoinStructuredModel & operator=(const CoinStructuredModel &)
=
This is a model which is made up of Coin(Structured)Model blocks.
double optimizationDirection_
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
CoinModelBlockInfo * blockType_
Which parts of model are set in block.
int readSmps(const char *filename, bool keepNames=false, bool ignoreErrors=false)
Read SMPS model.
int writeMps(const char *filename, int compression=0, int formatType=0, int numberAcross=2, bool keepStrings=false)
Write the problem in MPS format to a file with the given filename.
void setColumnBlock(int i, const std::string &name)
Set i'th column block name.
CoinBaseModel ** blocks_
Blocks.
const CoinModelBlockInfo & blockType(int i) const
Return i'th block type.
int rowBlock(const std::string &name) const
Return a row block index given a row block name.
int addRowBlock(int numberRows, const std::string &name)
Add or check a row block name and number of rows.
int numberColumnBlocks_
Current number of column blocks.
void setOptimizationDirection(double value)
Set direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
CoinBigIndex numberElements() const
Return number of elements.
std::vector< std::string > columnBlockNames_
Columnblock name.
std::vector< std::string > rowBlockNames_
Rowblock name.
int numberRows() const
Return number of rows.
CoinModel * coinBlock(int i) const
Return i'th block as CoinModel (or NULL)