Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 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.

Similar presentations


Presentation on theme: "1 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."— Presentation transcript:

1 1 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

2 2 Example: Algorithm to accept a string : Use a two-tape Turing machine Copy the on the second tape Compare the and

3 3 Copy the on the second tape Compare the and Time needed: Total time:

4 4 For string of length time needed for acceptance:

5 5 Language class: A Deterministic Turing Machine accepts each string of length in time

6 6

7 7 In a similar way we define the class for any time function: Examples:

8 8 Example: The membership problem for context free languages (CYK - algorithm) Polynomial time

9 9 Theorem:

10 10 Polynomial time algorithms: Represent tractable algorithms: For small we can compute the result fast

11 11 for all The class All tractable problems Polynomial time

12 12 CYK-algorithm

13 13 Exponential time algorithms: Represent intractable algorithms: Some problem instances may take centuries to solve

14 14 Example: the Hamiltonian Problem Question: is there a Hamiltonian path from s to t? s t

15 15 s t YES!

16 16 Exponential time Intractable problem A solution: search exhaustively all paths L = { : there is a Hamiltonian path in G from s to t}

17 17 Example: The Satisfiability Problem Boolean expressions in Conjunctive Normal Form: Variables Question: is expression satisfiable?

18 18 Satisfiable: Example:

19 19 Not satisfiable Example:

20 20 For variables: Algorithm: search exhaustively all the possible binary values of the variables exponential

21 21 Non-Determinism Language class: A Non-Deterministic Turing Machine accepts each string of length in time

22 22 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

23 23 Time needed: Total time: Use a two-tape Turing machine Guess the middle of the string and copy on the second tape Compare the two tapes

24 24

25 25 In a similar way we define the class for any time function: Examples:

26 26 Non-Deterministic Polynomial time algorithms:

27 27 for all The class Non-Deterministic Polynomial time

28 28 Example: The satisfiability problem Non-Deterministic algorithm: Guess an assignment of the variables Check if this is a satisfying assignment

29 29 Time for variables: Total time: Guess an assignment of the variables Check if this is a satisfying assignment

30 30 The satisfiability problem is an - Problem

31 31 Observation: Deterministic Polynomial Non-Deterministic Polynomial

32 32 Open Problem: WE DO NOT KNOW THE ANSWER

33 33 Example: Does the Satisfiability problem have a polynomial time deterministic algorithm? WE DO NOT KNOW THE ANSWER Open Problem:


Download ppt "1 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."

Similar presentations


Ads by Google