Last update : 16.10.2005


Lecture course ck3w3071
Logical Complexity
Blok 1, 12.09.2005 - 11.11.2005


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 (Wilco Moerman): students whose name begins with A-K. Monday, 15:15-17:00, Ruppert 135. Thursday, 13:15-15:00, Ruppert 129.
WG2 (Rinke Colen): all other students. Monday, 15:15-17:00, Ruppert 117. (Oct. 24 Ruppert 102.) Wednesday, 13:15-15:00, Ruppert 129.

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. (Section 1.1.)

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.

Lecture 3: Regular expressions. Converting a regular expression into a finite automaton. Examples of non-regular languages. Pumping lemma.

Lecture 4: 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: Probabilistic computation. Class BPP. Amplification theorem. Calculating modulo n. Euclid algorithm. Invertible elements in Zn. Calculating the inverse. Chinese remainder theorem. Fermat's little theorem. we are now here!

Lecture 13: Euler function, Euler theorem. Pseudoprimality. Probabilistic test of pseudoprimality. Miller-Rabin primality test.

Lecture 14: Cryptography. One-time pad cryptosystem. Public key criptosystems. RSA system. Electronic signatures in RSA.


Exercises and homework
  1. Class: 1.1, 1.2, 1.3, 1.4(abcfi),
    Inleveropgave
  2. Class: 1.5(ab), 1.8(a), 1.9, 1.10, 1.14(b), 1.15(ab), 1.17(a)
    Inleveropgave: 1.12 (a), 1.17(b)
  3. Class: 1.23(ab), 2.1, 2.2(a), 2.3, 2.4(a,b,c), 2.10, 2.13; Opgaven 1-3 van problem set 1.
    Inleveropgave: 2.4(e) (nieuwe editie boek) of 2.4 (f) (oude editie); opgave 4 van problem set 1.
  4. Class: Opgaven 8-16 van problem set 1, except for 12. An additional problem: prove that every context-free language is decidable.
    Inleveropgave: opgave 12.
  5. Class: Opgaven 1,2,4,5,6,7 van problem set 3.
    Inleveropgave: 3,8 from problem set 3.
  6. Class: Opgaven 2-9 van Computational complexity 3.
    Inleveropgave: Problem 2 from Computational Complexity 3.
  7. 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