Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
tmp
OS-2.10.2
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::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
Definition:
constraint.cpp:19
Couenne::CouenneConstraint::standardize
virtual exprAux * standardize(CouenneProblem *)
decompose body of constraint through auxiliary variables
Definition:
constrStandardize.cpp:31
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
c
real c
Definition:
BonBqpdSolver.cpp:98
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