Couenne
0.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Couenne
src
branch
CouenneOrbitObj.hpp
Go to the documentation of this file.
1
/* $Id: CouenneOrbitObj.hpp 560 2011-04-17 10:01:15Z stefan $
2
*
3
* Name: CouenneOrbitObj.hpp
4
* Authors: Jim Ostrowski, University of Waterloo
5
* Pietro Belotti, Lehigh University
6
* Purpose: Object for orbital branching
7
*
8
* This file is licensed under the Eclipse Public License (EPL)
9
*/
10
/*
11
#ifndef COUENNEORBITOBJ_HPP
12
#define COUENNEORBITOBJ_HPP
13
14
#include "BonBabSetupBase.hpp"
15
16
#include "CouenneExprVar.hpp"
17
#include "CouenneJournalist.hpp"
18
#include "OsiBranchingObject.hpp"
19
#include "CouenneObject.hpp"
20
#include "Nauty.h"
21
22
namespace Couenne {
23
24
class Node{
25
int index;
26
double coeff;
27
double lb;
28
double ub;
29
int color;
30
int code;
31
public:
32
void node(int, double, double, double, int);
33
void color_vertex(int);
34
int get_index () {return index;
35
};
36
double get_coeff () {return coeff;
37
};
38
double get_lb () {return lb;
39
};
40
double get_ub () {return ub ;
41
};
42
int get_color () {return color;
43
};
44
int get_code () {return code;
45
};
46
void bounds( double a, double b){ lb = a; ub = b;
47
};
48
};
49
50
bool compare ( Node a, Node b);
51
bool node_sort ( Node a, Node b);
52
bool index_sort ( Node a, Node b);
53
54
56
class CouenneOrbitObj: public CouenneObject {
57
58
public:
59
61
CouenneOrbitObj ();
62
64
CouenneOrbitObj (CouenneCutGenerator *cutgen,
65
CouenneProblem *p,
66
exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst);
67
68
69
70
72
CouenneOrbitObj (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst);
73
75
~CouenneOrbitObj () {}
76
78
CouenneOrbitObj (const CouenneOrbitObj &src);
79
81
virtual CouenneObject * clone () const
82
{return new CouenneOrbitObj (*this);}
83
84
85
87
void setParameters (Bonmin::BabSetupBase *base);
90
virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
91
94
virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
95
97
virtual double feasibleRegion (OsiSolverInterface*, const OsiBranchingInformation*) const;
98
101
virtual OsiBranchingObject *createBranch (OsiSolverInterface*,const OsiBranchingInformation*, int) const;
102
103
104
105
void Compute_Symmetry();
106
void Print_Orbits();
107
void ChangeBounds (CouenneProblem *p);
108
109
110
std::vector<Node> node_info;
111
112
Nauty *nauty_info;
113
114
protected:
115
116
};
117
118
}
119
120
#endif
121
*/
Generated by
1.8.5