Cbc  2.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CbcFullNodeInfo.hpp
Go to the documentation of this file.
1 // $Id: CbcFullNodeInfo.hpp 1899 2013-04-09 18:12:08Z stefan $
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 //#############################################################################
81 class CbcFullNodeInfo : public CbcNodeInfo {
82 
83 public:
84 
94  virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
96  int &currentNumberCuts) const ;
97 
99  virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
100 
105  virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis) const ;
106  // Default Constructor
107  CbcFullNodeInfo ();
108 
111  CbcFullNodeInfo (CbcModel * model,
112  int numberRowsAtContinuous);
113 
114  // Copy constructor
115  CbcFullNodeInfo ( const CbcFullNodeInfo &);
116 
117  // Destructor
118  ~CbcFullNodeInfo ();
119 
121  virtual CbcNodeInfo * clone() const;
123  inline const double * lower() const {
124  return lower_;
125  }
127  inline void setColLower(int sequence, double value)
128  { lower_[sequence]=value;}
130  inline double * mutableLower() const {
131  return lower_;
132  }
134  inline const double * upper() const {
135  return upper_;
136  }
138  inline void setColUpper(int sequence, double value)
139  { upper_[sequence]=value;}
141  inline double * mutableUpper() const {
142  return upper_;
143  }
144 protected:
145  // Data
153  // Bounds stored in full
154  double * lower_;
155  double * upper_;
156 private:
159 };
160 #endif //CbcFullNodeInfo_H
161 
virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis &basis) const
Builds up row basis backwards (until original model).
void setColLower(int sequence, double value)
Set a bound.
CoinWarmStartBasis * basis_
Full basis.
double * mutableLower() const
Mutable lower bounds.
Collections of row cuts and column cuts.
Definition: OsiCuts.hpp:19
The default COIN simplex (basis-oriented) warm start class.
virtual CbcNodeInfo * clone() const
Clone.
void setColUpper(int sequence, double value)
Set a bound.
Abstract Base Class for describing an interface to a solver.
virtual int applyBounds(int iColumn, double &lower, double &upper, int force)
Just apply bounds to one variable - force means overwrite by lower,upper (1=&gt;infeasible) ...
virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int &currentNumberCuts) const
Modify model according to information at node.
OsiRowCut augmented with bookkeeping.
Information required while the node is live.
Definition: CbcNode.hpp:49
const double * upper() const
Upper bounds.
Row Cut Class.
Definition: OsiRowCut.hpp:29
CbcFullNodeInfo & operator=(const CbcFullNodeInfo &rhs)
Illegal Assignment operator.
double * mutableUpper() const
Mutable upper bounds.
Information required to recreate the subproblem at this node.
Definition: CbcNodeInfo.hpp:68
Information required to recreate the subproblem at this node.
Validate cuts against a known solution.
Solver Branch Class.
const double * lower() const
Lower bounds.
Simple Branch and bound class.
Definition: CbcModel.hpp:101
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)