Cbc  2.10.10
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CbcFullNodeInfo.hpp
Go to the documentation of this file.
1 // $Id$
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 // Edwin 11/24/09 carved from CbcNode
7 
8 #ifndef CbcFullNodeInfo_H
9 #define CbcFullNodeInfo_H
10 
11 #include <string>
12 #include <vector>
13 
14 #include "CoinWarmStartBasis.hpp"
15 #include "CoinSearchTree.hpp"
16 #include "CbcBranchBase.hpp"
17 #include "CbcNodeInfo.hpp"
18 
19 class OsiSolverInterface;
20 class OsiSolverBranch;
21 
22 class OsiCuts;
23 class OsiRowCut;
24 class OsiRowCutDebugger;
25 class CoinWarmStartBasis;
26 class CbcCountRowCut;
27 class CbcModel;
28 class CbcNode;
29 class CbcSubProblem;
30 class CbcGeneralBranchingObject;
31 
32 //#############################################################################
80 class CbcFullNodeInfo : public CbcNodeInfo {
81 
82 public:
92  virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis,
94  int &currentNumberCuts) const;
95 
97  virtual int applyBounds(int iColumn, double &lower, double &upper, int force);
98 
103  virtual CbcNodeInfo *buildRowBasis(CoinWarmStartBasis &basis) const;
104  // Default Constructor
105  CbcFullNodeInfo();
106 
109  CbcFullNodeInfo(CbcModel *model,
110  int numberRowsAtContinuous);
111 
112  // Copy constructor
114 
115  // Destructor
117 
119  virtual CbcNodeInfo *clone() const;
121  inline const double *lower() const
122  {
123  return lower_;
124  }
126  inline void setColLower(int sequence, double value)
127  {
128  lower_[sequence] = value;
129  }
131  inline double *mutableLower() const
132  {
133  return lower_;
134  }
136  inline const double *upper() const
137  {
138  return upper_;
139  }
141  inline void setColUpper(int sequence, double value)
142  {
143  upper_[sequence] = value;
144  }
146  inline double *mutableUpper() const
147  {
148  return upper_;
149  }
150 
151 protected:
152  // Data
158  CoinWarmStartBasis *basis_;
160  // Bounds stored in full
161  double *lower_;
162  double *upper_;
163 
164 private:
167 };
168 #endif //CbcFullNodeInfo_H
169 
170 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
171 */
CbcFullNodeInfo::setColLower
void setColLower(int sequence, double value)
Set a bound.
Definition: CbcFullNodeInfo.hpp:126
CbcFullNodeInfo::applyToModel
virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int &currentNumberCuts) const
Modify model according to information at node.
CbcCountRowCut
OsiRowCut augmented with bookkeeping.
Definition: CbcCountRowCut.hpp:34
CbcFullNodeInfo::upper
const double * upper() const
Upper bounds.
Definition: CbcFullNodeInfo.hpp:136
CbcFullNodeInfo::mutableLower
double * mutableLower() const
Mutable lower bounds.
Definition: CbcFullNodeInfo.hpp:131
CbcFullNodeInfo::setColUpper
void setColUpper(int sequence, double value)
Set a bound.
Definition: CbcFullNodeInfo.hpp:141
CbcFullNodeInfo::buildRowBasis
virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis &basis) const
Builds up row basis backwards (until original model).
CbcFullNodeInfo::mutableUpper
double * mutableUpper() const
Mutable upper bounds.
Definition: CbcFullNodeInfo.hpp:146
CbcFullNodeInfo::clone
virtual CbcNodeInfo * clone() const
Clone.
CbcFullNodeInfo::basis_
CoinWarmStartBasis * basis_
Full basis.
Definition: CbcFullNodeInfo.hpp:158
CbcFullNodeInfo::operator=
CbcFullNodeInfo & operator=(const CbcFullNodeInfo &rhs)
Illegal Assignment operator.
CbcModel
Simple Branch and bound class.
Definition: CbcModel.hpp:100
CbcFullNodeInfo::applyBounds
virtual int applyBounds(int iColumn, double &lower, double &upper, int force)
Just apply bounds to one variable - force means overwrite by lower,upper (1=>infeasible)
CbcFullNodeInfo::lower_
double * lower_
Definition: CbcFullNodeInfo.hpp:161
CbcBranchBase.hpp
CbcNodeInfo
Information required to recreate the subproblem at this node.
Definition: CbcNodeInfo.hpp:68
CbcFullNodeInfo::lower
const double * lower() const
Lower bounds.
Definition: CbcFullNodeInfo.hpp:121
CbcFullNodeInfo::numberIntegers_
int numberIntegers_
Definition: CbcFullNodeInfo.hpp:159
CbcNodeInfo.hpp
CbcNode
Information required while the node is live.
Definition: CbcNode.hpp:49
CbcFullNodeInfo::upper_
double * upper_
Definition: CbcFullNodeInfo.hpp:162
CbcFullNodeInfo::CbcFullNodeInfo
CbcFullNodeInfo()
CbcFullNodeInfo
Information required to recreate the subproblem at this node.
Definition: CbcFullNodeInfo.hpp:80
CbcNodeInfo::addCuts
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)
CbcFullNodeInfo::~CbcFullNodeInfo
~CbcFullNodeInfo()