330 likes | 427 Views
Time Complexity. We use a multitape Turing machine We count the number of steps until a string is accepted We use the O(k) notation. Example:. Algorithm to accept a string :. Use a two-tape Turing machine Copy the on the second tape Compare the and. Time needed:.
E N D
Time Complexity • We use a multitape Turing machine • We count the number of steps until • a string is accepted • We use the O(k) notation COMP 335
Example: Algorithm to accept a string : • Use a two-tape Turing machine • Copy the on the second tape • Compare the and COMP 335
Time needed: • Copy the on the second tape • Compare the and Total time: COMP 335
For string of length time needed for acceptance: COMP 335
Language class: A Deterministic Turing Machine accepts each string of length in time COMP 335
In a similar way we define the class for any time function: Examples: COMP 335
Example: The membership problem for context free languages (CYK - algorithm) Polynomial time COMP 335
Theorem: COMP 335
Polynomial time algorithms: Represent tractable algorithms: For small we can compute the result fast COMP 335
The class for all • Polynomial time • All tractable problems COMP 335
CYK-algorithm COMP 335
Exponential time algorithms: Represent intractable algorithms: Some problem instances may take centuries to solve COMP 335
Example: the Hamiltonian Problem s t Question: is there a Hamiltonian path from s to t? COMP 335
s t YES! COMP 335
A solution: search exhaustively all paths L = {<G,s,t>: there is a Hamiltonian path in G from s to t} Exponential time Intractable problem COMP 335
Example: The Satisfiability Problem Boolean expressions in Conjunctive Normal Form: Variables Question: is expression satisfiable? COMP 335
Example: Satisfiable: COMP 335
Example: Not satisfiable COMP 335
For variables: exponential Algorithm: search exhaustively all the possible binary values of the variables COMP 335
Non-Determinism Language class: A Non-Deterministic Turing Machine accepts each string of length in time COMP 335
Example: Non-Deterministic Algorithm to accept a string : • Use a two-tape Turing machine • Guess the middle of the string • and copy on the second tape • Compare the two tapes COMP 335
Time needed: • Use a two-tape Turing machine • Guess the middle of the string • and copy on the second tape • Compare the two tapes Total time: COMP 335
In a similar way we define the class for any time function: Examples: COMP 335
The class for all Non-Deterministic Polynomial time COMP 335
The satisfiability problem Example: Non-Deterministic algorithm: • Guess an assignment of the variables • Check if this is a satisfying assignment COMP 335
Time for variables: • Guess an assignment of the variables • Check if this is a satisfying assignment Total time: COMP 335
Observation: Deterministic Polynomial Non-Deterministic Polynomial COMP 335
Open Problem: WE DO NOT KNOW THE ANSWER COMP 335
Open Problem: Example: Does the Satisfiability problem have a polynomial time deterministic algorithm? WE DO NOT KNOW THE ANSWER COMP 335