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 LM
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 LM
77
q5
q4
a
q0
a
a
b
q1
q2
q3
LM ab* {aa}
Courtesy Costas Busch - RPI
78
Formally
The language accepted by NFA
M is:
LM w1, w2 , w3 ,...
where
* (q0 , wm ) {qi , q j ,..., qk ,}
and there is some
qk F
Courtesy Costas Busch - RPI
(final state)
79
w LM
* (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
LM1 LM 2
Courtesy Costas Busch - RPI
82
Example of equivalent machines
NFA
LM1 {10}*
0
q0
1
DFA
LM 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
LM 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
LM 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 , qj ,..., qm
...
Add transition to DFA
}
{qi , q j ,..., qm}, a {qi , qj ,..., 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
LM LM
AND
LM LM
Courtesy Costas Busch - RPI
105
First we show:
LM LM
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 vak 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 vak 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:
LM LM
We also need to show:
LM LM
(proof is similar)
Courtesy Costas Busch - RPI
115