Minotaur 0.4.1
Docs for developers
ConBoundMod.h
Go to the documentation of this file.
1//
2//
3// Minotaur -- It's only 1/2 bull
4//
5// (C)opyright 2009 - 2025 The Minotaur Team.
6//
7
18#ifndef MINOTAURCONBOUNDMOD_H
19#define MINOTAURCONBOUNDMOD_H
20
21#include "Modification.h"
22#include "NonlinearFunction.h"
23
24namespace Minotaur {
25 class Engine;
26 class ConBoundMod;
27 typedef Engine* EnginePtr;
28 typedef ConBoundMod* ConBoundModPtr;
29 typedef std::vector <ConBoundModPtr> ConBoundModVector;
30 typedef ConBoundModVector::iterator ConBoundModIter;
31 typedef ConBoundModVector::const_iterator ConBoundModConstIter;
32
33
35 class ConBoundMod : public Modification {
36 public:
38 ConBoundMod(ConstraintPtr con, BoundType lu, double new_val);
39
42
43 // base class method.
45 {return ModificationPtr();};
46
47 // base class method.
49 {return ModificationPtr();};
50
52 ConstraintPtr getCon() const;
53
55 BoundType getLU() const;
56
58 double getNewVal() const;
59
60 // Implement Modification::applyToProblem().
61 void applyToProblem(ProblemPtr problem);
62
63 // Implement Modification::undoToProblem().
64 void undoToProblem(ProblemPtr problem);
65
66 // Implement Modification::write().
67 void write(std::ostream &out) const;
68
69 private:
71 BoundType lu_;
72
74 double newVal_;
75
77 double oldVal_;
78
80 ConstraintPtr con_;
81 };
82
83 class ConBoundMod2;
84 typedef ConBoundMod2* ConBoundMod2Ptr;
85 typedef const ConBoundMod2* ConstConBoundMod2Ptr;
86 typedef std::vector < ConBoundMod2Ptr > ConBoundMod2Vector;
87 typedef ConBoundMod2Vector::iterator ConBoundMod2Iter;
88 typedef ConBoundMod2Vector::const_iterator ConBoundMod2ConstIter;
89
91 class ConBoundMod2 : public Modification {
92 public:
94 ConBoundMod2(ConstraintPtr con, double new_lb, double new_ub);
95
98
99 // Implement Modification::applyToProblem().
100 void applyToProblem(ProblemPtr problem);
101
102 // base class method.
104 {return ModificationPtr();};
105
107 ConstraintPtr getCon() const;
108
110 double getNewLb() const;
111
113 double getNewUb() const;
114
115 // base class method.
117 {return ModificationPtr();};
118
119 // Implement Modification::undoToProblem().
120 void undoToProblem(ProblemPtr problem);
121
122 // Implement Modification::write().
123 void write(std::ostream &) const {};
124
125 private:
127 double newLb_;
128
130 double newUb_;
131
133 double oldLb_;
134
136 double oldUb_;
137
139 ConstraintPtr con_;
140 };
141
142
143 class ConMod;
144 typedef ConMod* ConModPtr;
145 typedef const ConMod* ConstConModPtr;
146 typedef std::vector < ConModPtr > ConModVector;
147 typedef ConModVector::iterator ConModIter;
148 typedef ConModVector::const_iterator ConModConstIter;
149
151 class ConMod : public Modification {
152 public:
155
157 ~ConMod();
158
159 // Implement Modification::applyToProblem().
160 void applyToProblem(ProblemPtr problem);
161
162 // base class method.
164 {return ModificationPtr();};
165
167 ConstraintPtr getCon() const;
168
171
172
173 // base class method.
175 {return ModificationPtr();};
176
177 // Implement Modification::undoToProblem().
178 void undoToProblem(ProblemPtr problem);
179
180 // Implement Modification::write().
181 void write(std::ostream &) const {};
182
183 private:
185 NonlinearFunctionPtr newNlf_;
186
187
189 NonlinearFunctionPtr oldNlf_;
190
192 ConstraintPtr con_;
193 };
194
195}
196
197#endif
198
199
Declare abstract base class NonlinearFunction.
Modification of a both bounds on a constraint.
Definition: ConBoundMod.h:91
ModificationPtr toRel(ProblemPtr, RelaxationPtr) const
Covert a modification for a problem to one for its relaxation.
Definition: ConBoundMod.h:116
~ConBoundMod2()
Destroy.
Definition: ConBoundMod.cpp:129
void write(std::ostream &) const
Write it to 'out'.
Definition: ConBoundMod.h:123
double getNewUb() const
Get new value of the bound.
Definition: ConBoundMod.cpp:159
double getNewLb() const
Get new value of the bound.
Definition: ConBoundMod.cpp:153
ConstraintPtr getCon() const
Get the constraint whose bound is changed.
Definition: ConBoundMod.cpp:147
void undoToProblem(ProblemPtr problem)
Restore the modification for a problem.
Definition: ConBoundMod.cpp:183
void applyToProblem(ProblemPtr problem)
Apply it to the problem.
Definition: ConBoundMod.cpp:165
ModificationPtr fromRel(RelaxationPtr, ProblemPtr) const
Covert a modification for a relaxation to one for its original problem.
Definition: ConBoundMod.h:103
ConBoundMod2(ConstraintPtr con, double new_lb, double new_ub)
Construct.
Definition: ConBoundMod.cpp:119
Modification of a single bound on a constraint.
Definition: ConBoundMod.h:35
double getNewVal() const
Get new value of the bound.
Definition: ConBoundMod.cpp:74
void applyToProblem(ProblemPtr problem)
Apply it to the problem.
Definition: ConBoundMod.cpp:80
BoundType getLU() const
Get the type of bound that is changed: lower or upper.
Definition: ConBoundMod.cpp:68
~ConBoundMod()
Destroy.
Definition: ConBoundMod.cpp:46
void undoToProblem(ProblemPtr problem)
TO DO.
Definition: ConBoundMod.cpp:96
ModificationPtr toRel(ProblemPtr, RelaxationPtr) const
Covert a modification for a problem to one for its relaxation.
Definition: ConBoundMod.h:48
ModificationPtr fromRel(RelaxationPtr, ProblemPtr) const
Covert a modification for a relaxation to one for its original problem.
Definition: ConBoundMod.h:44
void write(std::ostream &out) const
Write it to 'out'.
Definition: ConBoundMod.cpp:102
ConstraintPtr getCon() const
Get the constraint whose bound is changed.
Definition: ConBoundMod.cpp:62
ConBoundMod(ConstraintPtr con, BoundType lu, double new_val)
Construct.
Definition: ConBoundMod.cpp:28
Modification of a both bounds on a constraint.
Definition: ConBoundMod.h:151
ModificationPtr toRel(ProblemPtr, RelaxationPtr) const
Covert a modification for a problem to one for its relaxation.
Definition: ConBoundMod.h:174
ConMod(ConstraintPtr con, NonlinearFunctionPtr new_nlf)
Construct.
Definition: ConBoundMod.cpp:191
void write(std::ostream &) const
Write it to 'out'.
Definition: ConBoundMod.h:181
void applyToProblem(ProblemPtr problem)
Apply it to the problem.
Definition: ConBoundMod.cpp:216
ConstraintPtr getCon() const
Get the constraint whose bound is changed.
Definition: ConBoundMod.cpp:204
ModificationPtr fromRel(RelaxationPtr, ProblemPtr) const
Covert a modification for a relaxation to one for its original problem.
Definition: ConBoundMod.h:163
NonlinearFunctionPtr getNewNlf() const
Get new nonlinearFunction.
Definition: ConBoundMod.cpp:210
void undoToProblem(ProblemPtr problem)
TO DO.
Definition: ConBoundMod.cpp:232
~ConMod()
Destroy.
Definition: ConBoundMod.cpp:199
The Constraint class is used to manage a constraint.
Definition: Constraint.h:61
Definition: Modification.h:29
Base class for nonlinear functions.
Definition: NonlinearFunction.h:31
Definition: Problem.h:74
Definition: Relaxation.h:53
Definition: ActiveNodeStore.h:20
BoundType
Different types of variable-bounds.
Definition: Types.h:131

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025