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
problem
CouenneProblemElem.hpp
Go to the documentation of this file.
1
/* $Id: CouenneProblemElem.hpp 910 2012-10-27 13:14:44Z pbelotti $
2
*
3
* Name: CouenneProblemElem.hpp
4
* Author: Pietro Belotti
5
* Purpose: define the classes used by class CouenneProblem
6
*
7
* (C) Carnegie-Mellon University, 2006-08.
8
* This file is licensed under the Eclipse Public License (EPL)
9
*/
10
11
#ifndef COUENNE_PROBLEM_ELEM_HPP
12
#define COUENNE_PROBLEM_ELEM_HPP
13
14
#include <iostream>
15
16
#include "
CouenneTypes.hpp
"
17
#include "
CouenneExpression.hpp
"
18
#include "
CouenneExprConst.hpp
"
19
20
namespace
Couenne {
21
39
class
CouenneConstraint
{
40
41
protected
:
42
43
expression
*
body_
;
44
expression
*
lb_
;
45
expression
*
ub_
;
46
47
public
:
48
50
CouenneConstraint
(
expression
*body = NULL,
51
expression
*lb = NULL,
52
expression
*ub = NULL):
53
body_
(body),
54
lb_
(lb),
55
ub_
(ub) {
56
57
if
(!
lb_
)
58
if
(!
ub_
) {
59
lb_
=
new
exprConst
(0.);
60
ub_
=
new
exprConst
(0.);
61
}
62
else
lb_
=
new
exprConst
(-
COUENNE_INFINITY
);
63
else
if
(!
ub_
)
ub_
=
new
exprConst
(
COUENNE_INFINITY
);
64
}
65
67
virtual
~CouenneConstraint
() {
68
delete
body_
;
69
delete
lb_
;
70
delete
ub_
;
71
}
72
74
CouenneConstraint
(
const
CouenneConstraint
&c,
Domain
*d = NULL):
75
body_
(c.
Body
() ->
clone
(d)),
76
lb_
(c.
Lb
() ->
clone
(d)),
77
ub_
(c.
Ub
() ->
clone
(d)) {}
78
80
virtual
inline
CouenneConstraint
*
clone
(
Domain
*d = NULL)
const
81
{
return
new
CouenneConstraint
(*
this
, d);}
82
83
// Get constraint's elements
84
virtual
inline
expression
*
Lb
()
const
{
return
lb_
;}
85
virtual
inline
expression
*
Ub
()
const
{
return
ub_
;}
86
virtual
inline
expression
*
Body
()
const
{
return
body_
;}
87
89
virtual
inline
expression
*
Body
(
expression
*newBody)
90
{
body_
= newBody;
return
body_
;}
91
93
virtual
exprAux
*
standardize
(
CouenneProblem
*);
94
96
virtual
void
print
(std::ostream & = std::cout);
97
};
98
99
100
109
class
CouenneObjective
{
110
111
protected
:
112
114
expression
*
body_
;
115
116
public
:
117
119
CouenneObjective
(
expression
*body):
120
body_
(body) {}
121
123
~CouenneObjective
()
124
{
delete
body_
;}
125
127
CouenneObjective
(
const
CouenneObjective
&o,
Domain
*d = NULL):
128
body_
(o.
body_
->
clone
(d)) {}
129
131
inline
CouenneObjective
*
clone
(
Domain
*d = NULL)
const
132
{
return
new
CouenneObjective
(*
this
, d);}
133
135
inline
expression
*
Body
()
const
136
{
return
body_
;}
137
139
expression
*
Body
(
expression
*newBody)
140
{
body_
= newBody;
return
body_
;}
141
143
inline
exprAux
*
standardize
(
CouenneProblem
*p)
144
{
return
body_
->
standardize
(p);}
145
147
void
print
(std::ostream &out = std::cout) {
148
out <<
"min "
;
149
body_
->
print
(out);
150
out << std::endl;
151
}
152
};
153
154
}
155
156
#endif
Couenne::CouenneConstraint::standardize
virtual exprAux * standardize(CouenneProblem *)
decompose body of constraint through auxiliary variables
Couenne::CouenneObjective::print
void print(std::ostream &out=std::cout)
Print to iostream.
Definition:
CouenneProblemElem.hpp:147
Couenne::CouenneConstraint::Body
virtual expression * Body(expression *newBody)
Set body of constraint.
Definition:
CouenneProblemElem.hpp:89
Couenne::CouenneConstraint::CouenneConstraint
CouenneConstraint(const CouenneConstraint &c, Domain *d=NULL)
Copy constructor.
Definition:
CouenneProblemElem.hpp:74
Couenne::CouenneObjective::CouenneObjective
CouenneObjective(expression *body)
constructor
Definition:
CouenneProblemElem.hpp:119
Couenne::CouenneObjective::Body
expression * Body() const
get body
Definition:
CouenneProblemElem.hpp:135
Couenne::CouenneConstraint::print
virtual void print(std::ostream &=std::cout)
print constraint
Couenne::CouenneConstraint::~CouenneConstraint
virtual ~CouenneConstraint()
Destructor.
Definition:
CouenneProblemElem.hpp:67
Couenne::exprConst
constant-type operator
Definition:
CouenneExprConst.hpp:23
Couenne::CouenneObjective::CouenneObjective
CouenneObjective(const CouenneObjective &o, Domain *d=NULL)
copy constructor
Definition:
CouenneProblemElem.hpp:127
Couenne::CouenneConstraint
Class to represent nonlinear constraints.
Definition:
CouenneProblemElem.hpp:39
Couenne::CouenneObjective::standardize
exprAux * standardize(CouenneProblem *p)
Get standard form of this objective function.
Definition:
CouenneProblemElem.hpp:143
Couenne::CouenneConstraint::ub_
expression * ub_
Upper bound (expression)
Definition:
CouenneProblemElem.hpp:45
Couenne::CouenneProblem
Class for MINLP problems with symbolic information.
Definition:
CouenneProblem.hpp:169
CouenneExprConst.hpp
Couenne::CouenneObjective::body_
expression * body_
expression to optimize
Definition:
CouenneProblemElem.hpp:114
Couenne::CouenneConstraint::clone
virtual CouenneConstraint * clone(Domain *d=NULL) const
Cloning method.
Definition:
CouenneProblemElem.hpp:80
Couenne::CouenneObjective::~CouenneObjective
~CouenneObjective()
destructor
Definition:
CouenneProblemElem.hpp:123
Couenne::CouenneConstraint::CouenneConstraint
CouenneConstraint(expression *body=NULL, expression *lb=NULL, expression *ub=NULL)
Constructor.
Definition:
CouenneProblemElem.hpp:50
Couenne::CouenneConstraint::lb_
expression * lb_
Lower bound (expression)
Definition:
CouenneProblemElem.hpp:44
COUENNE_INFINITY
#define COUENNE_INFINITY
Definition:
CouennePrecisions.hpp:32
Couenne::exprAux
Auxiliary variable.
Definition:
CouenneExprAux.hpp:32
Couenne::CouenneObjective::Body
expression * Body(expression *newBody)
Set body.
Definition:
CouenneProblemElem.hpp:139
CouenneExpression.hpp
Couenne::expression
Expression base class.
Definition:
CouenneExpression.hpp:48
Couenne::CouenneConstraint::body_
expression * body_
Body of constraint.
Definition:
CouenneProblemElem.hpp:43
CouenneTypes.hpp
Couenne::CouenneConstraint::Lb
virtual expression * Lb() const
Expression of lower bound.
Definition:
CouenneProblemElem.hpp:84
Couenne::CouenneConstraint::Ub
virtual expression * Ub() const
Expression of upper bound.
Definition:
CouenneProblemElem.hpp:85
Couenne::CouenneConstraint::Body
virtual expression * Body() const
Expression of body of constraint.
Definition:
CouenneProblemElem.hpp:86
Couenne::CouenneObjective::clone
CouenneObjective * clone(Domain *d=NULL) const
cloning method
Definition:
CouenneProblemElem.hpp:131
Couenne::Domain
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
Definition:
CouenneDomain.hpp:104
Couenne::CouenneObjective
Objective function.
Definition:
CouenneProblemElem.hpp:109
Generated by
1.8.5