Final Exam Topics Topic Text Chapter -------------------- ------------- Introduction...................... 0 (covered lightly) Regular Languages................. 1 Finite Automata................. 1.1 Nondeterminism.................. 1.2 Regular Expressions............. 1.3 Nonregular Languages............ 1.4 Context-Free Languages............ 2 Context-Free Grammars........... 2.1 Pushdown Automata............... 2.2 Formal definition of a pushdown automaton Examples of pushdown automata Equivalence with CFGs Non-context-free Languages...... 2.3 The Church-Turing Thesis.......... 3 Turing Machines................. 3.1 Formal definition of a Turing Machine Examples of Turing Machines --------------- material above was on midterm ---------- Variants of Turing Machines..... 3.2 The Definition of Algorithm..... 3.3 Hilbert's problems Terminology for describing Turing Machines Decidability...................... 4 Decidable Languages............. 4.1 Decidability problems for regular languages Decidability problems for context free languages The Halting Problem............. 4.2 The diagonalization method The halting problem is undecidable A Turing-unrecognizable language Reducibility...................... 5 Undecidable problems from Language Theory 5.1 Reductions via computation histories A Simple Undecidable Problem.... 5.2 Mapping Reducibility............ 5.3 Computable functions Formal definition of mapping reducibility Time Complexity................... 7 Measuring complexity............ 7.1 Big-O & little-o notation Analyzing algorithms Complexity relationships among models The Class P..................... 7.2 The Class NP.................... 7.3 Examples of NP problems P versus NP NP-completeness................. 7.4 Polynomial time reducibility Definition of NP-completeness The Cook-Levin theorem Additional NP-complete Problems. 7.5 Space Complexity.................. 8 Savitch's Theorem............... 8.1 The Class PSPACE................ 8.2 PSPACE-completeness............. 8.3 The TQBF problem The following is a list of Exercises and Problems from the text like the ones that may appear on exams, possibly in slightly altered forms. Some have been assigned as homework. Only very simple questions will be asked about algorithms that grow rapidly in complexity (such as converting an NFA to the equivalent DFA). Chapter 0 Exercises (pages 25-27): 0.4 0.5 0.6 Chapter 1 Know that regular languages are closed under union, concatenation, star, intersection, complement, and reversal. Know how to use the Pumping Lemma and/or (Prob. 1.52) pairwise distinguishability to prove non-regularity Exercises (pages 83-88): 1.4 1.5 1.6 1.7 1.8, 9, 10 1.11 1.12 1.14a 1.16 NFA --> DFA 1.18 1.19 RE --> NFA 1.21 DFA --> RE 1.28 RE --> NFA 1.29 Problems (pages 88-93) 1.31 1.32 1.34 1.35 1.36 1.46 1.51 1.52 (know the results) 1.54a (special version of pumping lemma: pump between 1 and p+1) 1.60 Chapter 2 Know that context-free languages are closed under union, concatenation, and star (but not intersection or complement), also the intersection of a regular language and a context-free language is context-free. Know how to use the Pumping Lemma for CFL's to prove a language is not context-free. Exercises (pages 128-129): 2.1 2.2 2.3 2.4 2.6a 2.8 (simple example of ambiguity) 2.9 2.10 2.14 2.16 2.17 Problems (pages 130-132) 2.18 2.26 2.27 2.30 2.31 2.32 2.35 Chapter 3 Know the formal and informal definitions of Turing Machines and know what the Church-Turing Thesis says. Know how to specify a configuration of a Turing Machine. Exercises (pages 159-160): 3.1 3.2 3.3 3.5 3.7 3.8 -------------- problems above were on midterm ---------- Problems (pages 160-162) 3.15 3.16 3.21 Chapter 4 Know about the decidability of the problems "A" (Acceptance problem: does M accept w?), "E" (Empty problem: is L(M) empty?), and "EQ" (EQuality problem: is L(M1) = L(M2)?) for FA's, CFG's, TM's, and LBA's (which is actually in Chapter 5 pages 193-197). Know the results of Thm 4.22 and Cor. 4.23. Exercises (pages 182-183): 4.2 4.3 4.6 4.8 Problems (pages 183-184) 4.10 4.12 4.13 4.19 4.24 4.28 Chapter 5 Know the "real" Halting Problem Thm 5.1 and other undecidable problems from language theory. Know about computation histories and results on linear bounded automata. Know _that_ the Post Correspondence Problem and Hilbert's 10th Problem (in Chapter 4) are undecidable non-automaton problems. Know what mapping reducibility is and how it can be used to prove decidability and undecidability. Exercises (page 211): 5.1 5.5 5.6 5.7 Problems (pages 211-214) 5.15 5.17 5.28 (Rice's Theorem) 5.30 (applications of Rice's Theorem) Chapter 7 (skipped Chapter 6) Know the results of Theorems 7.8 and 7.11. Know the definitions of P, NP, and NP-complete (also NP-hard). Know the examples covered in class from each of these classes. Know the result of theorem 7.20. Know what polynomial time reducibility is (Def. 7.29). Exercises (pages 294-295): 7.1 7.2 7.4 7.5 7.6 7.7 7.9 7.11 Problems (pages 211-214) 7.12 7.14 7.15 7.20a 7.33 (just the def. of NP-hard & D is an example) Chapter 8 (just Sections 8.1, 8.2, and first part of 8.3) Know the definitions of SPACE(f(n)) and NSPACE(f(n)), and the result of Savitch's Theorem. Know the definitions of PSPACE and NPSPACE (and that they are equal by Savitch's Theorem). Know the relationships shown in Figure 8.7. Know the definition of PSPACE-complete, PSPACE-hard, and the fact that the TQBF problem is PSPACE-complete (where TQBF = {| phi is a True fully Quantified Boolean Formula} ) No Exercises or Problems from this chapter.