Abstract
In this chapter the notion of runtime measure for programs is lifted to problems. We classify problems according to the time it takes to decide them. The notion of time bounds is introduced which abstracts away from concrete input expressing runtime simply in terms of the size of the input. The focus will be mainly on linear, polynomial and exponential time. The Big-O and little-o notation are introduced to describe the order of growth of a function. independent from constant factors. This is in line with asymptotic worst-case complexity which we will be using throughout.
How do we classify problems according to the time it takes to solve them? What are the relationships between those classes and how do we prove them?
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
This is of course sufficient since we are interested in runtime of decision procedures.
- 2.
It seems humans can much better grasp large amounts of time than large natural numbers. Maybe this is due to evolution?
- 3.
In [1] the classes are called PTIME, LINTIME, NPTIME (there is no EXPTIME), respectively.
- 4.
This notation as well as “little-o” discussed later, is by Edmund Georg Hermann Landau (14 February 1877–19 February 1938), a German mathematician who worked mainly in the field of analytic number theory. “\(\mathscr {O}\)” stands for order.
- 5.
As the reader may already have guessed there is also a notation for lower bounds \(\Omega \) (called “Big-Omega”), dual to \(\mathop {}\mathopen {}\mathscr {O}\mathopen {}\left( \_\right) \), but we don’t need it for our considerations.
References
Jones, N.D.: Computability and Complexity: From a Programming Perspective. MIT Press, Cambridge (1997) (Also available online at http://www.diku.dk/neil/Comp2book.html.)
Ong, C.-H.L.: Computational Complexity. Oxford University Programming Laboratory (1999) Available via DIALOG http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.27.3433&rep=rep1&type=pdf. Accessed 10 June 2015
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Reus, B. (2016). Complexity Classes. In: Limits of Computation. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-27889-6_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-27889-6_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-27887-2
Online ISBN: 978-3-319-27889-6
eBook Packages: Computer ScienceComputer Science (R0)