2
$\begingroup$

I have a hypothetical question: suppose there exists an algorithm that solves an NP-Complete problem polynomial time, but requires the computation of values that grow exponentially big (or small).

For example, suppose POLY-3SAT solves 3-SAT in N^17, however to do so it must compute/evaluate the value of a number C whose value grows as N^1000 (or 1/N^1000).

What would this imply? Does computing/evaluating an exponentially large value automatically place the algorithm in EXP-SPACE (or some other complexity class)? It seems like this would be a different complexity class than just ordinary P.

$\endgroup$
  • $\begingroup$ @C Shreve "For example, suppose POLY-3SAT solves 3-SAT in N^17, ... " Do you know that $O(N^{17})$ is both impractical and infeasible for $N\ge10$, but in terms of computer science, the one who discovered this algorithm deserves a noble prize in computer science and 1,000,000$ for proving that P=NP. $\endgroup$ – Farewell Stack Exchange Aug 16 '17 at 16:08
  • 1
    $\begingroup$ @ErezZrihen The question says nothing about practical. I suspect the asker chose $n^{17}$ because it seems slightly easier to believe that there's an impractical, complicated polynomial-time algorithm for 3-SAT than that there's an $O(n^3)$ algorithm that nobody's noticed in all this time. $\endgroup$ – David Richerby Aug 16 '17 at 16:11
  • $\begingroup$ I also thought that it is possible to solve 3-SAT in $O(n^{24})$ time and someone commented me that algorithm with that complexity is practically unsolvable for $n \ge 10$, even though this comment didn't answer my question at all I still liked it, but you know it is just a comment not an answer. I just did as what he did in C Shreve's question. See this cs.stackexchange.com/questions/78015/…. This is gnasher729's first comment. $\endgroup$ – Farewell Stack Exchange Aug 16 '17 at 16:15
4
$\begingroup$

Complexity classes are classes of problems, not classes of algorithms. For example, the existence of Dijkstra's algorithm means that the problem of computing shortest paths in graphs is in P, but it doesn't make sense to say that "Dijkstra's algorithm is in P".

Exponentially large values can be stored in binary in a polynomial numebr of bits, and we can compute on such numbers using a polynomial number of operations. This notwithstanding, it seems that you're trying to get a polnomial-time algorithm that somehow dows exponentially much work, which is an oxymoron.

$\endgroup$
3
$\begingroup$

It would imply that P = NP. The part about "values that grow exponentially big" is irrelevant; the same remark is true of any algorithm that solves a NP-complete problem in polynomial time.

A number whose value is as large as $N^{1000}$ is not a problem. It takes $1000 \lg N$ bits to represent such a number. You can add two such numbers in $O(\lg N)$ time, and multiply them in $O((\lg N)^2)$ time, which is polynomial in the input size.

Make sure you understand the difference between the size of the input and the input itself -- i.e., the difference between the value of a number and the number of bits needed to represent that number. I suggest you take a look at Relationship between an integer N and the number of bits n required to represent the integer, Complexity of multiplication, Time complexity of addition, Why addition algorithm is not pseudo- polynomial?, How can we assume that basic operations on numbers take constant time?.

$\endgroup$
  • 1
    $\begingroup$ This would still be the case if N was part of the exponential? For example C = $10^{N*1000}$? It just seems like P and P-With- Exponentially-Sized-Values should be different complexity classes. $\endgroup$ – C Shreve Feb 23 '17 at 0:08
  • 2
    $\begingroup$ @CShreve That still only takes $\Theta(N)$ bits to write down. $\endgroup$ – David Richerby Feb 23 '17 at 1:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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