Couenne
0.5.8
src
branch
CouenneOrbitBranchingObj.hpp
Go to the documentation of this file.
1
/* $Id: CouenneOrbitBranchingObj.hpp 560 2011-04-17 10:01:15Z stefan $
2
*
3
* Name: CouenneOrbitBranchingObj.hpp
4
* Authors: Jim Ostrowski, University of Waterloo
5
* Pietro Belotti, Lehigh University
6
* Purpose: Branching object for auxiliary variables
7
*
8
* This file is licensed under the Eclipse Public License (EPL)
9
*/
10
11
#ifndef COUENNEORBITBRANCHINGOBJ_HPP
12
#define COUENNEORBITBRANCHINGOBJ_HPP
13
14
#include "
CouenneExprAux.hpp
"
15
#include "
CouenneJournalist.hpp
"
16
#include "
OsiBranchingObject.hpp
"
17
#include "
CouenneBranchingObject.hpp
"
18
19
namespace
Couenne
{
20
21
//class CouenneCutGenerator;
22
//class CouenneProblem;
23
24
//#define COUENNE_CROP 1
25
//#define COUENNE_LCROP (1e2*COUENNE_CROP)
26
27
//#define COUENNE_LARGE_INTERVAL 1e4
28
//#define COUENNE_NEAR_BOUND 1e-2
29
30
36
class
CouenneOrbitBranchingObj
:
public
CouenneBranchingObject
{
37
38
public
:
39
41
CouenneOrbitBranchingObj
(
OsiSolverInterface
*solver,
42
const
OsiObject
*
originalObject
,
43
JnlstPtr
jnlst,
44
CouenneCutGenerator
*c,
45
CouenneProblem
*p,
46
expression
*var,
47
int
way
,
48
CouNumber
brpoint,
49
bool
doFBBT,
50
bool
doConvCuts);
51
53
CouenneOrbitBranchingObj
(
const
CouenneOrbitBranchingObj
&src):
54
CouenneBranchingObject
(src) {}
55
56
58
virtual
OsiBranchingObject
*
clone
()
const
59
{
return
new
CouenneOrbitBranchingObj
(*
this
);}
60
66
virtual
double
branch
(
OsiSolverInterface
* solver = NULL);
67
69
virtual
bool
boundBranch
()
const
70
{
return
!
doConvCuts_
;}
// iff it does not add convexification cuts
71
73
void
setSimulate
(
bool
s)
74
{
simulate_
= s;}
75
76
protected
:
77
78
};
79
80
}
81
82
#endif
Couenne::CouenneOrbitBranchingObj::CouenneOrbitBranchingObj
CouenneOrbitBranchingObj(OsiSolverInterface *solver, const OsiObject *originalObject, JnlstPtr jnlst, CouenneCutGenerator *c, CouenneProblem *p, expression *var, int way, CouNumber brpoint, bool doFBBT, bool doConvCuts)
Constructor.
Couenne::CouenneOrbitBranchingObj
"Spatial" branching object.
Definition:
CouenneOrbitBranchingObj.hpp:36
OsiObject
OsiBranchingObject.hpp
Couenne::CouenneOrbitBranchingObj::CouenneOrbitBranchingObj
CouenneOrbitBranchingObj(const CouenneOrbitBranchingObj &src)
Copy constructor.
Definition:
CouenneOrbitBranchingObj.hpp:53
Couenne::CouenneBranchingObject
"Spatial" branching object.
Definition:
CouenneBranchingObject.hpp:37
Couenne::CouenneOrbitBranchingObj::setSimulate
void setSimulate(bool s)
set simulate_ field below
Definition:
CouenneOrbitBranchingObj.hpp:73
Couenne::CouenneCutGenerator
Cut Generator for linear convexifications.
Definition:
CouenneCutGenerator.hpp:49
Couenne::CouenneBranchingObject::doConvCuts_
bool doConvCuts_
shall we add convexification cuts at branching?
Definition:
CouenneBranchingObject.hpp:120
OsiTwoWayBranchingObject::way
int way() const
Couenne
general include file for different compilers
Definition:
CouenneAggrProbing.hpp:24
CouenneBranchingObject.hpp
Couenne::CouenneOrbitBranchingObj::clone
virtual OsiBranchingObject * clone() const
cloning method
Definition:
CouenneOrbitBranchingObj.hpp:58
Ipopt::SmartPtr< Ipopt::Journalist >
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition:
CouenneTypes.hpp:100
CouenneExprAux.hpp
OsiSolverInterface
Couenne::CouenneBranchingObject::simulate_
bool simulate_
are we currently in strong branching?
Definition:
CouenneBranchingObject.hpp:129
Couenne::CouenneOrbitBranchingObj::boundBranch
virtual bool boundBranch() const
does this branching object only change variable bounds?
Definition:
CouenneOrbitBranchingObj.hpp:69
OsiTwoWayBranchingObject::branch
virtual double branch()
OsiBranchingObject::originalObject
const OsiObject * originalObject() const
OsiBranchingObject
Couenne::CouenneProblem
Class for MINLP problems with symbolic information.
Definition:
CouenneProblem.hpp:169
Couenne::expression
Expression base class.
Definition:
CouenneExpression.hpp:48
CouenneJournalist.hpp
Generated by
1.8.17