Minotaur 0.4.1
Docs for developers
Solution.h
Go to the documentation of this file.
1//
2// Minotaur -- It's only 1/2 bull
3//
4// (C)opyright 2008 - 2025 The Minotaur Team.
5//
6
16#ifndef MINOTAURSOLUTION_H
17#define MINOTAURSOLUTION_H
18
19#include "Types.h"
20
21namespace Minotaur {
22
23 class Solution;
24 typedef Solution* SolutionPtr;
25 typedef const Solution* ConstSolutionPtr;
26 typedef std::vector<SolutionPtr> SolutionPtrVector;
27 typedef std::vector<SolutionPtr>::iterator SolutionIterator;
28 class Problem;
29
30 class Solution {
31
32 public:
34 Solution();
35
37 Solution(double objval, const double *x, ProblemPtr problem);
38
40 Solution(double objvalue, const DoubleVector &newx,
41 ProblemPtr problem);
42
45
47 virtual ~Solution();
48
50 virtual void setPrimal(const double *x);
51
53 virtual void setDualOfCons(const double *vals);
54
56 virtual void setDualOfVars(const double *vals);
57
59 virtual void setObjValue(double new_val) {objValue_ = new_val;};
60
62 virtual double getObjValue() const {return objValue_;};
63
65 virtual double getConstraintViolation() {return consViol_;};
66
68 virtual const double * getPrimal() const {return x_;};
69
71 virtual const double * getDualOfCons() const {return dualCons_;};
72
74 virtual const double * getDualOfVars() const {return dualX_;};
75
77 virtual void write(std::ostream &out) const;
78
80 virtual void writePrimal(std::ostream &out, const VarVector *v=0) const;
81
83 virtual void writeDual(std::ostream &out) const;
84
85 protected:
88
91
94
96 double *x_;
97
100 double *dualCons_;
101
104 double *dualX_;
105
107 double consViol_;
108
110 double objValue_;
111
113 double comple_;
114 };
115}
116#endif
117
Declare important 'types' used in Minotaur.
Definition: Problem.h:74
Definition: Solution.h:30
virtual void setObjValue(double new_val)
Set a new solution value.
Definition: Solution.h:59
virtual void setDualOfCons(const double *vals)
Copy values of dual variables of constraints.
Definition: Solution.cpp:131
virtual double getObjValue() const
Return solution value.
Definition: Solution.h:62
virtual const double * getDualOfCons() const
Return a pointer to the solution.
Definition: Solution.h:71
double consViol_
Violation.
Definition: Solution.h:107
double comple_
Complementarity.
Definition: Solution.h:113
virtual void writeDual(std::ostream &out) const
Write dual values to a stream.
Definition: Solution.cpp:182
double * dualCons_
Definition: Solution.h:100
virtual void write(std::ostream &out) const
Write to a stream.
Definition: Solution.cpp:149
virtual ~Solution()
Destroy.
Definition: Solution.cpp:77
virtual void setPrimal(const double *x)
Copy values of variables.
Definition: Solution.cpp:123
double objValue_
The objective value of this solution.
Definition: Solution.h:110
UInt m_
Number of constraints.
Definition: Solution.h:90
Solution()
Default constructor.
Definition: Solution.cpp:27
virtual void writePrimal(std::ostream &out, const VarVector *v=0) const
Write primal values to a stream.
Definition: Solution.cpp:156
UInt n_
Number of variables.
Definition: Solution.h:87
double * dualX_
Definition: Solution.h:104
virtual void setDualOfVars(const double *vals)
Copy values of dual variables of variables.
Definition: Solution.cpp:140
virtual const double * getDualOfVars() const
Return a pointer to the solution.
Definition: Solution.h:74
double * x_
Store values of the variables in an array.
Definition: Solution.h:96
ProblemPtr problem_
Original problem (For accessing variable names).
Definition: Solution.h:93
virtual double getConstraintViolation()
Return the 2nd norm of constraint violations.
Definition: Solution.h:65
virtual const double * getPrimal() const
Return a pointer to the solution.
Definition: Solution.h:68
Definition: ActiveNodeStore.h:20
unsigned int UInt
Unsigned integer.
Definition: Types.h:30

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