← back to reading

πŸ”€ Theory of Computation

Based on Maheshwari & Smid, "Introduction to Theory of Computation", licensed CC BY-SA 4.0.

What can be computed, how fast, and how do we prove it? Finite automata to NP-completeness, translated into runnable code and diagrams.

q0 q1 q2 a b b a,b A finite automaton: states, transitions, one accepting state.
Chapter
1. Finite Automata Five components define a machine that reads input and accepts or rejects πŸ”€
2. Nondeterminism Multiple paths at once, epsilon jumps, and the subset construction that removes them πŸ”€
3. Regular Expressions A pattern language exactly as powerful as finite automata, plus a pumping lemma to prove limits πŸ”€
4. Context-Free Grammars Production rules, parse trees, and the grammars behind every programming language πŸ”€
5. Pushdown Automata A finite automaton with a stack, exactly as powerful as context-free grammars πŸ”€
6. Turing Machines An infinite tape, a head, and states: the simplest model of general computation πŸ”€
7. Decidability Some problems have no algorithm: the halting problem and diagonalization πŸ”€
8. Complexity P, NP, and the million-dollar question of whether brute force can always be beaten πŸ”€

πŸ“Ί Video lectures: MIT 6.045J Automata, Computability, and Complexity

Neighbors