Midterm 3 Study Guide
This is not meant to be an exhaustive list of everything you need to know, but it is a good starting place.
- What is the formal definition of a Turing machine?
- Describe what a configuration for a Turing machine is.
- What are the possible outcomes of running a Turing machine on some input?
- When do we say a language is Turing-recognizable?
- When do we say that a language is decidable?
- Describe in fairly low detail Turing machines that decide “simple” problems (e.g. some regular languages or CFGs).
- What is a multi-tape Turing machine?
- Describe how we can simulate a multi-tape Turing machine with a single-tape Turing machine.
- What is a non-deterministic Turing machine?
- Describe how we can simulate a non-deterministic Turing machine via a multi-tape Turing machine.
- Describe how the string representation of a graph might be.
- Describe how the string representation of a Turing machine might be.
- Describe the acceptance, empty language and equivalent languages problems for DFAs, and show that the corresponding languages are decidable.
- Describe the acceptance, empty language and equivalent languages problems for CFGs. Show that the acceptance and empty language problems are decidable.
- Describe the languages \(A_\textrm{TM}\) and \(\textrm{HALT}_\textrm{TM}\). Show that they are undecidable (this is effectively the Halting Problem question).
- Show that if a language is both Turing-recognizable and co-Turing-recognizable, then it is decidable.
- Show that \(E_\textrm{TM}\) and \(\textrm{EQ}_\textrm{TM}\) are undecidable.
- Define the concept of mapping reducibility and computable functions.
- If \(A\leq_m B\), what statements can be made about when the decidability/undecidablity/Turing-recognizability/non-Turing-recognizability and so on of one language implies the same for the other?
- Show that \(\textrm{EQ}_\textrm{TM}\) is neither Turing-recognizable and co-Turing-recognizable.
- How do we define the time complexity of a decidable Turing-machine?
- What is the time complexity class \(\textrm{TIME}(t(n))\).
- What is the class \(P\)? Show examples of languages that are in \(P\).
- What is the class \(NP\)? Show examples of languages that are in \(NP\).
- Define polynomial-time reducibility.
- What problems are called \(NP\)-complete?
- Describe the problems SAT, 3SAT, CLIQUE, VERTEX-COVER, HAMPATH, 3COLOR, SUBSET-SUM.
- State the Cook-Levin theorem. Explain its significance.
- Show that 3SAT is polynomial time reducible to CLIQUE as well as to VERTEX-COVER. Use this to show these are NP-complete.