## Algorithm for checking existance of real roots for Polynomials in more than one variable

### Remember to vote up questions/answers you find interesting or helpful (requires 15 reputation points)

Is there a way to determine exactly (without the use of approximation methods) whether $p\in \mathbb{R}[x_1,\dots,x_n]$ has real-valued solutions.

Algorithms based on Sturm's theorem seem to be applicable to univariate polynomials only.

-

2
There are also multivariate versions of Sturm's theorem. – J.C. Ottem Dec 15 2011 at 12:58

## 2 Answers

Tarski's theorem on the decidability of the theory of real-closed fields provides a general algorithm that decides any question expressible in the first order language of real-closed fields. His algorithm can therefore determine, for any statement, whether it is true in the structure $\langle\mathbb{R},+,\cdot,0,1,\lt\rangle$. Thus, not only are the purely existential assertions (solvability of systems of equations) decidable in this context, but also more complex assertions involving iterated quantifiers, which would not seem without this result to be decidable even by approximation.

The way Tarski's argument proceeds is by elimination of quantifiers: every assertion in this language is equivalent to a quantifier-free assertion. In particular, the existence of a solution to $p(\vec x)=0$ is equivalent by Tarski's reduction to a quantifier-free assertion about the coefficients of the polynomial. That is, the algorithm reduces the question to a mere calculation involving the coefficients.

But if you are interested in actually using the algorithm in specific instances, rather than the theoretical question about whether in principal there is such an algorithm, then Tarski's algorithm may not actually be helpful. Although it has been implemented on computers, the algorithm takes something like a tower of exponential time in the size of the input, and evidently it has been proved that every quantifier-elimination algorithm must be at least double-exponential.

-
Thank you. My Question was motivated by developing Collision avoidance Strategies. I am interested in an algorithm Checking whether two (possibly n-dimensional) Ellipsoids overlap. Using a polynomial Representation of ellipsoids one could check if at least one real valued solution exist in order to prove a collision. For a proper performance Comparison with other algorithms (which might be based on numeric methods) I was interested in how computational complexity behaves, when the dimension of the problem grows. – ostap bender Dec 15 2011 at 14:27

1
I would expect that, for the specific problem of checking whether two ellipsoids overlap, there are more efficient algorithms than the relevant special case of Tarski's general algorithm. Unfortunately, this is far from my expertise, so I don't actually know any such algorithms. For conceptual purposes (if not for algorithmic ones), it might help to arrange, by an affine transformation, that one of your two ellipsoids is the unit ball. – Andreas Blass Dec 15 2011 at 15:17
Yes, there are indeed more efficient Algorithms. As far as I know all of them use numerical approximation (in higher dimensions) either to calculate roots or to calculate a minimum / maximum. So I was curious whether there is an exact Algorithm, having a runtime bounded by the dimension (ideally with polynomial complexity). As far as I understood the Discussion at mathoverflow.net/questions/43979/… , there is no such algorithm yet (at least not for the more general case of counting roots of fewnomials) – ostap bender Dec 20 2011 at 12:43

### You can accept an answer to one of your own questions by clicking the check mark next to it. This awards 15 reputation points to the person who answered and 2 reputation points to you.

This problem is solved in so-called Semi-algebraic Geometry. Here are some books:

Basu S. Algorithms in Semi-algebraic Geometry

Basu S., Pollack R., Roy M.-F. Algorithms in Real Algebraic Geometry

Bochnak J., Coste M., Roy M-F. Real algebraic geometry

Coste M. An introduction to semialgebraic geometry

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 3, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9219865202903748, "perplexity_flag": "middle"}