Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
tmp
OS-2.10.2
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