Skip to content
lectern.tv
MIT18.404JTheory & Algosundergraduate· 2020

Theory of Computation

Michael Sipser

Michael Sipser's definitive course on finite automata, context-free grammars, Turing machines, decidability, reducibility, time and space complexity, NP-completeness, and interactive proofs.

Start Lecture 122 lectures · 28h total
Syllabus progress0 of 22 watched
MIT 18.404J: Theory of Computation

Syllabus

22
Lecture 1· 1:00:34

Introduction, Finite Automata, Regular Expressions

This inaugural lecture for MIT's Theory of Computation course introduces finite automata, regular languages, and regular expressions. It formally defines these concepts and proves closure properties for regular languages under union and concatenation.

Lecture 2· 1:03:27

Nondeterminism, Closure Properties, Conversion of Regular Expressions to FA

This lecture introduces Nondeterministic Finite Automata (NFAs), proving their equivalence to Deterministic Finite Automata (DFAs) and demonstrating the closure properties of regular languages under concatenation and Kleene star. It concludes with methods for converting regular expressions into NFAs.

Lecture 3· 1:10:02

Regular Pumping Lemma, Conversion of FA to Regular Expressions

This lecture elaborates on the Regular Pumping Lemma as a proof technique for non-regular languages. It also covers the formal methods for converting deterministic finite automata (DFAs) into equivalent regular expressions.

Lecture 4· 1:09:22

Pushdown Automata, Conversion of CFG to PDA and Reverse Conversion

This lecture introduces Pushdown Automata (PDA) and establishes the equivalence between Context-Free Grammars (CFG) and PDAs through detailed conversion algorithms. It covers the formal definition of PDAs and demonstrates the transformation process.

Lecture 5· 1:13:59

CF Pumping Lemma, Turing Machines

This lecture proves the Context-Free Language Pumping Lemma, demonstrating its utility in classifying languages that are not context-free. It then formally introduces Turing Machines, including the definition of deciders.

Lecture 6· 1:14:49

TM Variants, Church-Turing Thesis

This lecture examines the equivalence of various Turing machine variants to the single-tape model, establishing the robustness of the computational paradigm. It then articulates the Church-Turing Thesis, positing the fundamental equivalence of Turing machines to all effective algorithms.

Lecture 7· 1:16:51

Decision Problems for Automata and Grammars

This lecture details the decidability of various problems concerning automata and grammars, laying foundational concepts in computational theory. It further introduces the T-recognizability of the acceptance problem for Turing Machines.

Lecture 8· 1:17:02

Undecidability

This lecture, part of MIT's advanced course in Theory of Computation, rigorously demonstrates the undecidability of the Acceptance Problem and the Halting Problem for Turing Machines, utilizing both Cantor's diagonalization method and the technique of reducibility.

Lecture 9· 1:16:37

Reducibility

This lecture delves into the reducibility method for proving undecidability and T-unrecognizability, defining mapping reducibility. It demonstrates the undecidability and T-unrecognizability of the emptiness problem for Turing Machines.

Lecture 10· 1:21:41

Computation History Method

The session introduces configurations and computation histories, applying the computation history method to prove undecidability. It shows that the acceptance problem for LBA is decidable, while emptiness for LBA, PCP, and ALL for CFG are undecidable.

Lecture 11· 1:17:32

Recursion Theorem and Logic

This lecture explores self-reference and the recursion theorem, presenting various applications. It also sketches Gödel’s first incompleteness theorem, connecting computability to mathematical logic.

Lecture 12· 1:25:37

Time Complexity

This lecture introduces complexity theory, defining TIME(t(n)) complexity classes and the class P. It examines model-dependence for reasonable complexity models and demonstrates that PATH is in P.

Lecture 13· 1:19:23

P and NP, SAT, Poly-Time Reducibility

The lecture defines NTIME(t(n)) classes and NP, proving COMPOSITES is in NP. It discusses the P vs. NP problem, establishes that CFG acceptance is in P, and introduces SAT and polynomial-time reducibility.

Lecture 14· 1:25:53

NP-Completeness

This session covers NP-completeness, focusing on SAT and 3SAT. It details a strategy for proving NP-completeness through reduction from 3SAT using gadget construction to simulate variables and clauses.

Lecture 15· 1:18:27

Cook-Levin Theorem

This lecture provides a proof of the fundamental Cook-Levin Theorem, establishing that SAT is NP-complete. It also rigorously demonstrates the NP-completeness of 3SAT.

Lecture 16· 1:20:10

Space Complexity, PSPACE, Savitch's Theorem

The lecture introduces space complexity, defining SPACE(f(n)), NSPACE(f(n)), PSPACE, and NPSPACE. It proves TQBF is in PSPACE and analyzes LADDER for DFA in NSPACE(n) and SPACE(n^2).

Lecture 17· 1:17:36

PSPACE-Completeness

This session proves Savitch’s Theorem, showing NSPACE(f(n)) is a subset of SPACE(f^2(n)). It further establishes PSPACE-completeness and proves that TQBF is PSPACE-complete.

Lecture 18· 1:19:38

Games, Generalized Geography

This lecture explores the connection between games and quantifiers, defining the formula game. It proves generalized geography is PSPACE-complete and introduces log space classes L and NL, defining the configuration graph.

Lecture 19· 1:20:06

L and NL, NL = coNL

This lecture reviews log space, demonstrating NL is a subset of SPACE(log^2n) and P. It introduces log-space transducers, defines NL-completeness, proves PATH is NL-complete, and covers the Immerman-Szelepcsényi theorem (NL = coNL).

Lecture 20· 1:21:57

Hierarchy Theorems

The lecture concludes the Immerman-Szelepcsényi theorem (NL = coNL) and proceeds to introduce and prove the time and space hierarchy theorems. It discusses their application in separating various complexity classes.

Lecture 21· 1:22:50

Provably Intractable Problems, Oracles

This session introduces exponential complexity classes and presents a “natural” provably intractable problem. It explores oracles and relativized computation, suggesting limitations of diagonalization for separating P and NP.

Lecture 22· 1:23:41

Probabilistic Computation, BPP

The lecture defines probabilistic Turing machines and the class BPP, sketching the amplification lemma. It introduces branching programs and read-once branching programs, starting the proof that EQ for ROBP is in BPP via the arithmetization method.