Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Computational complexity theory
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Inherent difficulty of computational problems}} {{Use mdy dates|date=September 2017}} In [[theoretical computer science]] and mathematics, '''computational complexity theory''' focuses on classifying [[computational problem]]s according to their resource usage, and explores the relationships between these classifications. A computational problem is a task solved by a computer. A computation problem is solvable by mechanical application of mathematical steps, such as an [[algorithm]]. 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 their [[computational complexity]], i.e., the amount of resources needed to solve them, such as time and storage. Other measures of complexity are also used, such as the amount of communication (used in [[communication complexity]]), the number of [[logic gate|gates]] in a circuit (used in [[circuit complexity]]) and the number of processors (used in [[parallel computing]]). One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do. The [[P versus NP problem]], one of the seven [[Millennium Prize Problems]],<ref>{{cite web |title=P vs NP Problem {{!}} Clay Mathematics Institute |url=http://www.claymath.org/millennium-problems/p-vs-np-problem |website=www.claymath.org |language=en |access-date=July 6, 2018 |archive-date=July 6, 2018 |archive-url=https://web.archive.org/web/20180706075006/http://www.claymath.org/millennium-problems/p-vs-np-problem |url-status=dead }}</ref> is part of the field of computational complexity. 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 kinds of problems can, in principle, be solved algorithmically.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)