Theory of Computation Notes | B.Sc. (Computer Science) Semester 3 | Mumbai University | munotes
Official Notes munotes.in
Theory of Computation
B.SC. (COMPUTER SCIENCE) · SEMESTER 3
Strictly as per the University of Mumbai NEP syllabus in force for B.Sc. (Computer Science)
For B.Sc. (Computer Science) students of the University of Mumbai and all its affiliated colleges
Open the book ↓munotes.in Second Year
Contents
Module I Introduction to Theory of Computation, Automata Theory, Formal Languages, Regular Languages and Context Free Languages
- What This Subject Is About, and the Four Questions It Answers 1
- Sets: The Vocabulary Everything Else Is Written In 6
- Alphabets, Strings and Languages 11
- Relations, and the Equivalence Relation That Runs Through This Subject 16
- Functions: What the Transition Function Actually Is 21
- Proof Techniques: Five Ways to Be Sure 25
- Counting the Uncountable: Diagonalisation, and Why Some Languages Have No Machine 30
- What an Automaton Is 35
- The Deterministic Finite Automaton, Formally 40
- Transitions and Their Properties: the Function, the Table and the Diagram 44
- The Extended Transition Function: What a Machine Does to a Whole String 49
- Acceptability: When a Machine Accepts a String, and What Language It Accepts 53
- Designing a DFA: the Method, and Eight Machines Built With It 58
- Nondeterminism, and the Nondeterministic Finite Automaton 64
- Empty Moves, and the Epsilon Closure 69
- DFA and NDFA Equivalence: the Subset Construction 74
- Removing the Empty Moves 80
- Mealy and Moore Machines: a Machine That Writes 84
- Converting a Moore Machine to a Mealy Machine, and Back 88
- Minimizing Automata: the Partition Method 93
- The Myhill Nerode Theorem, and a Second Way to Prove a Language Not Regular 99
- What a Grammar Is 105
- Derivations: How a Grammar Makes a String 110
- The Language Generated by a Grammar, and Proving It Is the One You Claim 115
- Writing a Grammar for a Language You Are Given 120
- The Chomsky Classification of Grammars and Languages 126
- Recursive and Recursively Enumerable Sets 132
- Operations on Languages 137
- Languages and Automata: Which Machine Goes With Which Grammar 144
- Regular Grammar: the Right Linear and Left Linear Forms 149
- Regular Expressions 154
- The Identities of Regular Expressions 159
- Writing a Regular Expression for a Language You Are Given 164
- From a Regular Expression to a Finite Automaton 170
- From a Finite Automaton to a Regular Expression: Arden's Theorem and State Elimination 175
- The Pumping Lemma for Regular Languages 181
- Applications of the Pumping Lemma 187
- Closure Properties of the Regular Languages 193
- The Decision Problems of the Regular Languages 199
- Regular Sets and Regular Grammar: Kleene's Theorem Assembled 204
- Context Free Grammars and Context Free Languages 209
- The Derivation Tree 214
- Leftmost and Rightmost Derivations 219
- Ambiguity of a Grammar 223
- Simplifying a Grammar, One: Useless Symbols 228
- Simplifying a Grammar, Two: Null Productions 233
- Simplifying a Grammar, Three: Unit Productions, and the Reduced Grammar 238
- Chomsky Normal Form 243
- Greibach Normal Form 248
- The Pumping Lemma for Context Free Languages 254
- Closure Properties and Decision Problems of the Context Free Languages 261
Module II Pushdown Automata, Linear Bound Automata, Turing Machines, and Computability and Complexity
- The Pushdown Automaton 268
- Instantaneous Descriptions and Moves 274
- Acceptance by a PDA: by Final State and by Empty Stack 279
- Designing a PDA: the Balanced Languages 284
- Designing a PDA: Palindromes, and Counting Two Things at Once 289
- The Deterministic Pushdown Automaton 295
- From a Context Free Grammar to a Pushdown Automaton 300
- From a Pushdown Automaton to a Context Free Grammar 305
- The Linear Bounded Automaton Model 310
- Linear Bounded Automata and the Context Sensitive Languages 315
- The Turing Machine 320
- Representations of a Turing Machine 325
- Acceptability by a Turing Machine: Accept, Reject and Loop 330
- Designing and Describing a Turing Machine 335
- Turing Machine Construction: Machines That Recognise 340
- Turing Machine Construction: Machines That Compute 345
- Variants of the Turing Machine: More Tapes, More Tracks, More Heads 350
- Variants of the Turing Machine: Nondeterministic, Offline, and the Enumerator 355
- Recursive and Recursively Enumerable Languages 360
- Decidable and Undecidable, and What the Complement Tells You 364
- The Church Turing Thesis 368
- The Universal Turing Machine 373
- The Halting Problem 378
- Reduction: Proving a Second Problem Unsolvable 383
- Rice's Theorem 388
- The Post Correspondence Problem, and the Undecidable Problems of Grammars 393
- Time Complexity 398
- Space Complexity 403
- Big O Notation, and the Family Around It 408
- Class P 413
- Class NP, and the Certificate 418
- Polynomial Reductions 423
- NP Complete and NP Hard, and Cook's Theorem 429
- Proving a Problem NP Complete: Three Reductions Worked 435
- Complexity Hierarchies, and the P Against NP Question 441
- The Machines and the Grammars, Side by Side 446
The chapters
Every chapter of this book comes with the B.Sc. (Computer Science) Semester 3 notes.
The cover and the contents are free to look through. Buy the notes once to read every chapter of every subject in this semester.
Notes + practical solutions + solved papers: ₹798 Already bought it? Sign in
Or notes + practical solutions: ₹499
Or solved papers only: ₹499
Free either way: question papers, the syllabus, and the cover and contents of every book.
The rest of this subject
These notes are cut from the University's printed syllabus. Open the syllabus itself, or the past papers, for the same subject.