cdt314 faber formal languages, automata and models of computation lecture 3
DESCRIPTION
CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 3 School of Innovation, Design and Engineering Mälardalen University 2012. 1. Content Finite Automata, FA Deterministic Finite Automata, DFA Nondeterministic Automata NFA NFA DFA Equivalence. - PowerPoint PPT PresentationTRANSCRIPT
11
CDT314
FABER
Formal Languages, Automata and Models of Computation
Lecture 3
School of Innovation, Design and Engineering Mälardalen University
2012
2
Content
Finite Automata, FADeterministic Finite Automata, DFANondeterministic Automata NFANFA DFA Equivalence
3
Finite Automata FA(Finite State Machines)
Based on C Busch, RPI, Models of Computation
4
There is no formal general definition for "automaton". Instead, there are various kinds of automata, each with it's own formal definition.
• has some form of input• has some form of output• has internal states • may or may not have some form of storage• is hard-wired rather than programmable
Generally, an automaton
5
Finite Automaton
Input
String
Output
String
FiniteAutomaton
6
Finite Accepter
Input
“Accept” or“Reject”
String
FiniteAutomaton
Output
7
Nodes = States Edges = Transitions
An edge with several symbols is a short-hand for several edges:
Finite Automaton as Directed Graph
1qa
0q
1qba,0q1q
a
0qb
8
Deterministic Finite Automata DFA
9
• Deterministic there is no element of choice• Finite only a finite number of states and arcs • Acceptors produce only a yes/no answer
DFA
10
Transition Graph
initialstate
final state“accept”state
transition
abba -Finite Acceptor
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
},{ baAlphabet =
11
Formal DefinitionDeterministic Finite Accepter (DFA)
FqQM ,,,, 0
Q
0q
F
: set of states
: input alphabet
: transition function
: initial state
: set of final states
12
Set of States
Q
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
543210 ,,,,, qqqqqqQ
ba,
13
Input Alphabet
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
ba,
14
Initial State
0q
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,0q
15
Set of Final States
F
0q 1q 2q 3qa b b a
5q
a a bb
ba, 4qF
ba,
4q
16
Transition Function
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
QQ :
ba,
17
10 , qaq
2q 3q 4qa b b a
5q
a a bb
ba,
ba,0q 1q
18
50 , qbq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,0q
19
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
32 , qbq
20
Transition Function
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
a b0q
2q
5q
1q 5q
5q5q
3q
4q
1q 5q 2q5q 3q4q 5q5q 5q
21
Extended Transition Function
*
QQ *:*
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
22
20 ,* qabq
3q 4qa b b a
5q
a a bb
ba,
ba,0q 1q 2q
23
40 ,* qabbaq
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
24
50 ,* qabbbaaq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,0q
Observation: There is a walk from to with the label
0q 5qabbbaa
25
Recursive Definition
)),,(*(,*
,*awqwaq
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
26
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
21
0
0
0
0
,,,
,,,*),,(*
,*
qbqbaq
baqbaq
abq
27
String Acceptance
Definition:A string w is accepted by DFA M if w
drives M to a final state from the initial state.
Formally: M accepts w iff
Fwq ,* 0
28
50 ,* qabbbaaq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,0q
abbbaa is NOT accepted
29
40 ,* qabbaq
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
abba is accepted
30
Language Accepted by DFA
Take a DFA
Definition:The language contains all input strings accepted by
= strings that drive to a final
state
M
MLM
ML M
31
Example
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
abbaML M
accept
},{ baAlphabet =
32
Another Example
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
abbaabML ,, M
acceptacceptaccept
},{ baAlphabet =
33
Formally
For a DFA
Language accepted by :
FqQM ,,,, 0
M
FwqwML ,*:* 0
alphabet transitionfunction
initialstate
finalstates
34
Observation
Language accepted by
FwqwML ,*:* 0
M
FwqwML ,*:* 0
MLanguage rejected by
35
More Examples
a
b ba,
ba,
0q 1q 2q
}0:{ nbaML n
accept trap state},{ baAlphabet =
36
ML = { all strings with prefix }ab
a b
ba,
0q 1q 2q
accept
ba,3q
ab
},{ baAlphabet =
37
ML = { all strings without substring }001
0 00 001
1
0
110
0 1,0
}1,0{Alphabet =
38
Regular Languages
All regular languages form a language family
LM MLL
A language is regular if there is a DFA such that
39
Example
*,: bawawaL
a
b
ba,
a
b
ba
0q 2q 3q
4q
is regular
The language
},{ baAlphabet =
40
Nondeterministic Finite Automata NFA
41
• Nondeterministic there is an element of choice: in a given
state NFA can act on a given string in different ways. Several start/final states are allowed. -transitions are allowed.
• Finite only a finite number of states and arcs • Acceptors produce only a yes/no answer
NFA
42
1q 2q
3q
a
a
a
0q
Two choices
}{aAlphabet =
Nondeterministic Finite Accepter (NFA)
43
a a
0q
1q 2q
3q
a
a
First Choice
a
44
a a
0q
1q 2q
3q
a
a
a
First Choice
45
a a
0q
1q 2q
3q
a
a
First Choice
a
46
a a
0q
1q 2q
3q
a
a
a “accept”
First Choice
47
a a
0q
1q 2q
3q
a
a
Second Choice
a
48
a a
0q
1q 2qa
a
Second Choice
a
3q
49
a a
0q
1q 2qa
a
a
3q
Second Choice
No transition:the automaton hangs
50
a a
0q
1q 2qa
a
a
3q
Second Choice
“reject”
51
Observation
An NFA accepts a string ifthere is at least one computation of the NFA that accepts the string
52
Exampleaa is accepted by the NFA:
0q
1q 2q
3q
a
a
a
53
Lambda Transitions
1q 3qa0q 2q a
54
a a
1q 3qa0q 2q a
55
a a
1q 3qa0q 2q a
56
a a
1q 3qa0q 2q a
(read head doesn’t move)
57
a a
1q 3qa0q 2q a
58
a a
1q 3qa0q 2q a
“accept”
String is acceptedaa
59
Language accepted: }{aaL
1q 3qa0q 2q a
60
Another NFA Example
0q 1q 2qa b
3q
},{ baAlphabet =
61
a b
0q 1q 2qa b
3q
62
a b
0q 2qa b
3q1q
63
a b
0q 1qa b
3q2q
64
a b
0q 1qa b
3q2q“accept”
65
a b
Another String
a b
0q a b
1q 2q 3q
},{ baAlphabet =
66
a b a b
0q a b
1q 2q 3q
67
a b a b
0q a b
1q 2q 3q
68
a b a b
0q a b
1q 2q 3q
69
a b a b
0q a b
1q 2q 3q
70
a b a b
0q a b
1q 2q 3q
71
a b a b
0q a b
1q 2q 3q
72
a b a b
0q a b
1q 2q 3q
“accept”
73
ab
ababababababL ...,,,
Language accepted
0q 1q 2qa b
3q
},{ baAlphabet =
74
Another NFA Example
0q 1q 2q0
11,0
}1,0{Alphabet =
75
*10
...,101010,1010,10, L
0q 1q 2q0
11,0
Language accepted
76
Formal Definition of NFA FqQM ,,,, 0
:Q
::0q
:F
Set of states, i.e. 210 ,, qqq
: Input alphabet, i.e. ba,Transition function
Initial state
Final states
77
10 1, qq
Transition Function
0
11,0
0q 1q 2q
78
},{)0,( 201 qqq
0q0
11,0
1q 2q
79
0q0
11,0
1q 2q
},{),( 200 qqq
80
0q0
11,0
1q 2q
)1,( 2q
81
Extended Transition Function
*
10 ,* qaq
0q
5q4q
3q2q1qaaa
b
(Utvidgad övergångsfunktion)
82
540 ,,* qqaaq
0q
5q4q
3q2q1qaaa
b
83
0320 ,,,* qqqabq
0q
5q4q
3q2q1qaaa
b
84
Formally
wqq ij ,*
if and only if
there is a walk from towith label
iq jqw
85
The Language of an NFA
540 ,,* qqaaq
0q
5q4q
3q2q1qaaa
b
M
)(MLaa
50 ,qqF
},{ baAlphabet =
86
0320 ,,,* qqqabq
0q
5q4q
3q2q1qaaa
b
MLab
50 ,qqF
87
50 ,qqF
540 ,,* qqabaaq )(MLabaa
0q
5q4q
3q2q1qaaa
b
88
10 ,* qabaq MLaba
0q
5q4q
3q2q1qaaa
b
50 ,qqF
89
0q
5q4q
3q2q1qaaa
b
aaababaaML *
90
Formally
The language accepted by NFA M
,...,, 321 wwwML
,...},{),(* 0 jim qqwq
Fqk (final state)
where
and there is some (at least one)
is:
91
MLw
0q kq
w
w
w
),(* 0 wq
Fqk
iq
jq
92
NFA DFA Equivalence
93
Equivalence of NFAs and DFAs
Accept the same languages?
YES!
NFAs DFAs ?
The same power?
94
We will prove:
Languages acceptedby NFAs
Languages acceptedby DFAs
NFAs and DFAs have the same computation power!
95
Languages acceptedby NFAs
Languages acceptedby DFAs
Step 1
Proof Every DFA is also an NFA
A language accepted by a DFAis also accepted by an NFA
96
Languages acceptedby NFAs
Languages acceptedby DFAs
Step 2
Proof Any NFA can be converted to anequivalent DFA
A language accepted by an NFAis also accepted by a DFA
97
Procedure NFA to DFA Idea: Define new states in DFA that collect the states
with the same transition
0
1a
3a,b
{0}start
{1,3}a
{3}b
start
98
Procedure NFA to DFA
1. Initial state of NFA:
Initial state of DFA:
0q
0q
99
Example
a
b
a
0q 1q 2q
NFA
DFA 0q
Step 1
100
Procedure NFA to DFA
2. For every DFA’s state
Compute in the NFA
},...,,{ mji qqq
...
,,*,,*
aqaq
j
i
},...,,{},,...,,{ mjimji qqqaqqq
},...,,{ mji qqq
Add transition
101
Example NFA
DFA
a
b
a
0q 1q 2q
},{),(* 210 qqaq
0q 21,qqa
210 ,, qqaq
Step 2
},{ baAlphabet =
102
Procedure NFA to DFA
Repeat Step 2 for all letters in alphabet,
until no more transitions can be added.
103
Example
a
b
a
0q 1q 2q
NFA
DFA 0q 21,qqa
b
ab
ba,
Step 3
},{ baAlphabet =
104
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
105
Example
a
b
a0q 1q 2q
NFA
DFA
0q 21,qqa
b
ab
ba,
Fq 1
Fqq 21,
Step 4
},{ baAlphabet =
106
Theorem
Take NFA M
Apply the procedure to obtain DFA M
Then and are equivalent :M M
MLML
107
Languages acceptedby NFAs
Languages acceptedby DFAs
We have proven (proof by construction):
Regular Languages
END OF PROOF
108
Nondeterministic vs.
Deterministic Automata
109
Formal Definition of NFA
FqQM ,,,, 0
:Q Set of states, i.e. 210 ,, qqq: Input alphabet, i.e. ba,: Transition function:0q Initial state
:F Final (accepting) states
NFA is a mathematical model defined as a quintuple:
110
Deterministic Finite Automata
A deterministic finite automaton (DFA) is a special case of a nondeterministic finite automaton (NFA) in which1. no state has an -transition, i.e. a transition
on input , and2. for each state q and input symbol a, there
is at most one edge labeled a leaving q.
111
STATEINPUT SYMBOL
a b
012
{0, 1}--
{0}{2}{3}
Transition table for the finite automaton above
A nondeterministic finite automaton
b
0start 1a 2b b3
a
Example: NFA
112
NFA accepting aa* + bb*
0start
1
a2
a
3
b 4
b
Example
113
NFA accepting (a+b)*abb
0start 1a 2b b
b
a a
a
b
3
a
Example
114NFA recognizing three different patterns.
(a) NFA for a, abb, and a*b+.
(b) Combined NFA.
Example
4
1
start
a2
3a
65b b
7b
8
ba
0
4
1start a
2
3start a
65b b
7start b
8
ba
115
Ways to Think of Nondeterminism
• always make the correct guess• “backtracking” (systematically try all possibilities)
For a particular string, imagine a tree of possiblestate transitions:
q4a
q0
q3
q0q2
q1a
a
a
b
a
116
Advantages of Nondeterminism
• An NFA can be smaller, easier to construct and easier to understand than a DFA that accepts the same language
• NFAs are useful for proving some theorems• NFAs are good introduction to nondeterminism
in more powerful computational models, where nondeterminism plays an important role
117
Space and time taken to recognize regular expressions:- NFA more compact but take time to backtrack all choices- DFA take place, but save time
Time-Space Tradeoffs Goal: Given reg. exp. r and input string x, determine whether x is in L(r) Method #1: Build NFA N from r using Thompson's construction, then run previous algorithm construct NFA in O(|r|) time. N has at most twice as many states as |r|, and at most two transitions from each state, so transition table is O(|r|) space. Previous algorithm accepts or rejects x in O(|r|×|x|) time
AUTOMATON SPACE TIME
NFADFA
O(|r|)O(2|r|)
O(|r||x|)O(|x|)
DFA vs. NFA Space and Time Complexity Tradeoffs
(Where r is regular expression, and x is input string)
118
Equivalent automata
Two finite automata M1 and M2 are equivalent if
L(M1) = L(M2)
that is, if they both accept the same language.
119
Equivalence of NFAs and DFAs
To show that NFAs and DFAs accept the same class of languages, we show two things:
– Any language accepted by a DFA can also be accepted by some NFA (As DFA is a special case of NFA)
– Any language accepted by a NFA can also be accepted by some (corresponding, specially constructed) DFA
120
Proof Strategy
To show that any language accepted by a NFA is also accepted by some DFA, we describe an algorithm that takes any NFA and converts it into a DFA that accepts the same language.
The algorithm is called the “subset construction algorithm”.
We can use mathematical induction (on the length of a string accepted by the automaton) to prove the DFA that is constructed accepts the same language as the NFA.
121
Converting NFA to DFA by Subset Construction
http://www.math.uu.se/~salling/Movies/SubsetConstruction.mov
122
Subset construction
Given a NFA construct a DFA that accepts the same language.
The equivalent DFA simulates the NFA by keeping track of the possible states it could be in. Each state of the DFA is a subset of the set of states of the NFA -hence, the name of the algorithm.
If the NFA has n states, the DFA can have as many as 2n states, although it usually has many less.
123
Steps of subset construction
The initial state of the DFA is the set of all states the NFA can be in without reading any input.
For any state {qi,qj,…,qk} of the DFA and any input a, the next state of the DFA is the set of all states of the NFA that can result as next states if the NFA is in any of the states qi,qj,…,qk when it reads a. This includes states that can be reached by reading a, followed by any number of -moves. Use this rule to keep adding new states and transitions until it is no longer possible to do so.
The accepting states of the DFA are those states that contain an accepting state of the NFA.
124
Example
Here is a NFA that we want to convert to an equivalent DFA.
a
bb
01
2
b
a
a
b
},{ baAlphabet =
125
{0,1}
The start state of the DFA is the set of states the NFA can be in before reading any input. This includes the start state of the NFA and any states that can be reached by a -transition.
a
bb
b
a
a
01
2
b
NFA
DFA
},{ baAlphabet =
126
{0,1}
a
b
{2}
For start state {0,1}, make transitions for each possible input, here a and b. Reading b from start {0,1}, we reach state {2}. Means from either {0}, or {1} we reach {2}.
a
bb
b
a
a
01
2
b
NFADFA
127
For state {2}, we create a transition for each possible input, a and b. From {2}, with b we are either back to {2} (loop) or we reach {1}- see the little framed original NFA. So from {2}, with b we end in state {1, 2}. Reading a leads us from {2} to {0} in the original NFA, which means state {0, 1} in the new DFA.
ba
a
b{0,1}{1,2}
{2}
a
bb
b
a
a
01
2
b
NFADFA
128
For state {1, 2}, we make again transition for eachpossible input, a and b. From {2} a leads us to {0}. From {1} with a we are back to {1}. So, we reach {0, 1} with a from {1,2}. With b we are back to {1,2}.
At this point, a transition is defined for every state-input pair.
ba
a
b{0,1}
{1,2}
{2}
b
a
DFA a
bb
b
a
a
01
2
b
NFA
129
The last step is to mark the final states of the DFA.As {1} was the accepting state in NFA, all states containing {1} in DFA will be accepting states: ({0, 1} and {1, 2}).
ba
a
b{0,1} {1,2}
{2}
b
a
DFA a
bb
b
a
a
01
2
b
NFA
130
Subset Construction Algorithm
131
Subset Construction
States of nondeterministic M´ will correspond to sets of states of deterministic M
Where q0 is start state of M, use {q0} as start state of M´.
Accepting states of M´ will be those state-sets containing at least one accepting state of M.
132
Subset Construction (cont.)
For each state-set S and for each s in alphabet of M, we draw an arc labeled s from state S to that state-set consisting of all and only the s-successors of members of S.
Eliminate any state-set, as well as all arcs incident upon it, such that there is no path leading to it from {q0}.
133
The power set of a finite set, Q, consists of 2|Q| elements
The DFA corresponding to a given NFA with Q states have a finite number of states, 2|Q|.
If |Q| = 0 then Q is the empty set, | P(Q)| = 1 = 20.
If |Q| = N and N 1, we construct subset of a given set so that for each element of the initial set there are two alternatives, either is the element member of a subset or not. So we have
2 · 2 · 2 · 2 · 2 · 2 · 2…. ·2 = 2N N times
134
From an NFA to a DFASubset ConstructionOperation Description
- closure(s)
- closure(T)
Move(T,a)
Set of NFA states reachable from an NFA state s on -transitions
Set of NFA states reachable from some NFA state s in T on -transitions
Set of NFA states reachable from some NFA state set with a transition on input symbol a
135
From an NFA to a DFA
Subset Construction
Initially, -closure (s0) is the only states in D and it is unmarked
while there is an unmarked state T in D do mark T; for each input symbol a do U:= -closure(move(T,a)); if U is not in D then add U as an unmarked state to D Dtran[T,a]:=U; end(for) end(while)