1
$\begingroup$

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?

$\endgroup$
1
  • $\begingroup$ Mathematica has a function called FindInstance that looks for a single solution satisfying a set of specified criteria. $\endgroup$ Feb 12, 2013 at 0:14

2 Answers 2

2
$\begingroup$

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

$\endgroup$
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.