Languages and Finite Automata

Finite Automata
Courtesy Costas Busch - RPI
1
Finite Automaton
Input
String
Output
Finite
Automaton
Courtesy Costas Busch - RPI
String
2
Finite Accepter
Input
String
Finite
Automaton
Courtesy Costas Busch - RPI
Output
“Accept”
or
“Reject”
3
Transition Graph
Abba -Finite Accepter
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
initial
state
state
transition
Courtesy Costas Busch - RPI
a, b
q4
final
state
“accept”
4
Initial Configuration
a b b a
Input String
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
5
Reading the Input
a b b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
6
a b b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
7
a b b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
8
a b b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
9
Input finished
a b b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
a, b
q4
Output: “accept”
Courtesy Costas Busch - RPI
10
Rejection
a b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
11
a b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
12
a b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
13
a b a
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
14
Input finished
a b a
a, b
b
q0 a
Output:
q5 “reject”
a, b
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
q4
15
Another Rejection

a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
16

a, b
q5
b
q0 a
Output:
“reject”
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
17
Another Example
a a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
18
a a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
19
a a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
20
a a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
21
Input finished
a a b
a
q0
Output: “accept”
b
q1
Courtesy Costas Busch - RPI
a, b
a, b
q2
22
Rejection
b a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
23
b a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
24
b a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
25
b a b
a, b
a
q0
b
q1
Courtesy Costas Busch - RPI
a, b
q2
26
Input finished
b a b
a, b
a
q0
b
q1
a, b
q2
Output: “reject”
Courtesy Costas Busch - RPI
27
Formalities
Deterministic Finite
Accepter (DFA)
M  Q, ,  , q0 , F 
Q


q0
: set of states
: input alphabet
: transition function
: initial state q0  Q
F : set of final states F  Q
Courtesy Costas Busch - RPI
28
Input Alphabet 
  a, b
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
29
Set of States Q
Q  q0 , q1, q2 , q3 , q4 , q5 
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
30
Initial State q0
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
31
Set of Final States F
F  q4 
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
32
Transition Function 
 :Q  Q
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
33
 q0 , a   q1
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
34
 q0 , b   q5
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
35
 q2 , b   q3
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
36
Transition Function 
q0
a
q1
q2
q5

q1
q5
q3
q4
q5
q5
q4
q5
b
q5
q2
q3
q5
q5
q5
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
37
Extended Transition Function
 *or ˆ
 * : Q  *  Q
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
38
 * q0 , ab   q2
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
39
 * q0 , abba   q4
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
40
 * q0 , abbbaa  q5
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
41
Observation: There is a walk from
with label w
q to q
 * q, w  q
w
q
q
w  1 2  k
q
1
2
Courtesy Costas Busch - RPI
k
q
42
Example: There is a walk from q0 to q5
with label abbbaa
 * q0 , abbbaa  q5
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
43
Inductive Definition
Basis
 * q ,    q
Induction  * q, w    ( * (q, w), )
q
w
q1 
q
 * q , w   q
 (q1, )  q
 * q, w    (q1, )
 * q, w  q1
Courtesy Costas Busch - RPI
 * q, w    ( * (q, w), )
44
 * q0 , ab  
  * (q0 , a ), b  
   * q0 ,  , a , b  
  q0 , a , b  
 q1 , b  
q2
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
Courtesy Costas Busch - RPI
a, b
q4
45
Languages Accepted by DFAs
Take DFA
M
Definition:
The language LM  contains
all input strings accepted by M
LM  = { strings that drive
M to a final state}
Courtesy Costas Busch - RPI
46
Example
LM   abba
M
a, b
q5
b
q0 a
a
a
b
q1 b q2 b q3 a
a, b
q4
accept
Courtesy Costas Busch - RPI
47
Another Example
LM    , ab, abba
M
a, b
q5
b
q0 a
accept
a
a
b
q1 b q2 b q3 a
accept
Courtesy Costas Busch - RPI
a, b
q4
accept
48
Formally
For a DFA
M  Q, ,  , q0 , F 
Language accepted by
M :
LM   w  * :  * q0 , w  F 
q0
w
Courtesy Costas Busch - RPI
q
q  F
49
Observation
Language rejected by M :
LM   w  * :  * q0 , w  F 
q0
w
Courtesy Costas Busch - RPI
q
q  F
50
More Examples
LM   {a b : n  0}
n
a, b
a
q0
b
q1
accept
Courtesy Costas Busch - RPI
a, b
q2
trap state
51
LM = { all strings with prefix ab }
a, b
q0
a
q1
b
a
q3
Courtesy Costas Busch - RPI
b
q2
accept
a, b
52
LM  = { all strings without
substring 001 }
0
1
0,1
1

0
0
00
1
001
0
Courtesy Costas Busch - RPI
53
Regular Languages
A language L is regular if there is
a DFA M such that L  LM 
All regular languages form a language family
Courtesy Costas Busch - RPI
54
Examples of regular languages:
abba
 , ab, abba
{a b : n  0}
{ all strings with prefix
ab }
{ all strings with prefix
ab }
n
{ all strings without substring 001 }
There exist automata that accept these
Languages (see previous slides).
Courtesy Costas Busch - RPI
55
Another Example
The language
is regular:
L  awa : w  a, b*
a
b
L  L M 
b
q0
a
q2
q3
a
b
q4
a, b
Courtesy Costas Busch - RPI
56
There exist languages which are not Regular:
Example:
L {a b : n  0}
n n
There is no DFA that accepts such a language
(we will prove this later in the class)
Courtesy Costas Busch - RPI
57