Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Chapter 1 Automata: the Methods & the Madness Angkor Wat, Cambodia.

Similar presentations


Presentation on theme: "1 Chapter 1 Automata: the Methods & the Madness Angkor Wat, Cambodia."— Presentation transcript:

1 1 Chapter 1 Automata: the Methods & the Madness Angkor Wat, Cambodia

2 Chapter 1 - 2 Outline 1.1 Why Study Automata Theory? 1.1 Why Study Automata Theory? 1.2 Introduction to Formal Proof 1.2 Introduction to Formal Proof 1.3 Additional Forms of Proof 1.3 Additional Forms of Proof 1.4 Inductive Proofs 1.4 Inductive Proofs 1.5 Central Concepts of Automata Theory 1.5 Central Concepts of Automata Theory

3 Chapter 1 - 3 1.1 Why Study Automata Theory? 1.1.1 Introduction to Automata 1.1.1 Introduction to Automata Properties of finite-state systems Properties of finite-state systems Having a finite number of states Having a finite number of states Entire history cannot be remembered. Entire history cannot be remembered. Good to implement with a fixed set of resources Good to implement with a fixed set of resources Can be modeled by finite automata (FA) Can be modeled by finite automata (FA)

4 Chapter 1 - 4 1.1 Why Study Automata Theory? Example 1.1 --- an FA modeling an on/off switch Example 1.1 --- an FA modeling an on/off switch Example 1.2 --- an FA modeling recognition of the keyword “then” in a lexical analyzer Example 1.2 --- an FA modeling recognition of the keyword “then” in a lexical analyzer The double circles specify the final or “accepting state.” The double circles specify the final or “accepting state.” start t t h th e the n then off start on push

5 Chapter 1 - 5 1.1 Why Study Automata Theory? 1.1.2 Structural Representation 1.1.2 Structural Representation Two other models (not automaton-like) Two other models (not automaton-like) Grammar --- processing data with a recursive structure Grammar --- processing data with a recursive structure E.g., grammatical rule E  E + E for generating arithmetic expressions E.g., grammatical rule E  E + E for generating arithmetic expressions Regular expression --- describing text strings Regular expression --- describing text strings E.g., UNIX-style regular expression E.g., UNIX-style regular expression ’[A-Z][a-z]*[ ][A-Z][A-Z]’ describes Ithaca NY, Lafayette IN…

6 Chapter 1 - 6 1.1 Why Study Automata Theory? 1.1.3 Automata and Complexity 1.1.3 Automata and Complexity What can a computer do? --- What can a computer do? --- Computability: Computability: Studying problems which can be solved by computer, called decidable problems. Studying problems which can be solved by computer, called decidable problems. Decidability is the main topic in computability. Decidability is the main topic in computability.

7 Chapter 1 - 7 1.1 Why Study Automata Theory? 1.1.3 Automata and Complexity 1.1.3 Automata and Complexity What can a computer do efficiently? --- What can a computer do efficiently? --- Computational Complexity: Studying tractable problems solvable with some slowly growing function (like polynomial) of input size, & intractable problems solvable with fast growing function (like exponential). Studying tractable problems solvable with some slowly growing function (like polynomial) of input size, & intractable problems solvable with fast growing function (like exponential). Intractability is the main topic of computational complexity. Intractability is the main topic of computational complexity.

8 Chapter 1 - 8 1.2 Introduction to Formal Proof 1.2.0 Concepts --- 1.2.0 Concepts --- Formal proof techniques are indispensable for proving theorems in theory of computation. Formal proof techniques are indispensable for proving theorems in theory of computation. Understanding workings of correct programs is equivalent to proving theorems by induction. Understanding workings of correct programs is equivalent to proving theorems by induction.

9 Chapter 1 - 9 1.2 Introduction to Formal Proof 1.2.1 Deductive Proofs ( 演繹法 ) 1.2.1 Deductive Proofs ( 演繹法 ) Given facts (e.g. axioms), previous statements Given facts (e.g. axioms), previous statements Hypothesis  deduced statements  …  conclusion Logic principles Logic principles Logic principles: modus ponens ( 正前律、離斷規則、肯定前 件 ), syllogism ( 三段論 )… Logic principles: modus ponens ( 正前律、離斷規則、肯定前 件 ), syllogism ( 三段論 )… 1.2.2~1.2.4 --- read by yourself 1.2.2~1.2.4 --- read by yourself

10 Chapter 1 - 10 1.2 Introduction to Formal Proof Modus ponens ( 正前律、離斷規則、肯定前 件 ) Modus ponens ( 正前律、離斷規則、肯定前 件 ) An example: An example: If it rains, the sidewalk will be wet. If it rains, the sidewalk will be wet. It rains now. It rains now. So the sidewalk is wet. So the sidewalk is wet. Syllogism ( 三段論 ) (supplemental) Syllogism ( 三段論 ) (supplemental) An example: An example: All humans will die. All humans will die. Socrates is a human. Socrates is a human. So, Socrates will die. So, Socrates will die.

11 Chapter 1 - 11 1.3 Additional Forms of Proof 1.3.0 Some more proof techniques --- 1.3.0 Some more proof techniques --- Proofs about sets Proofs about sets Proofs by contradiction Proofs by contradiction Proofs by counterexamples Proofs by counterexamples 1.3.1~1.3.4 --- read by yourself 1.3.1~1.3.4 --- read by yourself

12 Chapter 1 - 12 1.4 Inductive Proofs ( 歸納法 ) 1.4.1 Induction on Integers 1.4.1 Induction on Integers To prove a statement S(n) about an integer n by induction, we do: To prove a statement S(n) about an integer n by induction, we do: Basis --- show S(i) true for a particular basis integer i (0 or 1 usually) Basis --- show S(i) true for a particular basis integer i (0 or 1 usually) Inductive step --- assume n  i (basis integer), show that the statement “if S(n), then S(n + 1)” is true. Inductive step --- assume n  i (basis integer), show that the statement “if S(n), then S(n + 1)” is true. 1.4.2~1.4.4 --- read by yourself 1.4.2~1.4.4 --- read by yourself

13 Chapter 1 - 13 1.5 Central Concepts of Automata Theory 1.5.0 Three basic concepts 1.5.0 Three basic concepts Alphabet --- a set of symbols Alphabet --- a set of symbols Strings --- a sequence of symbols from an alphabet Strings --- a sequence of symbols from an alphabet Language --- a set of strings from the same alphabet Language --- a set of strings from the same alphabet

14 Chapter 1 - 14 1.5 Central Concepts of Automata Theory 1.5.1 Alphabets 1.5.1 Alphabets Definition --- Definition --- An alphabet is a finite, nonempty set of symbols. An alphabet is a finite, nonempty set of symbols. Conventional notation --- Conventional notation --- 

15 Chapter 1 - 15 1.5 Central Concepts of Automata Theory 1.5.1 Alphabets 1.5.1 Alphabets symbol The term “symbol” is usually undefined. Examples --- Binary alphabet   a, b, …, z} …

16 Chapter 1 - 16 1.5 Central Concepts of Automata Theory 1.5.2 Strings 1.5.2 Strings Definition --- Definition --- A string (or word) is a finite sequence of symbols from an alphabet. A string (or word) is a finite sequence of symbols from an alphabet. Example --- Example --- 1011 is a string from alphabet  1011 is a string from alphabet 

17 Chapter 1 - 17 1.5 Central Concepts of Automata Theory 1.5.2 Strings 1.5.2 Strings Empty string  --- a string with zero occurrences of symbols Empty string  --- a string with zero occurrences of symbols Length |w| of string w --- the number of positions for symbols in w Length |w| of string w --- the number of positions for symbols in w Examples --- |0111|=4, |  |=0, … Examples --- |0111|=4, |  |=0, …

18 Chapter 1 - 18 1.5 Central Concepts of Automata Theory 1.5.2 Strings 1.5.2 Strings Power of an alphabet  k  --- Power of an alphabet  k  --- a set of all strings of length k Examples --- Examples --- given    we have given    we have    = {  2 = {00, 01, 10, 11} Supplemental --- 1 0 =  (01) 0 =  … Supplemental --- 1 0 =  (01) 0 =  …

19 Chapter 1 - 19 1.5 Central Concepts of Automata Theory 1.5.2 Strings 1.5.2 Strings Set of all strings over  --- denoted as   Set of all strings over  --- denoted as   It is not difficult to know that It is not difficult to know that     ∪   ∪   ∪ …

20 Chapter 1 - 20 1.5 Central Concepts of Automata Theory 1.5.2 Strings 1.5.2 Strings    set of nonempty strings from     set of nonempty strings from       Therefore, we have Therefore, we have      ∪   ∪   ∪  …      ∪ 

21 Chapter 1 - 21 1.5 Central Concepts of Automata Theory 1.5.2 Strings 1.5.2 Strings Concatenation of two strings x and y --- xy Concatenation of two strings x and y --- xy Example --- Example --- if x = 01101, y = 110, then if x = 01101, y = 110, then xy = 01101110, xx = x  = 0110101101, … xy = 01101110, xx = x  = 0110101101, …  is the identity for concatenation  is the identity for concatenation since  w = w  w. since  w = w  w.

22 Chapter 1 - 22 1.5 Central Concepts of Automata Theory 1.5.2 Strings (supplemental) 1.5.2 Strings (supplemental) Power of a string --- Power of a string --- Defined by concatenation --- Defined by concatenation --- x i = xx…x (x concatenated i times) x i = xx…x (x concatenated i times) Defined by recursion --- Defined by recursion --- x 0 =  (by definition) x 0 =  (by definition) x i = xx i-1 x i = xx i-1

23 Chapter 1 - 23 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages Definition --- Definition --- a language is a set of strings all chosen from some  * If  is an alphabet, and L  *, then L is a language over . If  is an alphabet, and L  *, then L is a language over .

24 Chapter 1 - 24 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages Examples --- Examples --- The set of all legal English words is a language. Why? What is the alphabet here? The set of all legal English words is a language. Why? What is the alphabet here? Answer: the set of all letters Answer: the set of all letters A legal program of C is a language. Why? What is the alphabet here? A legal program of C is a language. Why? What is the alphabet here? Answer: a subset of the ASCII characters. Answer: a subset of the ASCII characters.

25 Chapter 1 - 25 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages More examples of languages --- More examples of languages --- The set of all strings of n 0’s followed by n 1’s for n  0 : The set of all strings of n 0’s followed by n 1’s for n  0 : { , 01, 0011, 000111, …} { , 01, 0011, 000111, …}  * is an infinite language for any alphabet .  * is an infinite language for any alphabet .

26 Chapter 1 - 26 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages More examples of languages (cont’d) --- More examples of languages (cont’d) ---  the empty language (not the empty string  is a language over any alphabet.  the empty language (not the empty string  is a language over any alphabet. {  } is a language over any alphabet (consisting of only one string, the empty string  ). {  } is a language over any alphabet (consisting of only one string, the empty string  ).

27 Chapter 1 - 27 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages Ways to describe languages (1/3) --- Ways to describe languages (1/3) --- Description by exhaustive listing --- Description by exhaustive listing --- L1 = {a, ab, abc} (finite language; listed one by one) L1 = {a, ab, abc} (finite language; listed one by one) L2 = {a, ab, abb, abbb,...} (infinite language; listed partially) L2 = {a, ab, abb, abbb,...} (infinite language; listed partially) L3 = L(ab*) (infinite language; expressed by a regular expression) L3 = L(ab*) (infinite language; expressed by a regular expression)

28 Chapter 1 - 28 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages Ways to define languages (2/3) --- Ways to define languages (2/3) --- Description by generic elements --- Description by generic elements --- L4 = {x | x is over V = {a, b}, begins with a, followed by any number of b, possible none} L4 = {x | x is over V = {a, b}, begins with a, followed by any number of b, possible none} (note: L4 = L3 = L2) (note: L4 = L3 = L2)

29 Chapter 1 - 29 1.5 Central Concepts of Automata Theory 1.5.3 Languages 1.5.3 Languages Ways to define languages (3/3) --- Ways to define languages (3/3) --- Description by integer parameters --- Description by integer parameters --- L5 = {ab n | n  0} L5 = {ab n | n  0} (note: L5 = L4 = L3 = L2) (note: L5 = L4 = L3 = L2) *** b n = power of a symbol

30 Chapter 1 - 30 1.5 Central Concepts of Automata Theory 1.5.3a Operations on Languages (supplemental)(1/2) 1.5.3a Operations on Languages (supplemental)(1/2) Languages are sets, and operations of sets may be applied to them: Languages are sets, and operations of sets may be applied to them: (1) union --- A ∪ B = {a | a  A or a  B} (1) union --- A ∪ B = {a | a  A or a  B} (2) intersection --- A∩B = {a | a  A and a  B} (2) intersection --- A∩B = {a | a  A and a  B} (3) difference --- A  B = {a | a  A and a  B} (3) difference --- A  B = {a | a  A and a  B}

31 Chapter 1 - 31 1.5 Central Concepts of Automata Theory 1.5.3a Operations on Languages (supplemental)(2/2) 1.5.3a Operations on Languages (supplemental)(2/2) Languages are sets, and operations of sets may be applied to them: Languages are sets, and operations of sets may be applied to them: (4) product --- A  B = {(a, b) | a  A and b  B} (4) product --- A  B = {(a, b) | a  A and b  B} (5) complement --- Ā = {a | a  U and a  A} (5) complement --- Ā = {a | a  U and a  A} (6) power set --- 2 A = {B | B  A} (6) power set --- 2 A = {B | B  A} Note: U is the universal set, like    which is the closure of an alphabet Note: U is the universal set, like    which is the closure of an alphabet

32 Chapter 1 - 32 1.5 Central Concepts of Automata Theory 1.5.3b More Operations on Languages (supplemental)(1/2) 1.5.3b More Operations on Languages (supplemental)(1/2) Concatenation of two languages L 1 and L 2 --- Concatenation of two languages L 1 and L 2 --- L 1 L 2 = {x 1 x 2 | x 1  L 1 and x 2  L 2 } L 1 L 2 = {x 1 x 2 | x 1  L 1 and x 2  L 2 } Power of a language L --- Power of a language L --- Defined directly --- Defined directly --- L k = {x 1 x 2 …x k | x 1, x 2, …, x k  L} L k = {x 1 x 2 …x k | x 1, x 2, …, x k  L} Defined by recursion --- Defined by recursion --- L 0 = {  } L 0 = {  } L i = LL i-1 L i = LL i-1

33 Chapter 1 - 33 1.5 Central Concepts of Automata Theory 1.5.3b More Operations on Languages (supplemental)(2/2) 1.5.3b More Operations on Languages (supplemental)(2/2) Closure of language L --- Closure of language L --- L * = = L  ∪ L  ∪ L  ∪ … L * = = L  ∪ L  ∪ L  ∪ … Positive closure of a language L --- Positive closure of a language L --- L + = L  ∪ L  ∪ … L + = L  ∪ L  ∪ … It can be shown that L   L   L  – {  } when  L It can be shown that L   L   L  – {  } when  L

34 Chapter 1 - 34 1.5 Central Concepts of Automata Theory 1.5.4 Problems 1.5.4 Problems A problem in automata theory --- A problem in automata theory --- a question of deciding whether a given string is a member of some particular language. a question of deciding whether a given string is a member of some particular language. That is, if  is an alphabet, and L is a language over , the problem L is: That is, if  is an alphabet, and L is a language over , the problem L is: given a string w in  *, decide if  w  L or not  given a string w in  *, decide if  w  L or not 


Download ppt "1 Chapter 1 Automata: the Methods & the Madness Angkor Wat, Cambodia."

Similar presentations


Ads by Google