Computational complexity theory (nonfiction): Difference between revisions
No edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''Computational complexity theory''' is a branch of the theory of computation in theoretical computer science and [[ | '''Computational complexity theory''' is a branch of the theory of computation in theoretical computer science and [[Mathematics (nonfiction)|mathematics]] that focuses on classifying computational problems according to their inherent difficulty, and relating those complexity classes to each other. | ||
A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an [[algorithm (nonfiction)]]. | A computational problem is understood to be a task that is in principle amenable to being solved by a [[Computer (nonfiction)|computer]], which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an [[algorithm (nonfiction)]]. | ||
A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. | A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. | ||
Line 7: | Line 7: | ||
The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage. | The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage. | ||
One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do. | One of the roles of computational complexity theory is to determine the practical limits on what [[Computer (nonfiction)|computers]] can and cannot do. | ||
Closely related fields in theoretical computer science are analysis of algorithms and computability theory. | |||
* A key distinction between analysis of algorithms and computational complexity theory is that the former is devoted to analyzing the amount of resources needed by a particular algorithm to solve a problem, whereas the latter asks a more general question about all possible algorithms that could be used to solve the same problem. More precisely, computational complexity theory tries to classify problems that can or cannot be solved with appropriately restricted resources. | |||
* In turn, imposing restrictions on the available resources is what distinguishes computational complexity from computability theory: the latter theory asks what kind of problems can, in principle, be solved algorithmically. | |||
== In the News == | == In the News == | ||
Line 16: | Line 21: | ||
== Fiction cross-reference == | == Fiction cross-reference == | ||
* [[Crimes against mathematical constants]] | |||
* [[Gnomon algorithm]] | * [[Gnomon algorithm]] | ||
* [[Mathematics]] | * [[Mathematics]] | ||
Line 23: | Line 29: | ||
* [[Algorithm (nonfiction)]] | * [[Algorithm (nonfiction)]] | ||
* [[Computation (nonfiction)]] | * [[Computation (nonfiction)]] | ||
* [[Computer algorithm (nonfiction)]] | |||
* [[Computer science (nonfiction)]] | * [[Computer science (nonfiction)]] | ||
* [[Function (nonfiction)]] | * [[Function (nonfiction)]] | ||
Line 28: | Line 35: | ||
* [[Mathematics (nonfiction)]] | * [[Mathematics (nonfiction)]] | ||
* [[Measurement (nonfiction)]] | * [[Measurement (nonfiction)]] | ||
* [[Polynomial hierarchy (nonfiction)]] - a hierarchy of complexity classes that generalize the classes P, NP and co-NP to oracle machines. It is a resource-bounded counterpart to the arithmetical hierarchy and analytical hierarchy from [[Mathematical logic (nonfiction)|mathematical logic]]. | |||
* [[Theory of computation (nonfiction)]] | * [[Theory of computation (nonfiction)]] | ||
* [[Turing machine (nonfiction)]] | |||
* [[Universal Turing machine (nonfiction)]] | |||
External links: | External links: | ||
Line 37: | Line 47: | ||
[[Category:Nonfiction (nonfiction)]] | [[Category:Nonfiction (nonfiction)]] | ||
[[Category:Algorithms (nonfiction)]] | |||
[[Category:Complexity (nonfiction)]] | [[Category:Complexity (nonfiction)]] | ||
[[Category:Computation (nonfiction)]] | [[Category:Computation (nonfiction)]] | ||
[[Category:Computer science (nonfiction)]] | |||
[[Category:Mathematics (nonfiction)]] | [[Category:Mathematics (nonfiction)]] |
Latest revision as of 08:29, 1 September 2018
Computational complexity theory is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those complexity classes to each other.
A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an algorithm (nonfiction).
A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used.
The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage.
One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do.
Closely related fields in theoretical computer science are analysis of algorithms and computability theory.
- A key distinction between analysis of algorithms and computational complexity theory is that the former is devoted to analyzing the amount of resources needed by a particular algorithm to solve a problem, whereas the latter asks a more general question about all possible algorithms that could be used to solve the same problem. More precisely, computational complexity theory tries to classify problems that can or cannot be solved with appropriately restricted resources.
- In turn, imposing restrictions on the available resources is what distinguishes computational complexity from computability theory: the latter theory asks what kind of problems can, in principle, be solved algorithmically.
In the News
Fiction cross-reference
Nonfiction cross-reference
- Algorithm (nonfiction)
- Computation (nonfiction)
- Computer algorithm (nonfiction)
- Computer science (nonfiction)
- Function (nonfiction)
- Intractability (nonfiction)
- Mathematics (nonfiction)
- Measurement (nonfiction)
- Polynomial hierarchy (nonfiction) - a hierarchy of complexity classes that generalize the classes P, NP and co-NP to oracle machines. It is a resource-bounded counterpart to the arithmetical hierarchy and analytical hierarchy from mathematical logic.
- Theory of computation (nonfiction)
- Turing machine (nonfiction)
- Universal Turing machine (nonfiction)
External links:
- Computational complexity theory @ Wikipedia