Complexity Theory

#complexity-theory

Why?

To classify problems/languages by the amount of "computational resources" required to solve them. These resources are:

  • Time
  • Space (memory requirement)
  • Non-determinism

Notation, Vocabulary, ....

Definition

Let M be a Turing machine with alphabet Σ, and let g:NN. We say M runs in time g if, for all but finitely many strings xΣ , any run of M on input x halts within at most g(|x|) steps. Similarly, M runs in space g if M always terminates and, for all but finitely many strings xΣ , any run of M on input x uses at most g(|x|) squares on any of its work-tapes.

Definition (TIME)

Let L be a language over some alphabet, and let g:NN be a function. We say that L is in Time(g) if there exists a deterministic Turing machine M recognising L such that M runs in time g.

If there is a polynomial time algorithm for the language then we also have a polynomial time algorithm for it's complement (flip the outputs !!). Thus coP=P

Definition (NTIME)

Let L be a language over some alphabet, and let g:NN be a function. We say that L is in NTime(g) if there exists a Turing machine M (possibly non-deterministic) recognising L such that M runs in time g.

If a language is in NPTIME then:

Consider SAT, if a formula is not satisfiable then no certificate can exist that verifies the SAT problem. Alternatively, if a formula is satisfiable some certificate can exist that verifies it. Thus, SAT is canonically related to NPTIME

NP coNP
SAT TAUTOLOGY
Is ϕ satisfiable? Is ϕ always true?
verifiable certificate y of the fact (YES) verifiable certificate y of negation of the the fact (NO)
Definition (SPACE)

Let L be a language over some alphabet, and let g:NN be a function. We say that L is in Space(g) if there exists a deterministic Turing machine M recognising L such that M runs in space g.

Definition (NSPACE)

Let L be a language over some alphabet, and let g:NN be a function. We say that L is in NSpace(g) if there exists a Turing machine M (possibly non-deterministic) recognising L such that M runs in space g.

Linear "Speed-Up" Theorems

  • Theorem: Let f:NN be a function and c>0. Then TIME(f(n))TIME(cf(n)+n).
  • Theorem: Let f:NN be a function and c>0. Then SPACE(f(n))SPACE(cf(n)).


Inclusions

Configuration Graphs of Turning Machines

Let M be a K-tape Turing machine K,Σ,Q,q0,T and suppose that the maximum amount of space used on any work-tape, for an input of size n is s(n).