720 likes | 1.04k Views
CSC312 Automata Theory Lecture # 1 Introduction. Administrative Stuff. Instructor: Dr. Mudasser Naseer mnaseer@ciitahore.edu.pk Cabin # 1, Faculty Room C7 Lectures: Sec-B: Wed 1630, Thu 1800 hrs. Sec-C: Wed 1800, Thu 1630 hrs. Office Hrs: Tue & Thu 1400 – 1600 hrs
E N D
CSC312 Automata Theory Lecture # 1 Introduction
Administrative Stuff • Instructor: Dr. Mudasser Naseer • mnaseer@ciitahore.edu.pk Cabin # 1, Faculty Room C7 • Lectures: Sec-B: Wed 1630, Thu 1800 hrs. • Sec-C: Wed 1800, Thu 1630 hrs. • Office Hrs: Tue & Thu 1400 – 1600 hrs • (or by appointment) • Prerequisite: CSC102 - Discrete Structures
Course Organization • Text Book: i) J. E. Hopcroft, R. Motwani, & J. D. UllmanIntroduction to Automata Theory,Languages, and Computation, Third Edition,Pearson, 2008. • ii) Denial I. A. Cohen Introduction to Computer Theory, First Edition, John Wiley & Sons, 1986. • Instruments: There will be 2~3 assignments, 4~5 quizzes, Weights: Assignments 10% Quizzes 15% S-I 10% • S-II 15% Final Exam 50%
Course Outline Study and mathematically model various abstract computing machines that serve as models for computations and examine the relationship between these automata and formal languages. Regular expressions, NFAs. Core concepts of Regular Languages and Finite Automata; Decidability for Regular Languages; Non-regular Languages; Context-free Languages and Pushdown Automata; Decidability for Context-free Languages; Non-context-free Languages; Turing Machines and Their Languages are important part of the course. Transducers (automata with output).
Some basics • Automaton = A self-operating machine or mechanism (Dictionary definition), plural is Automata. • Automata = abstract computing devices • Automata theory = the study of abstract machines (or more appropriately, abstract 'mathematical' machines or systems, and the computational problems that can be solved using these machines. • Mathematical models of computation • Finite automata • Push-down automata • Turing machines
History • 1930s : Alan Turing defined machines more powerful than any in existence, or even any that we could imagine – Goal was to establish the boundary between what was and was not computable. • 1940s/150s : In an attempt to model “Brain function” researchers defined finite state machines. • Late 1950s : Linguist Noam Chomsky began the study of Formal Grammars. • 1960s : A convergence of all this into a formal theory of computer science, with very deep philosophical implications as well as practical applications (compilers, web searching, hardware, A.I., algorithm design, software engineering,…)
Computation memory CPU Courtesy Costas Busch - RPI
temporary memory input memory CPU output memory Program memory Courtesy Costas Busch - RPI
Example: temporary memory input memory CPU output memory Program memory compute compute Courtesy Costas Busch - RPI
temporary memory input memory CPU output memory Program memory compute compute Courtesy Costas Busch - RPI
temporary memory input memory CPU output memory Program memory compute compute Courtesy Costas Busch - RPI
temporary memory input memory CPU Program memory output memory compute compute Courtesy Costas Busch - RPI
Automaton temporary memory Automaton input memory CPU output memory Program memory Courtesy Costas Busch - RPI
Different Kinds of Automata • Automata are distinguished by the temporary memory • Finite Automata: no temporary memory • Pushdown Automata: stack • Turing Machines: random access memory Courtesy Costas Busch - RPI
Finite Automaton temporary memory input memory Finite Automaton output memory Example: Vending Machines (small computing power) Courtesy Costas Busch - RPI
Pushdown Automaton Stack Push, Pop input memory Pushdown Automaton output memory Example: Compilers for Programming Languages (medium computing power) Courtesy Costas Busch - RPI
Turing Machine Random Access Memory input memory Turing Machine output memory Examples: Any Algorithm (highest computing power) Courtesy Costas Busch - RPI
Power of Automata Finite Automata Pushdown Automata Turing Machine Less power More power Solve more computational problems Courtesy Costas Busch - RPI
Mathematical Preliminaries • Sets • Functions • Relations • Graphs • Proof Techniques Courtesy Costas Busch - RPI
SETS A set is a collection of elements We write Courtesy Costas Busch - RPI
Set Representations • C = { a, b, c, d, e, f, g, h, i, j, k } • C = { a, b, …, k } • S = { 2, 4, 6, … } • S = { j : j > 0, and j = 2k for some k>0 } • S = { j : j is nonnegative and even } finite set infinite set Courtesy Costas Busch - RPI
U A 6 8 2 3 1 7 4 5 9 10 A = { 1, 2, 3, 4, 5 } • Universal Set: all possible elements • U = { 1 , … , 10 } Courtesy Costas Busch - RPI
B A • Set Operations • A = { 1, 2, 3 } B = { 2, 3, 4, 5} • Union • A U B = { 1, 2, 3, 4, 5 } • Intersection • A B = { 2, 3 } • Difference • A - B = { 1 } • B - A = { 4, 5 } 2 4 1 3 5 U 2 3 1 Venn diagrams Courtesy Costas Busch - RPI
Complement • Universal set = {1, …, 7} • A = { 1, 2, 3 } A = { 4, 5, 6, 7} 4 A A 6 3 1 2 5 7 A = A Courtesy Costas Busch - RPI
{ even integers } = { odd integers } Integers 1 odd 0 5 even 6 2 4 3 7 Courtesy Costas Busch - RPI
DeMorgan’s Laws A U B = A B U A B = A U B U Courtesy Costas Busch - RPI
Empty, Null Set: = { } S U = S S = S - = S - S = U = Universal Set Courtesy Costas Busch - RPI
U A B U A B Subset A = { 1, 2, 3} B = { 1, 2, 3, 4, 5 } Proper Subset: B A Courtesy Costas Busch - RPI
A B = U Disjoint Sets A = { 1, 2, 3 } B = { 5, 6} A B Courtesy Costas Busch - RPI
Set Cardinality • For finite sets A = { 2, 5, 7 } |A| = 3 (set size) Courtesy Costas Busch - RPI
Powersets A powerset is a set of sets S = { a, b, c } Powerset of S = the set of all the subsets of S 2S = { , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} } Observation: | 2S | = 2|S| ( 8 = 23 ) Courtesy Costas Busch - RPI
Cartesian Product A = { 2, 4 } B = { 2, 3, 5 } A X B = { (2, 2), (2, 3), (2, 5), ( 4, 2), (4, 3), (4, 5) } |A X B| = |A| |B| Generalizes to more than two sets A X B X … X Z Courtesy Costas Busch - RPI
FUNCTIONS domain range B 4 A f(1) = a a 1 2 b c 3 5 f : A -> B If A = domain then f is a total function otherwise f is a partial function Courtesy Costas Busch - RPI
RELATIONS Let A & B be sets. A binary relation “R” from A to B R = {(x1, y1), (x2, y2), (x3, y3), …} Where and R ⊆ A x B xi R yi to denote e. g. if R = ‘>’: 2 > 1, 3 > 2, 3 > 1 Courtesy Costas Busch - RPI
Equivalence Relations • Reflexive: x R x • Symmetric: x R y y R x • Transitive: x R y and y R z x R z • Example: R = ‘=‘ • x = x • x = y y = x • x = y and y = z x = z Courtesy Costas Busch - RPI
Equivalence Classes Given an equivalence relation R on a set A and an element , the equivalence class ofis the set Example: R = { (1, 1), (2, 2), (1, 2), (2, 1), (3, 3), (4, 4), (3, 4), (4, 3) } Equivalence class of 1 = {1, 2} Equivalence class of 3 = {3, 4} Courtesy Costas Busch - RPI
GRAPHS A directed graph e b node d a edge c • Nodes (Vertices) • V = { a, b, c, d, e } • Edges • E = { (a,b), (b,c), (b,e),(c,a), (c,e), (d,c), (e,b), (e,d) } Courtesy Costas Busch - RPI
Labeled Graph 2 6 e 2 b 1 3 d a 6 5 c Courtesy Costas Busch - RPI
e b d a c Walk Walk is a sequence of adjacent edges (e, d), (d, c), (c, a) Courtesy Costas Busch - RPI
e b d a c Path Path is a walk where no edge is repeated Simple path: no node is repeated Courtesy Costas Busch - RPI
Cycle e base b 3 1 d a 2 c Cycle: a walk from a node (base) to itself Simple cycle: only the base node is repeated Courtesy Costas Busch - RPI
Euler Tour 8 base e 7 1 b 4 6 5 d a 2 3 c A cycle that contains each edge once Courtesy Costas Busch - RPI
Hamiltonian Cycle 5 base e 1 b 4 d a 2 3 c A simple cycle that contains all nodes Courtesy Costas Busch - RPI
Finding All Simple Paths e b d a c origin Courtesy Costas Busch - RPI
Step 1 e b d a c origin (c, a) (c, e) Courtesy Costas Busch - RPI
Step 2 e b d a (c, a) (c, a), (a, b) (c, e) (c, e), (e, b) (c, e), (e, d) c origin Courtesy Costas Busch - RPI
Step 3 e b d a c (c, a) (c, a), (a, b) (c, a), (a, b), (b, e) (c, e) (c, e), (e, b) (c, e), (e, d) origin Courtesy Costas Busch - RPI