Last update : 4.11.2004


Lecture course WB3B3071
Logical Complexity
Blok 1, 30.08.2004 - 12.11.2004


Official textbook
Michael Sipser, Introduction to the theory of computation,
PWS Publishing Company, Boston, 1997.

Same course for the previous year


Rooster is here.
WG1 (Gido van der Star): students whose name begins with A-K. Thursday, 11:00-12:45, Ruppert 115. (een keer per week)
WG2 (Willem Heijltjes): all other students. Monday, 15:15-17:00, Ruppert 116; Thursday 11:00-12:45, Ruppert 116. (twee keer per week)

Tentamen en tussentoets: open boek (1-2 theoretische vragen, 4-5 opgaven)

Bijdragen tot het eindcijfer (aangepast):


Announcements
Approximate plan of the course (changes possible)

Lecture 1: Finite automata. Language recognized by an automaton. Closure of regular languages under union, intersection, complement (cartesian product construction). Operations concatenation and star. (Sections 1.1 and 1.2 until Page 53.)

Lecture 2: Non-deterministic automata. Computation trees. Converting a non-deterministic automaton into a deterministic one. Subset construction. Closure of the class of regular languages under concatenation and star. Regular expressions. Converting a regular expression into a finite automaton.

Lectures 3-4: Examples of non-regular languages. Pumping lemma. Context-free grammars and languages. Regular languages are context-free. Pushdown automata. (Pages 91-97, 101-106.)

Lecture 5: Turing machines. Computable (partial) functions. Acceptors and Deciders. Decidable and r.e. languages. (Section 3.1)

Lecture 6: Encoding computational problems as languages. Famous undecidable problems: Entscheidungsproblem, solvability of Diophantine equations. Computable encoding of pairs and sequences of numbers. Characterizations of decidable and r.e. languages. (Theorem 3.13, p. 141.)

Lecture 7: Universal Turing machine. Undecidability of the halting problem (with a proof).

Lecture 8: Time and space complexity measures. Big O, small o notation. Complexity classes. Estimating the complexity of some algorithms. Class P. Euclid algorithm.

Lecture 9: Encoding of graphs and other objects. Class NP. Examples of problems from NP: SAT, HAMPATH, CLIQUE. Equivalent characterizations of NP.

Lecture 10: P-reducibility. NP-completeness. P-reduction of 3SAT to CLIQUE. Cook-Levin Theorem (NP-completeness of SAT).

Lecture 11: Class PSPACE. Savitch theorem. TQBF problem. PSPACE-completeness of TQBF. P-reduction of TQBF to Generalized Geography.

Lecture 12: Cryptography. One-time pad cryptosystem. Calculating modulo n. Euclid algorithm. Invertible elements in Zn. Calculating the inverse.

Lecture 13: Euler function. Euler theorem and Fermat's little theorem. Pseudoprimality. Probabilistic test of pseudoprimality. Miller-Rabin primality test.

Lecture 14: Public key criptosystems. RSA system. Electronic signatures in RSA.


Exercises and homework
  1. Class: 1.1, 1.2, 1.3, 1.4(abcfi),
    Inleveropgave:
    Design a DFA that recognises all strings with an uneven number of 0's or ending in two 1's. For example, it should recognise "01011", "1110" and "0", but not "00", "1001" or the empty string.

  2. Class: 1.5(ab), 1.8(ab), 1.9, 1.10, 1.12(a), 1.14(a), 1.15(abc)

  3. Class: 1.17(ac), 1.23(ab), 1.24
    Inleveropgave: 1.17(b)

  4. Class: 2.1, 2.3, 2.4, 2.5, (2.15)

  5. Class: Opgaven 1-9 van problem set 1.

  6. Class: Opgaven 1,2,4,5,6,7 van problem set 3.
    Inleveropgave: 3,8 from problem set 3.

  7. Class: Opgaven 2-9 van Computational complexity 3.
    Inleveropgave: Problem 2 from Computational Complexity 3.

  8. Class: Opgaven 1,2,4,5,6,7 van Cryptography.


SYLLABUS

Part 1. Basic formal language theory

Part 2. Basic computation theory

Part 3. Basic complexity theory


Part 4. Elements of cryptography