Cbc  2.10.5
 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 2465 2019-01-03 19:26:52Z unxusr $
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
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 */
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:100
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)