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

1

Chapter 1 Automata: the


Methods & the Madness
Angkor Wat,
Cambodia
Chapter 1 - 2
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 - 3
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 - 4
1.1 Why Study Automata Theory?
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



The double circles specify the final or accepting state.
start
t
t

h
th

e
the

n
then

off

start on

push
push
Chapter 1 - 5
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 expressions
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 - 6
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 - 7
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 - 8
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 - 9
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 - 10
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 - 11
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 - 12
1.4 Inductive Proofs ( )
1.4.1 Induction on Integers
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)

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
Chapter 1 - 13
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 - 14
1.5 Central Concepts of
Automata Theory
1.5.1 Alphabets
Definition ---
An alphabet is a finite, nonempty set
of symbols.

Conventional notation --- E
Chapter 1 - 15
1.5 Central Concepts of
Automata Theory
1.5.1 Alphabets
The term symbol is usually undefined.
Examples ---
Binary alphabet E = {0, 1}.
E = {a, b, , z}
Chapter 1 - 16
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 E = {0, 1}

Chapter 1 - 17
1.5 Central Concepts of
Automata Theory
1.5.2 Strings
Empty string c --- a string with zero
occurrences of symbols
Length |w| of string w --- the number of
positions for symbols in w
Examples --- |0111|=4, |c|=0,
Chapter 1 - 18
1.5 Central Concepts of
Automata Theory
1.5.2 Strings
Power of an alphabet E
k
---
a set of all strings of length k
Examples ---
given E

= {0, 1}, we have
E
0
= {c}, E
2
= {00, 01, 10, 11}
Supplemental --- 1
0
= c, (01)
0
= c,
Chapter 1 - 19
1.5 Central Concepts of
Automata Theory
1.5.2 Strings
Set of all strings over E --- denoted as E
-

It is not difficult to know that
E
-
= E
0
E
1
E
2

Chapter 1 - 20
1.5 Central Concepts of
Automata Theory
1.5.2 Strings
E
+
= set of nonempty strings from E
= E
-
{c}
Therefore, we have
E
+
= E
1
E
2
E
3



E
-
= E
+
{c}

Chapter 1 - 21
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
2
= 0110101101,
c is the identity for concatenation
since cw = wc = w.
Chapter 1 - 22
1.5 Central Concepts of
Automata Theory
1.5.2 Strings (supplemental)
Power of a string ---
Defined by concatenation ---
x
i
= xxx (x concatenated i times)
Defined by recursion ---
x
0
= c (by definition)
x
i
= xx
i-1
Chapter 1 - 23
1.5 Central Concepts of
Automata Theory
1.5.3 Languages
Definition ---
a language is a set of strings all chosen
from some E
*

If E is an alphabet, and L_E
*
, then L is a
language over E.
Chapter 1 - 24
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 - 25
1.5 Central Concepts of
Automata Theory
1.5.3 Languages
More examples of languages ---
The set of all strings of n 0s followed by n 1s
for n> 0:
{c, 01, 0011, 000111, }

E
*
is an infinite language for any alphabet E.
Chapter 1 - 26
1.5 Central Concepts of
Automata Theory
1.5.3 Languages
More examples of languages (contd) ---
| = the empty language (not the empty string c)
is a language over any alphabet.

{c} is a language over any alphabet (consisting
of only one string, the empty string c).
Chapter 1 - 27
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
partially)
L3 = L(ab*) (infinite language; expressed by a regular
expression)
Chapter 1 - 28
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 - 29
1.5 Central Concepts of
Automata Theory
1.5.3 Languages
Ways to define languages (3/3) ---
Description by integer parameters ---
L5 = {ab
n
| n > 0}
(note: L5 = L4 = L3 = L2)
*** b
n
= power of a symbol

Chapter 1 - 30
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 --- AB = {a | a e A or a e B}
(2) intersection --- AB = {a | a e A and a eB}
(3) difference --- A B = {a | a e A and a e B}
A
Chapter 1 - 31
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 e A and b e B}
(5) complement --- = {a | a e U and a e A}
(6) power set --- 2
A
= {B | B c A}
Note: U is the universal set, like E
-
which is the closure of an
alphabet
A
Chapter 1 - 32
1.5 Central Concepts of
Automata Theory
1.5.3b More Operations on Languages
(supplemental)(1/2)
Concatenation of two languages L
1
and L
2
---
L
1
L
2
= {x
1
x
2
| x
1
e L
1
and x
2
e L
2
}
Power of a language L ---
Defined directly ---
L
k
= {x
1
x
2
x
k
| x
1
, x
2
, , x
k
e L}
Defined by recursion ---
L
0
= {c}
L
i
= LL
i-1
A
Chapter 1 - 33
1.5 Central Concepts of
Automata Theory
1.5.3b More Operations on Languages
(supplemental)(2/2)
Closure of language L ---
L
*
= = L
0
L
1
L
2

Positive closure of a language L ---
L
+
= L
-
L
0
= L
-
{c}
A
0
i
i
L

=
Chapter 1 - 34
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 E is an alphabet, and L is a
language over E, the problem L is:

given a string w in E
*
, decide if w e L or not.

You might also like