Non Deterministic Automata
description
Transcript of Non Deterministic Automata
Courtesy Costas Busch - RPI 1
Non Deterministic Automata
Courtesy Costas Busch - RPI 2
1q 2q
3q
a
a
a
0q
}{aAlphabet =
Nondeterministic Finite Accepter (NFA)
Courtesy Costas Busch - RPI 3
1q 2q
3q
a
a
a
0q
Two choices
}{aAlphabet =
Nondeterministic Finite Accepter (NFA)
Courtesy Costas Busch - RPI 4
No transition
1q 2q
3q
a
a
a
0q
Two choices No transition
}{aAlphabet =
Nondeterministic Finite Accepter (NFA)
Courtesy Costas Busch - RPI 5
a a
0q
1q 2q
3q
a
a
First Choice
a
Courtesy Costas Busch - RPI 6
a a
0q
1q 2q
3q
a
a
a
First Choice
Courtesy Costas Busch - RPI 7
a a
0q
1q 2q
3q
a
a
First Choice
a
Courtesy Costas Busch - RPI 8
a a
0q
1q 2q
3q
a
a
a “accept”
First Choice
All input is consumed
Courtesy Costas Busch - RPI 9
a a
0q
1q 2q
3q
a
a
Second Choice
a
Courtesy Costas Busch - RPI 10
a a
0q
1q 2qa
a
Second Choice
a
3q
Courtesy Costas Busch - RPI 11
a a
0q
1q 2qa
a
a
3q
Second Choice
No transition:the automaton hangs
Courtesy Costas Busch - RPI 12
a a
0q
1q 2qa
a
a
3q
Second Choice
“reject”
Input cannot be consumed
Courtesy Costas Busch - RPI 13
An NFA accepts a string:when there is a computation of the NFAthat accepts the string
all the input is consumed and the automatonis in a final state
AND
Courtesy Costas Busch - RPI 14
Example
aa is accepted by the NFA:
0q
1q 2q
3q
a
a
a
“accept”
0q
1q 2qa
a
a
3q “reject”because this computationaccepts aa
Courtesy Costas Busch - RPI 15
a
0q
1q 2q
3q
a
a
Rejection example
a
Courtesy Costas Busch - RPI 16
a
0q
1q 2q
3q
a
a
a
First Choice
Courtesy Costas Busch - RPI 17
a
0q
1q 2q
3q
a
a
a
First Choice
“reject”
Courtesy Costas Busch - RPI 18
Second Choice
a
0q
1q 2q
3q
a
a
a
Courtesy Costas Busch - RPI 19
Second Choice
a
0q
1q 2qa
a
a
3q
Courtesy Costas Busch - RPI 20
Second Choice
a
0q
1q 2qa
a
a
3q “reject”
Courtesy Costas Busch - RPI 21
An NFA rejects a string:when there is no computation of the NFAthat accepts the string:
• All the input is consumed and the automaton is in a non final state
• The input cannot be consumed
OR
Courtesy Costas Busch - RPI 22
Example
a is rejected by the NFA:
0q
1q 2qa
a
a
3q “reject”
0q
1q 2qa
a
a
3q
“reject”
All possible computations lead to rejection
Courtesy Costas Busch - RPI 23
Rejection example
a a
0q
1q 2q
3q
a
a
a
a
Courtesy Costas Busch - RPI 24
a a
0q
1q 2q
3q
a
a
a
First Choice
a
Courtesy Costas Busch - RPI 25
a a
0q
1q 2q
3q
a
a
First Choice
a
a
No transition:the automaton hangs
Courtesy Costas Busch - RPI 26
a a
0q
1q 2q
3q
a
a
a “reject”
First Choice
a
Input cannot be consumed
Courtesy Costas Busch - RPI 27
a a
0q
1q 2q
3q
a
a
Second Choice
a
a
Courtesy Costas Busch - RPI 28
a a
0q
1q 2qa
a
Second Choice
a
3q
a
Courtesy Costas Busch - RPI 29
a a
0q
1q 2qa
a
a
3q
Second Choice
No transition:the automaton hangs
a
Courtesy Costas Busch - RPI 30
a a
0q
1q 2qa
a
a
3q
Second Choice
“reject”
a
Input cannot be consumed
Courtesy Costas Busch - RPI 31
aaais rejected by the NFA:
0q
1q 2q
3q
a
a
a
“reject”
0q
1q 2qa
a
a
3q “reject”
All possible computations lead to rejection
Courtesy Costas Busch - RPI 32
1q 2q
3q
a
a
a
0q
Language accepted: }{aaL
Courtesy Costas Busch - RPI 33
Lambda Transitions
1q 3qa0q
2q a
Courtesy Costas Busch - RPI 34
a a
1q 3qa0q
2q a
Courtesy Costas Busch - RPI 35
a a
1q 3qa0q
2q a
Courtesy Costas Busch - RPI 36
a a
1q 3qa0q
2q a
(read head does not move)
Courtesy Costas Busch - RPI 37
a a
1q 3qa0q
2q a
Courtesy Costas Busch - RPI 38
a a
1q 3qa0q
2q a
“accept”
String is acceptedaa
all input is consumed
Courtesy Costas Busch - RPI 39
a a
1q 3qa0q
2q a
Rejection Example
a
Courtesy Costas Busch - RPI 40
a a
1q 3qa0q
2q a
a
Courtesy Costas Busch - RPI 41
a a
1q 3qa0q
2q a
(read head doesn’t move)
a
Courtesy Costas Busch - RPI 42
a a
1q 3qa0q
2q a
a
No transition:the automaton hangs
Courtesy Costas Busch - RPI 43
a a
1q 3qa0q
2q a
“reject”
String is rejectedaaa
a
Input cannot be consumed
Courtesy Costas Busch - RPI 44
Language accepted: }{aaL
1q 3qa0q
2q a
Courtesy Costas Busch - RPI 45
Another NFA Example
0q 1q 2qa b
3q
Courtesy Costas Busch - RPI 46
a b
0q 1q 2qa b
3q
Courtesy Costas Busch - RPI 47
0q 2qa b
3q
a b
1q
Courtesy Costas Busch - RPI 48
a b
0q 1qa b
3q2q
Courtesy Costas Busch - RPI 49
a b
0q 1qa b
3q2q
“accept”
Courtesy Costas Busch - RPI 50
0qa b
a b
Another String
a b
1q 2q 3q
Courtesy Costas Busch - RPI 51
0qa b
a b a b
1q 2q 3q
Courtesy Costas Busch - RPI 52
0qa b
a b a b
1q 2q 3q
Courtesy Costas Busch - RPI 53
0qa b
a b a b
1q 2q 3q
Courtesy Costas Busch - RPI 54
0qa b
a b a b
1q 2q 3q
Courtesy Costas Busch - RPI 55
0qa b
a b a b
1q 2q 3q
Courtesy Costas Busch - RPI 56
0qa b
a b a b
1q 2q 3q
Courtesy Costas Busch - RPI 57
a b a b
0qa b
1q 2q 3q
“accept”
Courtesy Costas Busch - RPI 58
ab
ababababababL ...,,,
Language accepted
0q 1q 2qa b
3q
Courtesy Costas Busch - RPI 59
Another NFA Example
0q 1q 2q0
11,0
Courtesy Costas Busch - RPI 60
{ }{ } *10=
...,101010,1010,10,λ=)(ML
0q 1q 2q0
11,0
Language accepted
(redundant state)
Courtesy Costas Busch - RPI 61
Remarks:
•The symbol never appears on the input tape
0q2M
0q1M
{}=)M(L 1 }λ{=)M(L 2
•Simple automata:
Courtesy Costas Busch - RPI 62
0q
2q
1qa
a
a
0q 1qa
}{=)( 1 aML
2M1M
}{=)( 2 aML
NFA DFA
•NFAs are interesting because we can express languages easier than DFAs
Courtesy Costas Busch - RPI 63
Formal Definition of NFAs FqQM ,,,, 0
:Q
::0q
:F
Set of states, i.e. 210 ,, qqq
: Input aplhabet, i.e. ba,
Transition function
Initial state
Final states
Courtesy Costas Busch - RPI 64
10 1, qq
0
11,0
Transition Function
0q 1q 2q
Courtesy Costas Busch - RPI 65
0q
0
11,0
},{)0,( 201 qqq
1q 2q
Courtesy Costas Busch - RPI 66
0q
0
11,0
1q 2q
},{),( 200 qqq
Courtesy Costas Busch - RPI 67
0q
0
11,0
1q 2q
)1,( 2q
Courtesy Costas Busch - RPI 68
Extended Transition Function
*
0q
5q4q
3q2q1qa
aa
b
10 ,* qaq
Courtesy Costas Busch - RPI 69
540 ,,* qqaaq
0q
5q4q
3q2q1qa
aa
b
Courtesy Costas Busch - RPI 70
0320 ,,,* qqqabq
0q
5q4q
3q2q1qa
aa
b
Courtesy Costas Busch - RPI 71
Formally
wqq ij ,* : there is a walk from to with label
iq jqw
iq jq
w
kw 211 2 k
iq jq
Courtesy Costas Busch - RPI 72
0q kq
w
w
w
),(* 0 wq
iq
jq
wqq ij ,*
Courtesy Costas Busch - RPI 73
Inductive Definition
},,,{,* 21 kpppxq
}{),(* qq Basis:
Induction: Suppose w = x a.
Also
Let
Then
k
imi rrrap
121 },,,{,
},,,{,* 21 mrrrwq
Courtesy Costas Busch - RPI 74
The Language of an NFA
0q
5q4q
3q2q1qa
aa
b
540 ,,* qqaaq
M
)(MLaa
50 ,qqF
F
Courtesy Costas Busch - RPI 75
0q
5q4q
3q2q1qa
aa
b
0320 ,,,* qqqabq MLab
50 ,qqF
F
Courtesy Costas Busch - RPI 76
0q
5q4q
3q2q1qa
aa
b
50 ,qqF
540 ,,* qqabaaq )(MLaabaF
Courtesy Costas Busch - RPI 77
0q
5q4q
3q2q1qa
aa
b
50 ,qqF
10 ,* qabaq MLabaF
Courtesy Costas Busch - RPI 78
0q
5q4q
3q2q1qa
aa
b
}{* aaabML
Courtesy Costas Busch - RPI 79
FormallyThe language accepted by NFA is:
where
and there is some
M
,...,, 321 wwwML
},,...,,{),(* 0 kjim qqqwq
Fqk (final state)
Courtesy Costas Busch - RPI 80
0q kq
w
w
w
),(* 0 wq MLw
Fqk
iq
jq
Courtesy Costas Busch - RPI 81
NFAs accept the Regular Languages
Courtesy Costas Busch - RPI 82
Equivalence of Machines
Definition for Automata:
Machine is equivalent to machine
if
1M 2M
21 MLML
Courtesy Costas Busch - RPI 83
Example of equivalent machines
0q 1q
0
1
0q 1q 2q
0
11
0
1,0
NFA
DFA
*}10{1 ML
*}10{2 ML
1M
2M
Courtesy Costas Busch - RPI 84
We will prove:
Languages acceptedby NFAs
RegularLanguages
NFAs and DFAs have the same computation power
Languages acceptedby DFAs
Courtesy Costas Busch - RPI 85
Languages acceptedby NFAs
RegularLanguages
Step 1
Proof: Every DFA is trivially an NFA
Any language accepted by a DFAis also accepted by an NFA
L
Courtesy Costas Busch - RPI 86
Languages acceptedby NFAs
RegularLanguages
Step 2
Proof: Any NFA can be converted to anequivalent DFA
Any language accepted by an NFAis also accepted by a DFA
L
Courtesy Costas Busch - RPI 87
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q
M
M
Courtesy Costas Busch - RPI 88
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
M
M
Courtesy Costas Busch - RPI 89
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
M
M
Courtesy Costas Busch - RPI 90
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
a
M
M
Courtesy Costas Busch - RPI 91
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
ab
M
M
Courtesy Costas Busch - RPI 92
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
ab
ba,
M
M
Courtesy Costas Busch - RPI 93
Convert NFA to DFA
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
ab
ba,
M
M
)(MLML
Courtesy Costas Busch - RPI 94
NFA to DFA: Remarks
We are given an NFA
We want to convert it to an equivalent DFA
With
),,,,( 0 NNN FqQM
)(MLML
)},{,,,( 0 DDD FqQM
Courtesy Costas Busch - RPI 95
If the NFA has n states
the DFA has 2n states in the power set of QN
i.e.
},...,,,{ 210 nN qqqqQ
,....,,,,,,, 7432110 qqqqqqq
Courtesy Costas Busch - RPI 96
Procedure NFA to DFA
1. Initial state of NFA:
Initial state of DFA:
0q
0q
Courtesy Costas Busch - RPI 97
Example
a
b
a
0q 1q 2q
NFA
DFA
0q
M
M
Courtesy Costas Busch - RPI 98
Procedure NFA to DFA
2. For every DFA’s state
Compute in the NFA
Add transition to DFA
},...,,{ mji qqq
...
,,*
,,*
aq
aq
j
i
},...,,{ mji qqq
},...,,{},,...,,{ mjimji qqqaqqq
Courtesy Costas Busch - RPI 99
Exampe
a
b
a
0q 1q 2q
NFA
0q 21,qqa
DFA
},{),(* 210 qqaq
210 ,, qqaq
M
M
Courtesy Costas Busch - RPI 100
Procedure NFA to DFA
Repeat Step 2 for all letters in alphabet,
untilno more transitions can be added.
Courtesy Costas Busch - RPI 101
Example
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
ab
ba,
M
M
Courtesy Costas Busch - RPI 102
Procedure NFA to DFA
3. For any DFA state
If some is a final state in the NFA
Then, is a final state in the DFA
},...,,{ mji qqq
jq
},...,,{ mji qqq
Courtesy Costas Busch - RPI 103
Example
a
b
a
0q 1q 2q
NFA
DFA
0q 21,qqa
b
ab
ba,
Fq 1
Fqq 21,
M
M
Courtesy Costas Busch - RPI 104
Theorem Take NFA M
Apply procedure to obtain DFA M
Then and are equivalent :M M
MLML
Courtesy Costas Busch - RPI 105
Proof
MLML
MLML MLML AND
Courtesy Costas Busch - RPI 106
MLML First we show:
)(MLwTake arbitrary:
We will prove: )(MLw
Courtesy Costas Busch - RPI 107
)(MLw
0q fq
w
kw 211 2 k
0q fq:M
:M
Courtesy Costas Busch - RPI 108
0q fq
kw 211 2 k
:M
}{ 0q
1 2 k:M
},{ fq
)(MLw
)(MLw
We will show that if
Courtesy Costas Busch - RPI 109
0q mq
naaav 211a 2a na:M
}{ 0q
1a 2a na:M },{ iq
iq jq lq
},{ jq },{ lq },{ mq
More generally, we will show that if in :M
(arbitrary string)
Courtesy Costas Busch - RPI 110
0q 1a:M
}{ 0q
1a:M },{ iq
iq
Proof by induction on
Induction Basis: 1av
|| v
Courtesy Costas Busch - RPI 111
Induction hypothesis: kv ||1
0q dq1a 2a ka:M iq jq cq
}{ 0q
1a 2a ka:M },{ iq },{ jq },{ cq },{ dq
kaaav 21
Courtesy Costas Busch - RPI 112
Induction Step: 1|| kv
0q dq1a 2a ka:M iq jq cq
}{ 0q
1a 2a ka:M },{ iq },{ jq },{ cq },{ dq
1121
kk
v
k avaaaav
v
v
Courtesy Costas Busch - RPI 113
Induction Step: 1|| kv
0q dq1a 2a ka:M iq jq cq
}{ 0q
1a 2a ka:M },{ iq },{ jq },{ cq },{ dq
1121
kk
v
k avaaaav
v
v
eq1ka
1ka
},{ eq
Courtesy Costas Busch - RPI 114
0q fq
kw 211 2 k
:M
}{ 0q
1 2 k:M
},{ fq
)(MLw
)(MLw
Therefore if
Courtesy Costas Busch - RPI 115
We have shown: MLML
We also need to show: MLML
(proof is similar)