I am currently working on a problem where I need to find a feasible solution to linear equality constraints.
$\hspace{50mm}Ax=b,$
$\hspace{50mm}x\geq0,$
$\hspace{38mm}$where $A \in R^{m*n}, b\in R^m, A_{ij} \in \{0,1\}$
$ \hspace{50mm}m << n$
The number of variables is greater than the number of constraints in orders of magnitude.
The simplex method gives Basic Feasible Solution(BFS) in which most (at least n-m) variables are zero.
I wanted to know if we can preprocess the constraints so that we can get a reduction in the number of variables in O(n) (order of the number of variables).
Note: I am fine with approximate solutions as long as the error is bounded.
Linear programming presolvers perform a variety of techniques to simplify the problem before invoking the main LP algorithm. For example, eliminate variables that must be 0 in every feasible solution, or remove redundant constraints. Here are a few that might apply to your problem:
Typically, presolvers apply these techniques multiple times until nothing changes or until some iteration limit is reached.