An Overview of Complexity Theory

  • Milad Avazbeigi
Part of the Contributions to Management Science book series (MANAGEMENT SC.)


Computational complexity theory (Shortly: Complexity Theory) has been a central area of theoretical computer science since its early development in the mid-1960s. Its subsequent rapid development in the next three decades, has not only established it as a rich, exciting theory, but also has shown strong influence on many other related areas in computer science, mathematics, and operation research (Du and Ko 2000). However, the notions of algorithms and complexity are meaningful only when they are defined in terms of formal computation models (Du and Ko 2000).

Apparently, we need some models to base the foundation of complexity theory on them. In this chapter, we introduce only three basic models: deterministic turing machine (DTM), non-deterministic turing machine (NTM) and Oracle machine models. It should be noted there are also some other models (see Du and Ko 2000).

Using such models, allows us to separate the complexity notion from any physical machine. Hence, we can measure the time complexity of algorithms and hardness of problems independent from a specific machine which runs the algorithm(s). It should be noted that these are just abstract models; means, are defined mathematically (Sipser 1996).

The structure of this chapter is as follows. We first discuss why we actually need complexity theory. Then, we introduce three basic models of computation: DTM and NTM and Oracle model. Then we present a brief introduction about the concept of big O notation which is widely used in the complexity theory. In Sect. 2.5, the decision problems as a special form of problems are described. Following this section, the basic concepts of reduction are presented, which help us to make relationships between different classes of complexity and also provide a rich tool to identify the unknown complexity class of a new problem. Finally, we introduce the most popular classes of complexity: P> , NP, NP-complete and NP-hard. In each class, also, some known problems are presented.


Polynomial Time Decision Problem Turing Machine Travel Salesman Problem Travel Salesman Problem 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Agrawal M, Kayal N, Saxena N (2004) PRIMES is in P. Ann Math 160(2):781–793CrossRefGoogle Scholar
  2. Ahuja RK, Magnanti TL, Orlin JB (1993) Network flows: theory, algorithms, and applications. Prentice-Hall, Englewood Cliffs, NJ. ISBN: 013617549XGoogle Scholar
  3. Brassard G, Bratley P (1988) Algorithmics theory and practice. Prentice-Hall, Englewood Cliffs, NJGoogle Scholar
  4. Cook S (1971) The complexity of theorem-proving procedures. Proceedings of the third annual ACM symposium on theory of Computing, pp 151–158Google Scholar
  5. Daskin MS (1995) Network and discrete location models: Algorithms, and applications. Wiley, New YorkCrossRefGoogle Scholar
  6. Du D, Ko K (2000) Theory of computational complexity. Wiley, New YorkGoogle Scholar
  7. Garey MR, Johnson DS (1979) Computers and intractability: A guide to the theory of NP-completeness. W.H. Freeman, San Francisco, CAGoogle Scholar
  8. Karp RM (1972) Reducibility among combinational problems. In: Miller R, Thatcher J (eds) Complexity of computer computations. Plenum Press, New York, pp 86–103Google Scholar
  9. Kozen, DC (2006) Theory of computation. Springer-Verlag, BerlinGoogle Scholar
  10. Martin JC (1996) Introduction to languages and the theory of computation. McGraw-Hill, New YorkGoogle Scholar
  11. Papadimitriou CH (1994) Computational complexity. Addison-Wesley, Reading, MAGoogle Scholar
  12. Papadimitrious CH, Steiglits K (1982) Combinatorial optimization: Algorithms and complexity. Prentice-Hall, Englewood Cliffs, NJGoogle Scholar
  13. Sahni S, Horowitz E (1978) Combinational problems: Reducibility and approximation. Oper Res 26:718–759CrossRefGoogle Scholar
  14. Sipser M (1996) Introduction to the theory of computation. Preliminary Edition. PWS PublishingGoogle Scholar
  15. Sipser M (1997) Introduction to the theory of computation. PWS PublishingGoogle Scholar
  16. Turing A (1936) On computable numbers with an application to the entscheidnungs problem. Proc Lond Math Soc ser 2, 42:230–265Google Scholar
  17. Wood D (1987) Theory of computation. Wiley, New YorkGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  1. 1.Department of Industrial EngineeringAmirkabir University of TechnologyTehranIran

Personalised recommendations