Time Complexity

advertisement
Time Complexity
Fall 2006
Costas Busch - RPI
1
Consider a deterministic Turing Machine M
which decides a language L
Fall 2006
Costas Busch - RPI
2
For any string w the computation of M
terminates in a finite amount of transitions
Initial
state
Fall 2006

Accept
or Reject w
Costas Busch - RPI
3
Decision Time = #transitions
Initial
state
Fall 2006

Accept
or Reject w
Costas Busch - RPI
4
Consider now all strings of length
TM (n )
Fall 2006
n
= maximum time required to decide
any string of length n
Costas Busch - RPI
5
TIME
TM (n )
1
2
3
4

n

STRING LENGTH
Max time to accept a string of length
Fall 2006
Costas Busch - RPI
n
6
Time Complexity Class: TIME (T (n ))
All Languages decidable by a
deterministic Turing Machine
in time O (T (n ))
L1
L2
L3
Fall 2006
Costas Busch - RPI
7
Example:
L1  {a b : n  0}
n
This can be decided in O (n ) time
TIME (n )
L1  {a b : n  0}
n
Fall 2006
Costas Busch - RPI
8
Other example problems in the same class
TIME (n )
L1  {a n b : n  0}
{abn aba : n, k  0}
{b : n is even}
n
{b n : n  3k }
Fall 2006
Costas Busch - RPI
9
Examples in class:
TIME (n 2 )
{a b : n  0}
n
n
{ww R : w  {a , b }}
{ww : w  {a , b }}
Fall 2006
Costas Busch - RPI
10
Examples in class:
TIME (n )
3
CYK algorithm
L2  { G ,w : w is generated by
context - free grammar G }
Matrix multiplication
L3  { M1 , M2 , M3 : n  n matrices
and M1  M2  M3 }
Fall 2006
Costas Busch - RPI
11
Polynomial time algorithms:
TIME (n )
constant
k
k 0
Represents tractable algorithms:
for small k we can decide
the result fast
Fall 2006
Costas Busch - RPI
12
It can be shown: TIME (n k 1 ) TIME (n k )
TIME (n
k 1
)
TIME (n )
k
Fall 2006
Costas Busch - RPI
13
The Time Complexity Class
P
P 
k
TIME (n

k
)
0
Represents:
•polynomial time algorithms
•“tractable” problems
Fall 2006
Costas Busch - RPI
14
Class
P
{a b }
n
{a b }
n
n
{ww }
CYK-algorithm
Matrix multiplication
Fall 2006
Costas Busch - RPI
15
Exponential time algorithms:
nk
TIME (2 )
Represent intractable algorithms:
Some problem instances
may take centuries to solve
Fall 2006
Costas Busch - RPI
16
Example: the Hamiltonian Path Problem
s
t
Question: is there a Hamiltonian path
from s to t?
Fall 2006
Costas Busch - RPI
17
s
t
YES!
Fall 2006
Costas Busch - RPI
18
A solution: search exhaustively all paths
L = {<G,s,t>: there is a Hamiltonian path
in G from s to t}
nk
L TIME (n ! )  TIME (2 )
Exponential time
Intractable problem
Fall 2006
Costas Busch - RPI
19
The clique problem
Does there exist a clique of size 5?
Fall 2006
Costas Busch - RPI
20
The clique problem
Does there exist a clique of size 5?
Fall 2006
Costas Busch - RPI
21
Example: The Satisfiability Problem
Boolean expressions in
Conjunctive Normal Form:
t1  t2  t3    tk
clauses
ti  x1  x2  x3    x p
Variables
Question: is the expression satisfiable?
Fall 2006
Costas Busch - RPI
22
Example:
Satisfiable:
( x1  x2 )  ( x1  x3 )
x1  0, x2  1, x3  1
( x1  x2 )  ( x1  x3 )  1
Fall 2006
Costas Busch - RPI
23
Example:
( x1  x2 )  x1  x2
Not satisfiable
Fall 2006
Costas Busch - RPI
24
L  {w : expression w is satisfiable}
nk
L TIME (2 )
exponential
Algorithm:
search exhaustively all the possible
binary values of the variables
Fall 2006
Costas Busch - RPI
25
Non-Determinism
Language class:
NTIME (T (n ))
L1
L3
L2
A Non-Deterministic Turing Machine
decides each string of length n
in time O (T (n ))
Fall 2006
Costas Busch - RPI
26
Non-Deterministic Polynomial time algorithms:
k
L  NTIME(n )
Fall 2006
Costas Busch - RPI
27
The class
NP 
NP
NTIME (n

k
k
)
0
Non-Deterministic Polynomial time
Fall 2006
Costas Busch - RPI
28
Example:
The satisfiability problem
L  {w : expression w is satisfiabl e}
Non-Deterministic algorithm:
•Guess an assignment of the variables
•Check if this is a satisfying assignment
Fall 2006
Costas Busch - RPI
29
L  {w : expression w is satisfiabl e}
Time for n variables:
•Guess an assignment of the variables O(n)
•Check if this is a satisfying assignment O(n)
Total time:
Fall 2006
O(n)
Costas Busch - RPI
30
L  {w : expression w is satisfiabl e}
L  NP
The satisfiability problem is an NP - Problem
Fall 2006
Costas Busch - RPI
31
Observation:
P  NP
Deterministic
Polynomial
Fall 2006
Non-Deterministic
Polynomial
Costas Busch - RPI
32
Open Problem:
P  NP ?
WE DO NOT KNOW THE ANSWER
Fall 2006
Costas Busch - RPI
33
Open Problem:
P  NP ?
Example: Does the Satisfiability problem
have a polynomial time
deterministic algorithm?
WE DO NOT KNOW THE ANSWER
Fall 2006
Costas Busch - RPI
34
Download