Download presentation
Presentation is loading. Please wait.
Published byJonatan Buzzard Modified over 10 years ago
1
1 1 CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 3 School of Innovation, Design and Engineering Mälardalen University 2012
2
2 Content Finite Automata, FA Deterministic Finite Automata, DFA Nondeterministic Automata NFA NFA DFA Equivalence
3
3 Finite Automata FA (Finite State Machines) Based on C Busch, RPI, Models of Computation
4
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
5 Finite Automaton Input String Output String Finite Automaton
6
6 Finite Accepter Input “Accept” or “Reject” String Finite Automaton Output
7
7 Nodes = States Edges = Transitions An edge with several symbols is a short-hand for several edges: Finite Automaton as Directed Graph
8
8 Deterministic Finite Automata DFA
9
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
10 Transition Graph initial state final state “accept” state transition abba -Finite Acceptor Alphabet =
11
11 Formal Definition Deterministic Finite Accepter (DFA) : set of states : input alphabet : transition function : initial state : set of final states
12
12 Set of States
13
13 Input Alphabet
14
14 Initial State
15
15 Set of Final States
16
16 Transition Function
17
17
18
18
19
19
20
20 Transition Function
21
21 Extended Transition Function
22
22
23
23
24
24 Observation: There is a walk from to with the label
25
25 Recursive Definition
26
26 2 1 0 0 0 0,,,,,,* ),,(*,* q bq baq baq baq abq
27
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
28
28 abbbaa is NOT accepted
29
29 abba is accepted
30
30 Language Accepted by DFA Take a DFA Definition: The language contains all input strings accepted by = strings that drive to a final state
31
31 Example accept Alphabet =
32
32 Another Example accept Alphabet =
33
33 Formally For a DFA Language accepted by : alphabet transition function initial state final states
34
34 Observation Language accepted by Language rejected by
35
35 More Examples accept trap state Alphabet =
36
36 = { all strings with prefix } accept Alphabet =
37
37 = { all strings without substring } Alphabet =
38
38 Regular Languages All regular languages form a language family A language is regular if there is a DFA such that
39
39 Example is regular The language Alphabet =
40
40 Nondeterministic Finite Automata NFA
41
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
42 Two choices Alphabet = Nondeterministic Finite Accepter (NFA)
43
43 First Choice
44
44 First Choice
45
45 First Choice
46
46 “accept” First Choice
47
47 Second Choice
48
48 Second Choice
49
49 Second Choice No transition: the automaton hangs
50
50 Second Choice “reject”
51
51 Observation An NFA accepts a string if there is at least one computation of the NFA that accepts the string
52
52 Example is accepted by the NFA:
53
53 Lambda Transitions
54
54
55
55
56
56 (read head doesn’t move)
57
57
58
58 “accept” String is accepted
59
59 Language accepted:
60
60 Another NFA Example Alphabet =
61
61
62
62
63
63
64
64 “accept”
65
65 Another String Alphabet =
66
66
67
67
68
68
69
69
70
70
71
71
72
72 “accept”
73
73 Language accepted Alphabet =
74
74 Another NFA Example Alphabet =
75
75 Language accepted
76
76 Formal Definition of NFA Set of states, i.e. Input alphabet, i.e. Transition function Initial state Final states
77
77 Transition Function
78
78
79
79
80
80
81
81 Extended Transition Function (Utvidgad övergångsfunktion)
82
82
83
83
84
84 Formally if and only if there is a walk from to with label
85
85 The Language of an NFA Alphabet =
86
86
87
87
88
88
89
89
90
90 Formally The language accepted by NFA (final state) where and there is some (at least one) is:
91
91
92
92 NFA DFA Equivalence
93
93 Equivalence of NFAs and DFAs Accept the same languages? YES! NFAs DFAs ? The same power?
94
94 We will prove: Languages accepted by NFAs Languages accepted by DFAs NFAs and DFAs have the same computation power!
95
95 Languages accepted by NFAs Languages accepted by DFAs Step 1 Proof Every DFA is also an NFA A language accepted by a DFA is also accepted by an NFA
96
96 Languages accepted by NFAs Languages accepted by DFAs Step 2 Proof Any NFA can be converted to an equivalent DFA A language accepted by an NFA is also accepted by a DFA
97
97 Procedure NFA to DFA Idea: Define new states in DFA that collect the states with the same transition 0 1 3 {0} start { 1,3} {3} start
98
98 Procedure NFA to DFA 1. Initial state of NFA: Initial state of DFA:
99
99 Example NFA DFA Step 1
100
100 Procedure NFA to DFA 2. For every DFA’s state Compute in the NFA Add transition
101
101 Example NFA DFA Step 2 Alphabet =
102
102 Procedure NFA to DFA Repeat Step 2 for all letters in alphabet, until no more transitions can be added.
103
103 Example NFA DFA Step 3 Alphabet =
104
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
105
105 Example NFA DFA Step 4 Alphabet =
106
106 Theorem Take NFA Apply the procedure to obtain DFA Then and are equivalent :
107
107 Languages accepted by NFAs Languages accepted by DFAs We have proven (proof by construction): Regular Languages END OF PROOF
108
108 Nondeterministic vs. Deterministic Automata
109
109 Formal Definition of NFA Set of states, i.e. Input alphabet, i.e. Transition function Initial state Final (accepting) states NFA is a mathematical model defined as a quintuple:
110
110 Deterministic Finite Automata A deterministic finite automaton (DFA) is a special case of a nondeterministic finite automaton (NFA) in which 1. no state has an -transition, i.e. a transition on input, and 2. for each state q and input symbol a, there is at most one edge labeled a leaving q.
111
111 STATE INPUT SYMBOL ab 012012 {0, 1} - {0} {2} {3} Transition table for the finite automaton above A nondeterministic finite automaton b 0 start 1 a 2 bb 3 a Example: NFA
112
112 NFA accepting aa* + bb* 0 start 1 a 2 a 3 b 4 b Example
113
113 NFA accepting (a+b)*abb 0 start 1 a 2 bb b aa a b 3 a Example
114
114 NFA recognizing three different patterns. (a) NFA for a, abb, and a*b +. (b) Combined NFA. Example 4 1 start a 2 3 a 65 bb 7 b 8 b a 0 4 1 start a 2 3 a 65 b b 7 b 8 b a
115
115 Ways to Think of Nondeterminism always make the correct guess “backtracking” (systematically try all possibilities) For a particular string, imagine a tree of possible state transitions: q4q4 a q0q0 q3q3 q0q0 q2q2 q1q1 a a a b a
116
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
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 AUTOMATO N SPACETIME NFA DFA 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
118 Equivalent automata Two finite automata M 1 and M 2 are equivalent if L(M 1 ) = L(M 2 ) that is, if they both accept the same language.
119
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
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
121 Converting NFA to DFA by Subset Construction http://www.math.uu.se/~salling/Movies/SubsetConstruction.mov
122
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 2 n states, although it usually has many less.
123
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 {q i,q j,…,q k } 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 q i,q j,…,q k 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
124 Example Here is a NFA that we want to convert to an equivalent DFA. 0 1 2 Alphabet =
125
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. NFA DFA Alphabet =
126
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}. NFA DFA
127
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. {0,1} {1,2} {2} NFA DFA
128
128 For state {1, 2}, we make again transition for each possible 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. {0,1} {1,2} {2} DFA NFA
129
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}). {0,1} {1,2} {2} DFA NFA
130
130 Subset Construction Algorithm
131
131 Subset Construction States of nondeterministic M´ will correspond to sets of states of deterministic M Where q 0 is start state of M, use {q 0 } as start state of M´. Accepting states of M´ will be those state-sets containing at least one accepting state of M.
132
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 {q 0 }.
133
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 = 2 0. 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 = 2 N N times
134
134 From an NFA to a DFA Subset Construction Operation 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
135 From an NFA to a DFA Subset Construction Initially, -closure (s 0 ) 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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.