Summary: Complexity Classes
Michael C. Loui
University of Illinois at Urbana-Champaign
Kenneth W. Regan
State University of New York at Buffalo
The purposes of complexity theory are to ascertain the amount of computational resources required
to solve important computational problems, and to classify problems according to their difficulty.
The resource most often discussed is computational time, although memory (space) and circuitry (or
hardware) have also been studied. The main challenge of the theory is to prove lower bounds, i.e.,
that certain problems cannot be solved without expending large amounts of resources. Although
it is easy to prove that inherently difficult problems exist, it has turned out to be much more
difficult to prove that any interesting problems are hard to solve. There has been much more
success in providing strong evidence of intractability, based on plausible, widely held conjectures.
In both cases, the mathematical arguments of intractability rely on the notions of reducibility and
completeness--which are the topics of Chapter 23. Before one can understand reducibility and
completeness, however, one must grasp the notion of a complexity class--and that is the topic of