gtsam  4.1.0
gtsam
gtsam::LPInitSolver Class Reference

Detailed Description

This LPInitSolver implements the strategy in Matlab: http://www.mathworks.com/help/optim/ug/linear-programming-algorithms.html#brozyzb-9 Solve for x and y: min y st Ax = b Cx - y <= d where y \in R, x \in R^n, and Ax = b and Cx <= d is the constraints of the original problem.

If the solution for this problem {x*,y*} has y* <= 0, we'll have x* a feasible initial point of the original problem otherwise, if y* > 0 or the problem has no solution, the original problem is infeasible.

The initial value of this initial problem can be found by solving min ||x||^2 s.t. Ax = b to have a solution x0 then y = max_j ( Cj*x0 - dj ) – due to the constraints y >= Cx - d

WARNING: If some xj in the inequality constraints does not exist in the equality constraints, set them as zero for now. If that is the case, the original problem doesn't have a unique solution (it could be either infeasible or unbounded). So, if the initialization fails because we enforce xj=0 in the problematic inequality constraint, we can't conclude that the problem is infeasible. However, whether it is infeasible or unbounded, we don't have a unique solution anyway.

Public Member Functions

 LPInitSolver (const LP &lp)
 Construct with an LP problem.
 
VectorValues solve () const
 

Friends

class LPInitSolverInitializationTest
 

Member Function Documentation

◆ solve()

VectorValues gtsam::LPInitSolver::solve ( ) const
Returns
a feasible initialization point

The documentation for this class was generated from the following files: