gtsam  4.0.0
gtsam
LPInitSolver.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
20 #pragma once
21 
24 #include <CppUnitLite/Test.h>
25 
26 namespace gtsam {
53 class LPInitSolver {
54 private:
55  const LP& lp_;
56 
57 public:
59  LPInitSolver(const LP& lp) : lp_(lp) {}
60 
62  VectorValues solve() const;
63 
64 private:
66  LP::shared_ptr buildInitialLP(Key yKey) const;
67 
72  GaussianFactorGraph::shared_ptr buildInitOfInitGraph() const;
73 
75  double compute_y0(const VectorValues& x0) const;
76 
78  std::vector<std::pair<Key, Matrix>> collectTerms(
79  const LinearInequality& factor) const;
80 
82  InequalityFactorGraph addSlackVariableToInequalities(Key yKey,
83  const InequalityFactorGraph& inequalities) const;
84 
85  // friend class for unit-testing private methods
86  FRIEND_TEST(LPInitSolver, initialization);
87 };
88 
89 }
This LPInitSolver implements the strategy in Matlab: http://www.mathworks.com/help/optim/ug/linear-pr...
Definition: LPInitSolver.h:53
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: GaussianFactorGraph.h:74
This class defines a linear inequality constraint Ax-b <= 0, inheriting JacobianFactor with the speci...
Definition: LinearInequality.h:33
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:57
Collection of all Linear Inequality constraints Ax-b <= 0 of a Programming problem as a Factor Graph.
Definition: InequalityFactorGraph.h:32
LPInitSolver(const LP &lp)
Construct with an LP problem.
Definition: LPInitSolver.h:59
This class represents a collection of vector-valued variables associated each with a unique integer i...
Definition: VectorValues.h:73
Data structure of a Linear Program.
Definition: LP.h:51
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
Linear Factor Graph where all factors are Gaussians.
VectorValues solve() const
Definition: LPInitSolver.cpp:27
Struct used to hold a Linear Programming Problem.