Cbc
2.10.13
Toggle main menu visibility
Loading...
Searching...
No Matches
Cbc
src
CbcPartialNodeInfo.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 CbcPartialNodeInfo_H
9
#define CbcPartialNodeInfo_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;
38
39
class
CbcPartialNodeInfo
:
public
CbcNodeInfo
{
40
41
public
:
47
virtual
void
applyToModel
(
CbcModel
*
model
, CoinWarmStartBasis *&basis,
48
CbcCountRowCut
**
addCuts
,
49
int
¤tNumberCuts)
const
;
50
52
virtual
int
applyBounds
(
int
iColumn,
double
&
lower
,
double
&
upper
,
int
force
);
57
virtual
CbcNodeInfo
*
buildRowBasis
(CoinWarmStartBasis &basis)
const
;
58
// Default Constructor
59
CbcPartialNodeInfo
();
60
61
// Constructor from current state
62
CbcPartialNodeInfo
(
CbcNodeInfo
*
parent
, CbcNode *
owner
,
63
int
numberChangedBounds
,
const
int
*
variables
,
64
const
double
*boundChanges,
65
const
CoinWarmStartDiff *
basisDiff
);
66
67
// Copy constructor
68
CbcPartialNodeInfo
(
const
CbcPartialNodeInfo
&);
69
70
// Destructor
71
~CbcPartialNodeInfo
();
72
74
virtual
CbcNodeInfo
*
clone
()
const
;
76
inline
const
CoinWarmStartDiff *
basisDiff
()
const
77
{
78
return
basisDiff_
;
79
}
80
81
inline
const
int
*
variables
()
const
82
{
83
return
variables_
;
84
}
85
// New bound
86
inline
const
double
*
newBounds
()
const
87
{
88
return
newBounds_
;
89
}
90
91
inline
int
numberChangedBounds
()
const
92
{
93
return
numberChangedBounds_
;
94
}
95
96
protected
:
97
/* Data values */
98
100
CoinWarmStartDiff *
basisDiff_
;
102
int
*
variables_
;
103
// New bound
104
double
*
newBounds_
;
106
int
numberChangedBounds_
;
107
108
private
:
110
CbcPartialNodeInfo
&
operator=
(
const
CbcPartialNodeInfo
&rhs);
111
};
112
113
#endif
//CbcPartialNodeInfo_H
114
115
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
116
*/
CbcBranchBase.hpp
CbcNodeInfo.hpp
model
CbcModel * model() const
Return model.
Definition
CbcObject.hpp:252
CbcCountRowCut
OsiRowCut augmented with bookkeeping.
Definition
CbcCountRowCut.hpp:34
CbcModel
Simple Branch and bound class.
Definition
CbcModel.hpp:100
CbcNodeInfo::CbcNodeInfo
CbcNodeInfo()
Default Constructor.
CbcNodeInfo::upper
*Just apply bounds to one variable force means overwrite by double double & upper
Definition
CbcNodeInfo.hpp:114
CbcNodeInfo::force
*Just apply bounds to one variable force means overwrite by double double int force
Definition
CbcNodeInfo.hpp:114
CbcNodeInfo::parent
*Parent of this CbcNodeInfo * parent() const
Definition
CbcNodeInfo.hpp:201
CbcNodeInfo::owner
const CbcNode * owner() const
Definition
CbcNodeInfo.hpp:256
CbcNodeInfo::addCuts
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)
CbcNodeInfo::lower
*Just apply bounds to one variable force means overwrite by lower
Definition
CbcNodeInfo.hpp:113
CbcPartialNodeInfo::newBounds
const double * newBounds() const
Definition
CbcPartialNodeInfo.hpp:86
CbcPartialNodeInfo::basisDiff_
CoinWarmStartDiff * basisDiff_
Basis diff information.
Definition
CbcPartialNodeInfo.hpp:100
CbcPartialNodeInfo::CbcPartialNodeInfo
CbcPartialNodeInfo(const CbcPartialNodeInfo &)
CbcPartialNodeInfo::CbcPartialNodeInfo
CbcPartialNodeInfo(CbcNodeInfo *parent, CbcNode *owner, int numberChangedBounds, const int *variables, const double *boundChanges, const CoinWarmStartDiff *basisDiff)
CbcPartialNodeInfo::clone
virtual CbcNodeInfo * clone() const
Clone.
CbcPartialNodeInfo::applyToModel
virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int ¤tNumberCuts) const
Modify model according to information at node.
CbcPartialNodeInfo::basisDiff
const CoinWarmStartDiff * basisDiff() const
Basis diff information.
Definition
CbcPartialNodeInfo.hpp:76
CbcPartialNodeInfo::operator=
CbcPartialNodeInfo & operator=(const CbcPartialNodeInfo &rhs)
Illegal Assignment operator.
CbcPartialNodeInfo::newBounds_
double * newBounds_
Definition
CbcPartialNodeInfo.hpp:104
CbcPartialNodeInfo::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).
CbcPartialNodeInfo::CbcPartialNodeInfo
CbcPartialNodeInfo()
CbcPartialNodeInfo::~CbcPartialNodeInfo
~CbcPartialNodeInfo()
CbcPartialNodeInfo::numberChangedBounds
int numberChangedBounds() const
Number of bound changes.
Definition
CbcPartialNodeInfo.hpp:91
CbcPartialNodeInfo::variables_
int * variables_
Which variable (top bit if upper bound changing).
Definition
CbcPartialNodeInfo.hpp:102
CbcPartialNodeInfo::numberChangedBounds_
int numberChangedBounds_
Number of bound changes.
Definition
CbcPartialNodeInfo.hpp:106
CbcPartialNodeInfo::buildRowBasis
virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis &basis) const
Builds up row basis backwards (until original model).
CbcPartialNodeInfo::variables
const int * variables() const
Which variable (top bit if upper bound changing).
Definition
CbcPartialNodeInfo.hpp:81
Generated by
1.17.0