Complexity Classes as Pure Sets

Click For Summary
Complexity classes like P, NP, NP-Hard, and NP-Complete can be defined as sets of problems based on the existence of algorithms with specific time complexities. The discussion highlights the challenge of expressing these classes purely in set-theoretic terms, as definitions may vary based on foundational concepts like decision problems and Turing computation. While it's possible to represent these classes as sets, doing so may not capture their complexity or practical significance. The conversation suggests that bridging the gap between complexity classes and basic set notions requires a nuanced approach, potentially involving coding and complexity measures. Ultimately, the complexity of these definitions can lead to confusion and may seem meaningless without a proper context.
Dragonfall
Messages
1,023
Reaction score
5
What are complexity classes (P, NP, etc) in terms of pure sets? ZFC, I mean.
 
Mathematics news on Phys.org
I thought they were just sets. Like

P = {problem q | there is a polynomial time algorithm for solving q}
NP = {problem q | there is a non-deterministic polynomial time algorithm for solving q}
NP-Hard = {problem q | any problem q' in NP can be reduced to q in polynomial time}
NP-Complete = NP (intersect) NP-Hard

etc.
 
I depends on how you define decision problem, Turing computation, etc. Take any book on computation theory, start with the definition of complexity classes given by AUMathTutor and work backwards by substituting each concept by its definition and eventually you should end up with an ugly expression for that set. Note however that the result is likely to vary depending on our definitions so there is no universal way to express such sets, and I expect that they will be fairly meaningless to humans.
 
AUMathTutor said:
I thought they were just sets. Like

P = {problem q | there is a polynomial time algorithm for solving q}

etc.

"problem q" would also have to be a set.
 
... since when can there not be sets of sets? Am I missing the point?

Are you asking for the definition of these sets in terms of elementary set theoretic notions? Like somebody said, doing that would be counterproductive. I think the way to bridge the gap from this to more basic notions is via the mechanism of language and machine.
 
It's pretty trivial to define them as sets if they're decision problems: just code output in binary for inputs "", "0", "1", "00", "01", "10", "11", "000", ... If they're functions, just code numbers (in a self-delimiting format) rather than bits. Take the resultant binary string and code as the set of the set bits' usual set representations: 1 = {{}}, 2 = {{}, {{}}}, etc.
 
Set as decision problems don't account for complexity. I guess you'd have to define some sort of complexity measure, and the measure would have to depend on the turing machine or whatever formality used. Then define some sort of equivalent class. My head hurts just thinking about it.
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 13 ·
Replies
13
Views
1K
  • · Replies 12 ·
Replies
12
Views
3K
Replies
2
Views
2K
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 6 ·
Replies
6
Views
2K