1 #ifndef OPTIMIZATION_LINEAR_PROGRAM_H 2 #define OPTIMIZATION_LINEAR_PROGRAM_H 4 #include <KrisLibrary/math/matrix.h> 5 #include <KrisLibrary/math/sparsematrix.h> 6 #include <KrisLibrary/math/sparsevector.h> 48 enum BoundType { Free, LowerBound, UpperBound, Bounded, Fixed };
49 void Resize(
int m,
int n);
50 void AddConstraint(Real qi,
const Vector& Ai,Real pi);
51 void AddConstraints(
int num);
52 void AddVariable(Real li=-Inf,Real ui=Inf);
53 void AddVariables(
int num);
55 BoundType ConstraintType(
int i)
const;
56 BoundType VariableType(
int j)
const;
57 inline static bool HasLowerBound(BoundType b) {
return b==LowerBound || b==Bounded; }
58 inline static bool HasUpperBound(BoundType b) {
return b==UpperBound || b==Bounded; }
59 bool HasEqualities()
const;
60 bool HasInequalities()
const;
61 bool HasBounds()
const;
62 Real EqualityError(
const Vector& x)
const;
64 Real BoundMargin(
const Vector& x)
const;
65 Real InfeasibilityMeasure(
const Vector& x)
const;
66 bool SatisfiesEqualities(
const Vector& x,Real tol=Epsilon)
const;
67 bool SatisfiesInequalities(
const Vector& x)
const;
68 bool SatisfiesBounds(
const Vector& x)
const;
69 bool IsFeasible(
const Vector& x,Real equalityTol=Epsilon)
const;
70 void ProjectDirection(
Vector& v)
const;
71 void Print(std::ostream& out)
const;
94 typedef LinearConstraints::BoundType BoundType;
95 void Resize(
int m,
int n);
96 void AddConstraint(Real qi,
const SparseVector& Ai,Real pi);
97 void AddConstraints(
int num);
98 void AddVariable(Real li=-Inf,Real ui=Inf);
99 void AddVariables(
int num);
100 bool IsValid()
const;
101 BoundType ConstraintType(
int i)
const;
102 BoundType VariableType(
int j)
const;
103 bool HasEqualities()
const;
104 bool HasInequalities()
const;
105 bool HasBounds()
const;
106 inline static bool HasLowerBound(BoundType b) {
return LinearConstraints::HasLowerBound(b); }
107 inline static bool HasUpperBound(BoundType b) {
return LinearConstraints::
109 Real EqualityError(
const Vector& x)
const;
111 Real BoundMargin(
const Vector& x)
const;
112 Real InfeasibilityMeasure(
const Vector& x)
const;
113 bool SatisfiesEqualities(
const Vector& x,Real tol=Epsilon)
const;
114 bool SatisfiesInequalities(
const Vector& x)
const;
115 bool SatisfiesBounds(
const Vector& x)
const;
116 bool IsFeasible(
const Vector& x,Real equalityTol=Epsilon)
const;
117 void ProjectDirection(
Vector& v)
const;
118 void Print(std::ostream& out)
const;
141 enum Result { Feasible, Infeasible, Unbounded, Error };
143 void Resize(
int m,
int n);
144 void AddVariable(Real l=-Inf,Real u=Inf);
145 void AddVariables(
int num);
146 bool IsValid()
const;
147 Real Objective(
const Vector& x)
const;
148 void Print(std::ostream& out)
const;
160 typedef LinearProgram::Result Result;
161 typedef LinearProgram::BoundType BoundType;
164 void Resize(
int m,
int n);
165 void AddVariable(Real l=-Inf,Real u=Inf);
166 void AddVariables(
int num);
167 bool IsValid()
const;
168 Real Objective(
const Vector& x)
const;
169 void Print(std::ostream& out)
const;
Namespace for classes and functions in the Optimization package.
Definition: CSet.h:7
Linear program definition with sparse matrix A.
Definition: LinearProgram.h:158
Definition: SparseVectorTemplate.h:14
Linear constraints for LP's and QP'sRepresents the constraints.
Definition: LinearProgram.h:46
Real InequalityMargin(VectorFieldFunction *c, const Vector &x, int *index)
Returns C(x).minElement() (and the index if non=NULL)
Definition: Newton.cpp:46
Linear program definition.Represents the LP min/max c.x subject to qi <= ai.x <= pi lj <= xj <= u...
Definition: LinearProgram.h:139
Contains all definitions in the Math package.
Definition: WorkspaceBound.h:12
Sparse linear constraints for LP's and QP'sUnlike dense constraints, AddVariable/AddConstraint are re...
Definition: LinearProgram.h:92