630 likes | 824 Vues
CSC312 Automata Theory Lecture # 1 Introduction. Administrative Stuff. Instructor: Dr. Mudasser Naseer mnaseer@ciitahore.edu.pk Cabin # 1, Faculty Room C7 Lectures: Sec-A: Tue 16:30 (C-6), Wed 16:30 (C-11) Sec-B: Mon 11:30 (C-13), Wed 15:00 (C-11)
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-A: Tue 16:30 (C-6), Wed 16:30 (C-11) Sec-B: Mon 11:30 (C-13), Wed 15:00 (C-11) • Office Hrs: Tue & Thu 1400 – 1600 hrs • (or by appointment) • Prerequisite: CSC102 - Discrete Structures
Course Objectives: To study and mathematically model various abstract computing machines that serve as models for computations and examine the relationship between these automata and formal languages.
Course Outline 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).
Course Organization • Text Book: i) Denial I. A. Cohen Introduction to Computer Theory, Second Edition, John Wiley & Sons, 1997. • Reference Books: • i) J. E. Hopcroft, R. Motwani, & J. D. UllmanIntroduction to Automata Theory,Languages, and Computation, Third Edition,Pearson, 2008. • Instruments: There will be 2~3 assignments, 4~5 quizzes, Weights: Assignments 10% Quizzes 15% S-I 10% • S-II 15% Final Exam 50%
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
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
Trees root parent leaf child Trees have no cycles Courtesy Costas Busch - RPI
root Level 0 Level 1 Height 3 leaf Level 2 Level 3 Courtesy Costas Busch - RPI
Binary Trees Courtesy Costas Busch - RPI
PROOF TECHNIQUES • Proof by induction • Proof by contradiction Courtesy Costas Busch - RPI