Coconote
AI notes
AI voice & video notes
Export note
Try for free
Introduction to Theory of Computation
Sep 17, 2024
Theory of Computation - Lecture 1
Introduction
Instructor: Raghunath Tewari
Overview of the course: Theory of Computation
Topics covered:
Introduction to computation
Basic model: Finite Automata
What is Computation?
Definition
: Step-by-step solution to a problem.
Examples
:
Multiplication of two numbers
: Use known algorithms to get the product.
Searching a word in a dictionary
:
Words are ordered alphabetically.
Reduce search base until the word is found.
Graph Reachability Problem
:
Given two vertices (s and t), determine if a path exists from s to t.
Use graph traversal algorithms (e.g., depth-first or breadth-first search).
Key Point
: Algorithms provide a method to answer computational questions.
Computational Devices
Various devices can compute solutions:
Calculator
: Performs basic arithmetic operations.
Smartphones
: Multifunctional computational devices.
Computer
: Popular computational device.
Pen and Paper
: Traditional computational device.
Focus of the Course
:
Study computational devices based on their resources, power, and limitations.
Explore which problems can/cannot be solved by these devices and provide mathematical proofs.
Finite Automata
Definition
: A computational model with a finite amount of memory (finite number of states).
Terminology
:
“Automata” is the plural of “automaton.”
Examples of Finite Automata
Electric Switch
:
States: ON and OFF
Transitions:
Push operation changes the state.
Odd pushes: ON, Even pushes: OFF.
Fan Regulator
:
States: OFF (0), Low (1), Medium (2), High (3)
Transitions:
Clockwise increases the state, Anticlockwise decreases it.
Example sequence of operations: CC AC CA → ends at state 2.
Mathematical Example: Binary Strings Divisible by 4
Set L
: Binary strings that are divisible by 4.
Key Insight
:
Strings in L must end with two zeros (00).
Other endings (01, 10, 11) indicate non-divisibility by 4.
Finite Automata Design
:
States represent last two bits of a binary number.
Accept state: 00 (indicating divisibility by 4).
State Transitions
:
Use last two bits to determine next state based on input.
Example transitions:
00 -> 01 (on seeing a 1), 00 -> 00 (on seeing a 0)
01 -> 11 (on seeing a 1), 01 -> 10 (on seeing a 0)
Example Strings
String 1
: 110 (not accepted)
Transitions: 0 0 → 0 1 → 1 1 → 1 0
String 2
: 1100 (accepted)
Transitions: 0 0 → 0 1 → 1 1 → 1 0 → 0 0
Conclusion
The lecture introduced basic concepts of computation and finite automata as a model.
Emphasized understanding through examples and mathematical foundations.
📄
Full transcript