Square-root sum problem

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Unsolved problem in computer science
What is the Turing run-time complexity of the square-root sum problem?

The square-root sum problem (SRS) is a computational decision problem from the field of numerical analysis, with applications to computational geometry.

Definitions

[edit | edit source]

SRS is defined as follows:[1]

Given positive integers

a1,,ak

and an integer t, decide whether

i=1kait

.

An alternative definition is:

Given positive integers

a1,,ak

and

b1,,bk

, decide whether

i=1kaii=1kbi

.

The problem was posed in 1981,[2] and likely earlier.

Run-time complexity

[edit | edit source]

SRS can be solved in polynomial time in the Real RAM model.[3] However, its run-time complexity in the Turing machine model is open, as of 1997.[1] The main difficulty is that, in order to solve the problem, the square-roots should be computed to a high accuracy, which may require a large number of bits. The problem is mentioned in the Open Problems Garden.[4]

Blomer[5] presents a polynomial-time Monte Carlo algorithm for deciding whether a sum of square roots equals zero. The algorithm applies more generally, to any sum of radicals.

Allender, Burgisser, Pedersen and Miltersen[6] prove that SRS lies in the counting hierarchy (which is contained in PSPACE). Specifically, they show that SRS lies in PPPPPPP, in the fourth level of the counting hierarchy.

A version of the problem in which the square roots are given in unary has much lower complexity, in P/poly. This means that it can be solved by circuits of polynomial size, although it might not be easy to find these circuits.[7]

Separation bounds

[edit | edit source]

One way to solve SRS is to prove a lower bound on the absolute difference |ti=1kai| or |i=1kaii=1kbi|. Such lower bound is called a "separation bound" since it separates between the difference and 0. For example, if the absolute difference is at least 2d, it means that we can round all numbers to d bits of accuracy, and solve SRS in time polynomial in d.

This leads to the mathematical problem of proving bounds on this difference. Define r(n,k) as the smallest positive value of the difference i=1kaii=1kbi, where ai and bi are integers between 1 and n; define R(n,k) is defined as -log r(n,k), which is the number of accuracy digits required to solve SRS. Computing r(n,k) is open problem 33 in the open problem project.[8]

In particular, it is interesting whether r(n,k) is in O(poly(k,log(n)). A positive answer would imply that SRS can be solved in polynomial time in the Turing Machine model. Some currently known bounds are:

  • Qian and Wang[9] prove by an explicit construction that, for any k and n, r(n,k)O(n2k+3/2), so R(n,k)(2k3/2)logn. This number is optimal for k=2, and also for a wide range of integers.
  • Burnikel, Fleischer, Mehlhorn and Schirra[10] proved an upper bound on the number of digits: R(n,k)O(22klogn).
  • Cheng, Meng, Sun and Chen[11] showed that R(n,k)2O(n/logn)logn.
  • Cheng and Li[12] showed that R(n,k)2O(n/logn). This implies an that SRS can be solved in time 2o(k)(logn)O(1), as long as n is in o(k log k). They also present an algorithm to compute r(n,k) in time nk+o(k).
  • Eisenbrand, Haeberle and Singer[13] prove that r(n,k)γn2n, where gamma is a constant that depends on the inputs a1,...,an, and steps from the Subspace theorem. This improves the previous bound r(n,k)(nmaxi(ai))2n.

Applications

[edit | edit source]

SRS is important in computational geometry, as Euclidean distances are given by square-roots, and many geometric problems (e.g. Minimum spanning tree in the plane and Euclidean traveling salesman problem) require to compute sums of distances.

Etessami and Yannakakis[14] show a reduction from SRS to the problem of termination of recursive concurrent stochastic games.

Relation to semidefinite programming

[edit | edit source]

SRS also has a theoretic importance, as it is a simple special case of a semidefinite programming feasibility problem. Consider the matrix (1xxa). This matrix is positive semidefinite iff ax20, iff |x|a. Therefore, to solve SRS, we can construct a feasibility problem with n constraints of the form (1xixiai)0, and additional linear constraints xi0,i=1nxik. The resulting SDP is feasible if and only if SRS is feasible. As the runtime complexity of SRS in the Turing machine model is open, the same is true for SDP feasibility (as of 1997).

Extensions

[edit | edit source]

Kayal and Saha[15] extend the problem from integers to polynomials. Their results imply a solution to SRS for a special class of integers.

References

[edit | edit source]
  1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).