Languages and Finite Automata

Download Report

Transcript Languages and Finite Automata

Non Deterministic Automata
Courtesy Costas Busch - RPI
1
Nondeterministic Finite Accepter (NFA)
Alphabet = {a}
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
2
Nondeterministic Finite Accepter (NFA)
Alphabet = {a}
Two choices
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
3
Nondeterministic Finite Accepter (NFA)
Alphabet = {a}
Two choices
a
q0
q1 a
q2
No transition
a
q3
No transition
Courtesy Costas Busch - RPI
4
First Choice
a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
5
First Choice
a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
6
First Choice
a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
7
First Choice
a a
All input is consumed
a
q0
q1 a
q2
“accept”
a
q3
Courtesy Costas Busch - RPI
8
Second Choice
a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
9
Second Choice
a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
10
Second Choice
a a
a
q0
q1 a
a
q3
q2
No transition:
the automaton hangs
Courtesy Costas Busch - RPI
11
Second Choice
a a
Input cannot be consumed
a
q0
q1 a
q2
a
q3
“reject”
Courtesy Costas Busch - RPI
12
An NFA accepts a string:
when there is a computation of the NFA
that accepts the string
AND
all the input is consumed and the automaton
is in a final state
Courtesy Costas Busch - RPI
13
Example
aa is accepted by the NFA:
“accept”
a
q0
q1 a
q2
a
q0
a
q3
because this
computation
accepts aa
q1 a
a
q3
Courtesy Costas Busch - RPI
q2
“reject”
14
Rejection example
a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
15
First Choice
a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
16
First Choice
a
“reject”
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
17
Second Choice
a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
18
Second Choice
a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
19
Second Choice
a
a
q0
q1 a
q2
a
q3
“reject”
Courtesy Costas Busch - RPI
20
An NFA rejects a string:
when there is no computation of the NFA
that accepts the string:
• All the input is consumed and the
automaton is in a non final state
OR
• The input cannot be consumed
Courtesy Costas Busch - RPI
21
Example
a
is rejected by the NFA:
“reject”
a
q0
q1 a
q2
a
q0
a
q3
“reject”
q1 a
q2
a
q3
All possible computations lead to rejection
Courtesy Costas Busch - RPI
22
Rejection example
a a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
23
First Choice
a a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
24
First Choice
a a a
a
q0
q1 a
a
q3
q2
No transition:
the automaton hangs
Courtesy Costas Busch - RPI
25
First Choice
a a a
Input cannot be consumed
a
q0
q1 a
q2
“reject”
a
q3
Courtesy Costas Busch - RPI
26
Second Choice
a a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
27
Second Choice
a a a
a
q0
q1 a
q2
a
q3
Courtesy Costas Busch - RPI
28
Second Choice
a a a
a
q0
q1 a
a
q3
q2
No transition:
the automaton hangs
Courtesy Costas Busch - RPI
29
Second Choice
a a a
Input cannot be consumed
a
q0
q1 a
q2
a
q3
“reject”
Courtesy Costas Busch - RPI
30
aaa
is rejected by the NFA:
“reject”
a
q0
q1 a
q2
a
q0
a
q3
q1 a
a
q3
q2
“reject”
All possible computations lead to rejection
Courtesy Costas Busch - RPI
31
Language accepted:
a
q0
q1 a
L  {aa}
q2
a
q3
Courtesy Costas Busch - RPI
32
Lambda Transitions
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
33
a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
34
a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
35
(read head does not move)
a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
36
a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
37
all input is consumed
a a
“accept”
q0 a
String
q1 
q2 a
q3
aa is accepted
Courtesy Costas Busch - RPI
38
Rejection Example
a a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
39
a a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
40
(read head doesn’t move)
a a a
q0 a
q1 
q2 a
Courtesy Costas Busch - RPI
q3
41
a a a
q0 a
q1 
q2 a
q3
No transition:
the automaton hangs
Courtesy Costas Busch - RPI
42
Input cannot be consumed
a a a
“reject”
q0 a
String
aaa
q1 
q2 a
q3
is rejected
Courtesy Costas Busch - RPI
43
Language accepted:
q0 a
q1 
L  {aa}
q2 a
Courtesy Costas Busch - RPI
q3
44
Another NFA Example
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
45
a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
46
a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
47
a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
48
a b
“accept”
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
49
Another String
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
50
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
51
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
52
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
53
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
54
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
55
a b a b
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
56
a b a b
“accept”
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
57
Language accepted
L  ab, abab, ababab, ...

 ab
q0
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
58
Another NFA Example
0
q0
1
q1
0, 1 q2

Courtesy Costas Busch - RPI
59
Language accepted
L(M ) = {λ, 10, 1010, 101010, ...}
= {10} *
0
q0
1
q1
0, 1 q2

Courtesy Costas Busch - RPI
(redundant
state)
60
Remarks:
•The  symbol never appears on the
input tape
•Simple automata:
M1
q0
M2
L(M1) = {}
L(M 2 ) = {λ}
q0
Courtesy Costas Busch - RPI
61
•NFAs are interesting because we can
express languages easier than DFAs
NFA
q0
a
DFA
M1
a
M2
q2
q1
a
q0
L( M1) = {a}
Courtesy Costas Busch - RPI
a
q1
L( M 2 ) = {a}
62
Formal Definition of NFAs
M  Q, ,  , q0 , F 
Q : Set of states, i.e. q0 , q1, q2 
 : Input aplhabet, i.e. a, b
:
q0 :
Transition function
Initial state
F : Final states
Courtesy Costas Busch - RPI
63
Transition Function 
 q0 , 1  q1
0
q0
1
q1
0, 1 q
2

Courtesy Costas Busch - RPI
64
 (q1,0)  {q0 , q2}
0
q0
1
q1
0, 1 q
2

Courtesy Costas Busch - RPI
65
 (q0 ,  )  {q0 , q2}
0
q0
1
q1
0, 1 q
2

Courtesy Costas Busch - RPI
66
 (q2 ,1)  
0
q0
1
q1
0, 1 q
2

Courtesy Costas Busch - RPI
67
Extended Transition Function  *
 * q0 , a   q1
q5
q4
a
q0
a
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
68
 * q0 , aa   q4 , q5
q5
q4
a
q0
a
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
69
 * q0 , ab  q2 , q3 , q0
q5
q4
a
q0
a
a
b
q1
q2

q3

Courtesy Costas Busch - RPI
70
Formally
q j   * qi , w : there is a walk from qi to q j
with label
w
w
qi
qj
w  1 2  k
qi
1
2
Courtesy Costas Busch - RPI
k
qj
71
q j   * qi , w
 * (q0 , w)
qi
w
q0
qk
w
w
Courtesy Costas Busch - RPI
qj
72
Inductive Definition
Basis:
 * (q,  )  {q}
Induction: Suppose w = x a.
Also
Let
 * q, x  { p1, p2 ,, pk }
k
  p , a  {r , r ,, r }
i
1
2
m
i 1
Then
 * q, w  {r1, r2 ,, rm}
73
The Language of an NFA M
F  q0 ,q5
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , aa   q4 , q5
aa  L(M )
F
Courtesy Costas Busch - RPI
74
F  q0 ,q5
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , ab   q2 , q3 , q0 
F
Courtesy Costas Busch - RPI
ab LM 
75
F  q0 ,q5
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , abaa  q4 , q5
aaba L(M )
F
Courtesy Costas Busch - RPI
76
F  q0 ,q5
q5
q4
a
q0
a
a
b
q1
q2

q3

 * q0 , aba  q1
F
Courtesy Costas Busch - RPI
aba LM 
77
q5
q4
a
q0
a
a
b
q1
q2

q3

LM     ab* {aa}
Courtesy Costas Busch - RPI
78
Formally
The language accepted by NFA
M is:
LM   w1, w2 , w3 ,...
where
 * (q0 , wm )  {qi , q j ,..., qk ,}
and there is some
qk  F
Courtesy Costas Busch - RPI
(final state)
79
w LM 
 * (q0 , w)
qi
w
q0
qk
w
w
Courtesy Costas Busch - RPI
qk  F
qj
80
NFAs accept the Regular
Languages
Courtesy Costas Busch - RPI
81
Equivalence of Machines
Definition for Automata:
Machine
if
M1
is equivalent to machine
M2
LM1   LM 2 
Courtesy Costas Busch - RPI
82
Example of equivalent machines
NFA
LM1   {10}*
0
q0
1
DFA
LM 2   {10}*
M1
q1
M2
0,1
1
q2
0
q0
1
q1
0
Courtesy Costas Busch - RPI
83
We will prove:
Languages
accepted
by NFAs

Regular
Languages
NFAs and DFAs have the
same computation power
Courtesy Costas Busch - RPI
Languages
accepted
by DFAs
84
Step 1
Languages
accepted
by NFAs

Regular
Languages
Proof: Every DFA is trivially an NFA
Any language L accepted by a DFA
is also accepted by an NFA
Courtesy Costas Busch - RPI
85
Step 2
Languages
accepted
by NFAs

Regular
Languages
Proof: Any NFA can be converted to an
equivalent DFA
Any language L accepted by an NFA
is also accepted by a DFA
Courtesy Costas Busch - RPI
86
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
q0 
Courtesy Costas Busch - RPI
87
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
q0 
a
q1, q2 
Courtesy Costas Busch - RPI
88
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
q0 
a
q1, q2 
b

Courtesy Costas Busch - RPI
89
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
a
M
q0 
a
q1, q2 
b

Courtesy Costas Busch - RPI
90
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
a
b
q0 
a
q1, q2 
b

Courtesy Costas Busch - RPI
91
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
b
DFA
M
a
b
q0 
a
q1, q2 
b

a, b
Courtesy Costas Busch - RPI
92
Convert NFA to DFA
a
NFA M
a
 q
q
q
0
1
2
LM   L(M )
b
DFA
M
a
b
q0 
a
q1, q2 
b

a, b
Courtesy Costas Busch - RPI
93
NFA to DFA: Remarks
We are given an NFA
M  (QN , ,  N , q0 , FN )
We want to convert it
to an equivalent DFA
M   (QD , ,  D ,{q0}, FD )
With
LM   L(M )
Courtesy Costas Busch - RPI
94
If the NFA has n states
QN  {q0 , q1, q2 ,...,qn }
the DFA has 2n states in the power set of
QN
i.e.
,q0 ,q1,q1, q2 ,q3 , q4 , q7 ,....
Courtesy Costas Busch - RPI
95
Procedure NFA to DFA
1.
Initial state of NFA:
q0
Initial state of DFA:
q0 
Courtesy Costas Busch - RPI
96
NFA
Example
a
M
q0
a

q1
q2
b
DFA
M
q0 
Courtesy Costas Busch - RPI
97
Procedure NFA to DFA
2. For every DFA’s state {qi , q j ,..., qm}
Compute in the NFA
 * qi , a ,
 * q j , a ,
}
 {qi , qj ,..., qm
...
Add transition to DFA
}
 {qi , q j ,..., qm}, a   {qi , qj ,..., qm
Courtesy Costas Busch - RPI
98
NFA
Exampe
a
M
q0
a
q1

q2
b
 * (q0 , a)  {q1, q2}
DFA M 
q0 
a
q1, q2 
 q0 , a   q1, q2 
Courtesy Costas Busch - RPI
99
Procedure NFA to DFA
Repeat Step 2 for all letters in alphabet,
until
no more transitions can be added.
Courtesy Costas Busch - RPI
100
NFA
Example
a
M
q0
a

q1
q2
b
DFA
M
a
b
q0 
a
q1, q2 
b

a, b
Courtesy Costas Busch - RPI
101
Procedure NFA to DFA
3. For any DFA state {qi , q j ,..., qm}
If some
qj
is a final state in the NFA
Then, {qi , q j ,..., qm }
is a final state in the DFA
Courtesy Costas Busch - RPI
102
NFA
Example
a
M
q0
a

q1
q2
q1  F
b
DFA
M
a
b
q0 
a
q1, q2 
q1, q2  F 
b

a, b
Courtesy Costas Busch - RPI
103
Take NFA
Theorem
M
Apply procedure to obtain DFA
Then
M
and
M
M
are equivalent :
L  M   L M  
Courtesy Costas Busch - RPI
104
Proof
L  M   L M  
LM   LM 
AND
LM   LM 
Courtesy Costas Busch - RPI
105
First we show:
LM   LM 
Take arbitrary:
w L(M )
We will prove:
w  L(M )
Courtesy Costas Busch - RPI
106
w L(M )
M:
w
q0
qf
w  1 2  k
M:
q0
1
2
Courtesy Costas Busch - RPI
k
qf
107
We will show that if
w L(M )
w  1 2  k
M:
M:
q0
1
2
k
1
2
k
{q0}
w  L(M )
Courtesy Costas Busch - RPI
qf
{q f ,}
108
More generally, we will show that if in
(arbitrary string)
M:
q0
M:
a1
a1
{q0}
M:
v  a1a2 an
qi
a2
qj
a2
{qi ,} {q j ,}
Courtesy Costas Busch - RPI
ql
an
qm
an
{ql ,} {qm ,}
109
Proof by induction on
Induction Basis:
M:
|v|
v  a1
q0
M:
a1
qi
a1
{q0}
{qi ,}
Courtesy Costas Busch - RPI
110
Induction hypothesis:
1 | v | k
v  a1a2 ak
M:
q0
M:
a1
a1
{q0}
qi
a2
qc
qj
qd
ak
a2
{qi ,} {q j ,}
ak
{qc ,} {qd ,}
Courtesy Costas Busch - RPI
111
Induction Step:
| v | k  1
v  a1a2 ak ak 1  vak 1


v
M:
q0
a1
qi
a2
qc
qj
ak
qd
v
M:
a1
{q0}
ak
a2
{qi ,} {q j ,}
v
{qc ,} {qd ,}
Courtesy Costas Busch - RPI
112
Induction Step:
| v | k  1
v  a1a2 ak ak 1  vak 1


v
M:
q0
a1
qi
a2
qc
qj
ak
qd
ak 1
qe
v
M:
a1
{q0}
ak
a2
{qi ,} {q j ,}
v
ak 1
{qc ,} {qd ,}
Courtesy Costas Busch - RPI
{qe ,}
113
Therefore if
w L(M )
w  1 2  k
M:
M:
q0
1
2
k
1
2
k
{q0}
w  L(M )
Courtesy Costas Busch - RPI
qf
{q f ,}
114
We have shown:
LM   LM 
We also need to show:
LM   LM 
(proof is similar)
Courtesy Costas Busch - RPI
115