# Efficient algorithm finding 'a' solution of system of linear inequalities

I'm working on rational number field $\mathbb{Q}$.

Is there an efficient algorithm finding a solution of system of linear inequalities?

In many computer algebra systems like Sage or Maple, there are functions finding the whole solution set, but in my problem (approximately 40 dimensional vector space with 600 inequalities) it seems that the computation is too heavy. Also, in my situation I don't need the whole set - just a single solution is sufficient. What is a good method to find a solution?

-
Mathematica has a function called FindInstance that looks for a single solution satisfying a set of specified criteria. – Yoav Kallus Feb 12 '13 at 0:14

You can do linear programming (for example, by giving it a random objective function); this will return a feasible solution - in fact, a vertex of the solution set. You can run such a linear program in maple (and possibly in sage). For something faster see the exact rational LP solver at http://www2.isye.gatech.edu/~wcook/qsopt/ex/index.html

-

You can use a genetic algorithm (very fast in this kind of problems) http://en.wikipedia.org/wiki/Genetic_algorithm The possible DNA is a sequence of the binary representation of 40 float numbers. One evaluation criteria you can use is the uniform error of all inequalities. So, you will find 'a' solution of your problem if the evaluation of the best individual is zero. Of course this is the lazy method, it just works! You can try to solve this using a linear program, but i can't tell you if 600 inequalities and 40 dimensions will be solved very fast with a simple LP-solver.

-