Chapter 1 Introd. To Automata

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 34

Chapter 1 Automata: the

Methods & the Madness

Angkor Wat,
Cambodia
1
Outline
 1.1 Why Study Automata Theory?
 1.2 Introduction to Formal Proof
 1.3 Additional Forms of Proof
 1.4 Inductive Proofs
 1.5 Central Concepts of Automata
Theory

Chapter 1 - 2
1.1 Why Study Automata
Theory?
 1.1.1 Introduction to Automata
 Properties of finite-state systems
 Having a finite number of states

 Entire history cannot be remembered.

 Good to implement with a fixed set of resources

 Can be modeled by finite automata (FA)

Chapter 1 - 3
1.1 Why Study Automata
Theory?
 Example 1.1 --- an FA modeling an on/off switch
push
start off on
push

 Example 1.2 --- an FA modeling recognition of the


keyword “then” in a lexical analyzer

t h e n
start t th the then

 The double circles specify the final or “accepting state.”

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

Chapter 1 - 5
1.1 Why Study Automata
Theory?
 1.1.3 Automata and Complexity

 What can a computer do? ---

Computability:
 Studying problems which can be solved by

computer, called decidable problems.


 Decidability is the main topic in computability.

Chapter 1 - 6
1.1 Why Study Automata
Theory?
 1.1.3 Automata and Complexity
 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).
 Intractability is the main topic of computational

complexity. Chapter 1 - 7
1.2 Introduction to Formal
Proof
 1.2.0 Concepts ---
 Formal proof techniques are indispensable

for proving theorems in theory of


computation.

 Understanding workings of correct

programs is equivalent to proving theorems


by induction. Chapter 1 - 8
1.2 Introduction to Formal
Proof
 1.2.1 Deductive Proofs ( 演繹法 )

Given facts (e.g. axioms), previous statements

Hypothesis  deduced statements  …  conclusion

Logic principles

 Logic principles: modus ponens ( 正前律、離斷規則、肯定


前件 ), syllogism ( 三段論 )…

 1.2.2~1.2.4 --- read by yourself


Chapter 1 - 9
1.2 Introduction to Formal
Proof
 Modus ponens ( 正前律、離斷規則、肯定前
件)
 An example:
 If it rains, the sidewalk will be wet.
 It rains now.
 So the sidewalk is wet.

 Syllogism ( 三段論 ) (supplemental)


 An example:
 All humans will die.
 Socrates is a human.
 So, Socrates will die.
Chapter 1 - 10
1.3 Additional Forms of Proof
 1.3.0 Some more proof techniques ---
 Proofs about sets
 Proofs by contradiction
 Proofs by counterexamples

 1.3.1~1.3.4 --- read by yourself

Chapter 1 - 11
1.4 Inductive Proofs ( 歸納法 )
 1.4.1 Induction on Integers
 To prove a statement S(n) about an integer n b
y induction, we do:

 Basis --- show S(i) true for a particular basis integ


er i (0 or 1 usually)
 Inductive step --- assume n  i (basis integer), sho
w that the statement “if S(n), then S(n + 1)” is true.

 1.4.2~1.4.4 --- read by yourself


Chapter 1 - 12
1.5 Central Concepts of
Automata Theory
 1.5.0 Three basic concepts

 Alphabet --- a set of symbols

 Strings --- a sequence of symbols from an

alphabet
 Language --- a set of strings from the same

alphabet
Chapter 1 - 13
1.5 Central Concepts of
Automata Theory
 1.5.1 Alphabets

 Definition ---

An alphabet is a finite, nonempty set


of symbols.

 Conventional notation --- 

Chapter 1 - 14
1.5 Central Concepts of
Automata Theory
 1.5.1 Alphabets

 The term “symbol”


symbol is usually undefined.
 Examples ---
 Binary alphabet 

 a, b, …, z} …

Chapter 1 - 15
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings
 Definition ---

A string (or word) is a finite sequence of


symbols from an alphabet.

 Example ---
 1011 is a string from alphabet 

Chapter 1 - 16
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings

 Empty string --- a string with zero

occurrences of symbols
 Length |w| of string w --- the number of

positions for symbols in w


 Examples --- |0111|=4, ||=0, …

Chapter 1 - 17
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings

 Power of an alphabet k ---

a set of all strings of length k


 Examples ---

 given we have

  = {2 = {00, 01, 10, 11}


 Supplemental --- 10 = (01)0 =  …
Chapter 1 - 18
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings

 Set of all strings over  --- denoted as 


 It is not difficult to know that

∪ ∪ ∪ …

Chapter 1 - 19
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings

 set of nonempty strings from


 Therefore, we have

 ∪ ∪ ∪…


 ∪
Chapter 1 - 20
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings

 Concatenation of two strings x and y --- xy

 Example ---

 if x = 01101, y = 110, then

xy = 01101110, xx = x= 0110101101, …

  is the identity for concatenation

since w = ww.
Chapter 1 - 21
1.5 Central Concepts of
Automata Theory
 1.5.2 Strings (supplemental)

 Power of a string ---

 Defined by concatenation ---

 xi = xx…x (x concatenated i times)


 Defined by recursion ---

 x0 =  (by definition)
 xi = xxi-1

Chapter 1 - 22
1.5 Central Concepts of
Automata Theory
 1.5.3 Languages
 Definition ---

a language is a set of strings all chosen


from some *

 If  is an alphabet, and L*, then L is a


language over .

Chapter 1 - 23
1.5 Central Concepts of
Automata Theory
 1.5.3 Languages

Examples ---
 The set of all legal English words is a
language. Why? What is the alphabet here?
Answer: the set of all letters

 A legal program of C is a language. Why?


What is the alphabet here?
Answer: a subset of the ASCII characters.
Chapter 1 - 24
1.5 Central Concepts of
Automata Theory
 1.5.3 Languages

 More examples of languages ---

 The set of all strings of n 0’s followed by n 1’s

for n 0:
{, 01, 0011, 000111, …}

 * is an infinite language for any alphabet .

Chapter 1 - 25
1.5 Central Concepts of
Automata Theory
 1.5.3 Languages

 More examples of languages (cont’d) ---

 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 ).


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

 L4 = {x | x is over V = {a, b}, begins with a,


followed by any number of b, possible none}

(note: L4 = L3 = L2)

Chapter 1 - 28
1.5 Central Concepts of
Automata Theory
 1.5.3 Languages
 Ways to define languages (3/3) ---
 Description by integer parameters ---

 L5 = {abn | n  0}

(note: L5 = L4 = L3 = L2)

*** bn = power of a symbol


Chapter 1 - 29
A

1.5 Central Concepts of


Automata Theory
 1.5.3a Operations on Languages (supplemental)(1/2)
 Languages are sets, and operations of sets may be
applied to them:

(1) union --- A∪B = {a | a  A or a  B}

(2) intersection --- A∩B = {a | a  A and a B}

(3) difference --- A  B = {a | a  A and a  B}

Chapter 1 - 30
A

1.5 Central Concepts of


Automata Theory
 1.5.3a Operations on Languages (supplemental)(2/2)
 Languages are sets, and operations of sets may be
applied to them:

(4) product --- A  B = {(a, b) | a  A and b  B}


(5) complement --- Ā = {a | a  U and a  A}
(6) power set --- 2A = {B | B  A}
Note: U is the universal set, like which is the closure of an
alphabet
Chapter 1 - 31
A

1.5 Central Concepts of


Automata Theory
 1.5.3b More Operations on Languages (supplement
al)(1/2)

 Concatenation of two languages L1 and L2 ---


 L1L2 = {x1x2 | x1  L1 and x2  L2}
 Power of a language L ---
 Defined directly ---
 Lk = {x1x2…xk | x1, x2, …, xk  L}
 Defined by recursion ---
 L0 = {}
 Li = LLi-1 Chapter 1 - 32
A

1.5 Central Concepts of


Automata Theory
 1.5.3b More Operations on Languages
(supplemental)(2/2)

 Closure of language L ---



 L =
* Li = L ∪ L ∪ L ∪ …
  
i 0

 Positive closure of a language L ---


 L+ = L LL – {}

Chapter 1 - 33
1.5 Central Concepts of
Automata Theory
 1.5.4 Problems
 A problem in automata theory ---

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:

given a string w in *, decide ifw L or not


Chapter 1 - 34

You might also like