Complexity Classes as Pure Sets

In summary, complexity classes such as P, NP, NP-Hard, and NP-Complete are sets that represent different types of decision problems in terms of polynomial time algorithms and non-deterministic polynomial time algorithms. However, defining these sets in terms of basic set theory is not practical and it is more effective to use language and machine mechanisms. Additionally, these sets do not account for complexity and a specific complexity measure must be defined in order to determine equivalent classes.
  • #1
Dragonfall
1,030
4
What are complexity classes (P, NP, etc) in terms of pure sets? ZFC, I mean.
 
Mathematics news on Phys.org
  • #2
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.
 
  • #3
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.
 
  • #4
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.
 
  • #5
... 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.
 
  • #6
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.
 
  • #7
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.
 

1. What are complexity classes in computer science?

Complexity classes are sets of problems that share similar characteristics in terms of their computational complexity. They are used to classify problems according to the amount of time or resources required to solve them.

2. What is the significance of pure sets in complexity classes?

Pure sets, also known as decision problems, are a subset of complexity classes that contain problems with a yes/no answer. They are important in complexity classes as they are used to define the hardness of problems and determine which problems are solvable in polynomial time.

3. How are complexity classes and pure sets related?

Complexity classes are defined based on the complexity of pure sets. This means that a problem belongs to a particular complexity class if it can be reduced to a pure set within that class. In other words, the complexity of a problem is determined by its relationship to pure sets in a particular complexity class.

4. What are some examples of complexity classes and pure sets?

Examples of complexity classes include P, NP, and EXPTIME. Some examples of pure sets within these classes are the Boolean satisfiability problem, the traveling salesman problem, and the subset sum problem, respectively.

5. How are complexity classes and pure sets used in practical applications?

Complexity classes and pure sets are used in practical applications to analyze the time and space complexity of algorithms, to determine the feasibility of solving a problem, and to classify problems based on their difficulty. They also provide a framework for understanding the relationship between different types of problems and the resources required to solve them.

Similar threads

Replies
5
Views
721
  • General Math
Replies
7
Views
3K
  • Programming and Computer Science
Replies
2
Views
1K
  • General Math
Replies
4
Views
1K
Replies
12
Views
2K
  • Science and Math Textbooks
Replies
2
Views
642
Replies
8
Views
1K
Replies
24
Views
2K
Replies
3
Views
1K
Back
Top