680 likes | 689 Views
Finite Automata. A simple model of computation. Outline. Deterministic finite automata (DFA) How a DFA works How to construct a DFA Non-deterministic finite automata (NFA) How an NFA works How to construct an NFA Equivalence of DFA and NFA
E N D
Finite Automata A simple model of computation
Outline • Deterministic finite automata (DFA) • How a DFA works • How to construct a DFA • Non-deterministic finite automata (NFA) • How an NFA works • How to construct an NFA • Equivalence of DFA and NFA • Closure properties of the class of languages accepted by FA
Finite Automata (FA) Finite set of states is in exactly one state at a time CONTROL UNIT Start state Final state(s) TAPE HEAD Move to the right one cell at a time INPUT TAPE Store input of the DFA Can be of any length
What does an FA do? • Read an input string from tape • Determine if the input string is in a language • Determine if the answer for the problem is “YES” or “NO” for the given input on the tape
How does an FA work? • At the beginning, • an FA is in the start state(initial state) • its tape head points at the first cell • For each move, FA • reads the symbol under its tape head • changes its state (according to the transition function) to the next state determined by the symbol read from the tape and its current state • move its tape head to the right one cell
When does an FA stop working? • When it reads all symbols on the tape • Then, it gives an answer if the input is in the specific language: • Answer “YES” if its last state is a final state • Answer “NO” if its last state is not a final state
0 1 0 1 s f Example of a DFA Transition diagram Transition function
How to define a DFA • a 5-tuple (Q, , , s, F), where • a set of states Q is a finite set • an alphabet is a finite, non-empty set • a start state s in Q • a set of final states F contained in Q • a transition function is a function Q Q • See formal definition That’s why it’s called a finite automaton.
s f 0 0 1 1 0 1 0 1 0 0 1 How an FA works 0 1 0 1 Input: 001101 ACCEPT REJECT Input: 01001
s f 0 1 0 1 Transition diagram of M Configurations Current state Unread input string Definition Let M =(Q, , , s, F) be a deterministic finite automaton. A configuration of M is an element of Q configurations of M (s, ), (s, 00), (s, 01101), (f, ), (f, 0011011001), (f, 1111), (f, 011110)
Yielding next configuration Definition • Let M = (Q, , , s, F) be a deterministic finite automaton, and (q0, 0) and (q1, 1) be two configurations of M. • We say (q0, 0) yields (q1, 1) in one step, denoted by (q0, 0) M (q1, 1), if (q0, a) = q1, and 0=a 1, for some a . • When a configuration yields another configuration, the first symbol of the string is read and discarded from the configuration. • Once a symbol in an input string is read, it does not effect how the DFA works in the future.
s f Example: yielding next configuration 0 1 0 1 (s, 001101) M(s, 01101) M(s, 1101) M(f, 101) M(s, 01) M(s, 1) M(f, ) 0 0 1 1 0 1
Yield in zero step or more Definition • Let M = (Q, , , s, F) be a DFA, and (q0, 0) and (q1, 1) be two configurations of M. (q0, 0)yields(q1, 1)in zero step or more, denoted by (q0, 0) *M (q1, 1), if • q0= q1 and0 =1, or • (q0, 0) M (q2,2) and (q2, 2) *M (q1, 1) for some q2and2. This definition is an inductive definition, and it is often used to prove properties of DFA’s.
0 1 0 1 s f Example: Yield in zero step or more (s, 01001) *M(f, 001) *M(f, 001) *M(f, 1) *M(s, ) (s, 001101) *M(f, 101) *M(s, 01) *M(f, ) *M(f, )
Accepting a string Definition • Let M = (Q, , , s, F) be a DFA, and *. We say M accepts if (s, ) *M (f, ), when fF. Otherwise, we sayM rejects. (s, 001101)*M(f, ) M accepts 001101 (s, 01001) *M(s, ) M rejects 01001
0 1 0 1 s f Language accepted by a DFA Let M = (Q, , , s, F ) be a DFA. The language accepted by M, denoted by L(M ) is the set of strings accepted by M. That is, L(M) = {*|(s, ) *M (f,) for somefF} Example: • L(M) = {x {0,1}* | the number of 1’s in x is odd}.
Example 0 0, 1 0 0 1 1 0 s 0 1 1 0, 1 1 1 1 0 0
How to construct a DFA • Determine what a DFA need to memorize in order to recognize strings in the language. • Hint: the property of the strings in the language • Determine how many states are required to memorize what we want. • final state(s) memorizes the property of the strings in the language. • Find out how the thing we memorize is changed once the next input symbol is read. • From this change, we get the transition function.
Constructing a DFA: Example • Consider L= {{0,1}*| has both 00 and 11 as substrings}. • Step 1: decide what a DFA need to memorize • Step 2: how many states do we need? • Step 3: construct the transition diagram
Example Got 00 and got 1 Got 00 and 11 as substrings Got 00 as substring 0 0, 1 Got 0 as substring 0 0 1 1 0 s 0 1 1 0, 1 1 Got nothing 1 1 0 0 Got 1 as substring Got 11 as substring Got 11 and got 0 Got 11 and 00 as substrings
Constructing a DFA: Example • Consider L= {{0,1}*| represents a binary number divisible by 3}. • L = {0, 00, 11, 000, 011, 110, 0000, 0011, 0110, 1001, 00000, ...}. • Step 1: decide what a DFA need to memorize • remembering that the portion of the string that has been read so far is divisible by 3 • Step 2: how many states do we need? • 2 states remembering that • the string that has been read is divisible by 3 • the string that has been read is indivisible by 3. • 3 states remembering that • the string that has been read is divisible by 3 • the string that has been read - 1 is divisible by 3. • the string that has been read - 2 is divisible by 3. Choose this!! Why?
Using 2 states • Reading a string wrepresenting a number divisible by 3. • Next symbol is 0.w0, which is 2*w, is also divisible by 3. • Ifw=9is divisible by 3, so is2*w=18. • Next symbol is 1.w1, which is 2*w +1, may or may not be divisible by 3. • If 8 is indivisible by 3, so is 17. • If 4 is indivisible by 3, but 9 is divisible. • Using these two states is not sufficient.
Using 3 states • Each state remembers the remainder of the number dividedby 3. • If the portion of the string that has been read so far, say w, represents the number whose remainder is 0 (or, 1, or 2), • If the next symbol is 0, what is the remainder of w0? • If the next symbol is 1, what is the remainder of w1?
Transition table Current state Next state
0 q0 1 1 1 0 q1 q2 0 Example DFA • M = ({q0, q1, q2}, {0, 1}, , q0, {q0})
0 0 Nondeterministic Finite Automata • Similar to DFA • Nondeterministic move • On reading an input symbol, the automaton can choose to make a transition to one of selected states. • Without reading any symbol, the automaton can choose to make a transition to one of selected states or not.
How to define an NFA • a 5-tuple (Q, , , s, F), where • a set of states Q is a finite set • an alphabet is a finite, non-empty set • a start state sinQ • a set of final states F contained in Q • a transition function is a function Q({})2Q • See formal definition
DFA 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0,1 1 1 Example of NFA • An NFA accepting {w{0,1} |w ends with 11}
Yielding next configuration Definition • Let M = (Q, , , s, F) be a non-deterministic finite automaton, and (q0, 0) and (q1, 1) be two configurations of M. • We say (q0, 0)yields(q1, 1)in one step, denoted by (q0, 0) M (q1, 1), if q1 (q0, a,), and 0=a 1, for some a {}.
Yield in zero step or more Definition • Let M = (Q, , , s, F) be anNFA, and (q0, 0) and (q1, 1) be two configurations of M. (q0, 0)yields(q1, 1)in zero step or more, denoted by (q0, 0)*M (q1, 1), if • q0= q1 and0 =1, or • (q0, 0) M (q2,2) and (q2, 2) *M (q1, 1) for some q2and 2. Same as that for DFA
Accepting a string Definition • Let M = (Q, , , s, F) be an NFA, and *. We say M accepts if (s, ) *M (f, ), when fF. Otherwise, we sayM rejects. Same as the definition for a DFA
Language accepted by an NFA • Let M = (Q, , , s, F) be anNFA. • The language accepted by M, denoted by L(M) is the set of strings accepted by M. That is, L(M) = {*| (s,) *M (f,) for some fF} Same as the definition for a DFA
0,1 1 1 How NFA’s work (s,01111)- (s,1111) - (s,111) - (s,11) - (s,1) - (s,) (s,01111)-(s,1111) - (s, 111) - (s,11) - (s,1) - (q,) (s,01111)-(s, 1111) - (s, 111) - (s,11) - (q,1) - (f, ) (s,01111)-(s, 1111) - (s, 111) - (q,11) - (f,1) (s,01111)-(s, 1111) - (q, 111) - (f,11) s q f s, 01111 s, 1111 s, 111 q, 111 s, 11 f, 11 q, 11 q, 1 s, 1 f, 1 f, q, s,
0 0 0,1 0,1 1 1 0,1 0 0 0,1 0,1 1 1 0,1 0,1 Other examples of NFA • {w {0,1}* | w has either 00 or 11 as substring} • {w {0,1}* | w has 00 and 11 as substrings and 00 comes before 11}
DFA and NFA are equivalent Md and Mn are equivalent L(Md) = L(Mn). DFA and NFA are equivalent • For any DFA Md, there exists an NFA Mnsuch that Mdand Mn are equivalent. (part 1) • For any NFA Mn, there exists a DFA Mdsuch that Md and Mn are equivalent. (part 2)
Part 1 of the equivalence proof • For any DFA Md, there exists an NFA Mnsuch that Md and Mnare equivalent. Proof: Let Mdbe anyDFA. We want to construct an NFA Mn such that L(Mn) = L(Md). From the definitions of DFA and NFA, if M is a DFA then it is also an NFA. Then, we let Mn= Md. Thus, L(Md) = L(Mn).
Part 2 of the equivalence proof • For any NFA Mn, there exists a DFA Md such that Mdand Mn are equivalent. Proof: Let Mn = (Q, , , s, F)be anyNFA. We want to construct a DFA Md such that L(Md) = L(Mn). First define the closure of q,denoted by E(q). Second, construct a DFA Md=(2Q, , ', E(s), F') Finally, prove f F (s,) |-*Mn (f, ) f 'F ' (E(s), ) |-*Md (f ' , ).
1 1 1 s s,q s,q,f 0 Eliminating transitions to multiple states 1 1 s q f 0,1 0 0
Eliminating empty-string transitions ε 1 1 s p q ε 0 ε 0 1 r f 1 s p,q, r 0 0 ,1 0,1 1 r p,q,r,f
Closure of state q • Let M = (Q, , , s, F) be an NFA, and qQ. • The closure of q, denoted by E(q),is • the set of states which can be reached from q without reading any symbol. • {pQ| (q,) |-M* (p, )} • If an NFA is in a state q, it can also be in any state in the closure of q without reading any input symbol.
a b c s q f Example of closure M=({s, q, f}, {a, b, c}, , s, {f}) where is defined below. L(M)={ai bj ck | i, j, k 0}
q0 a b q1 q2 a b a q3 q4 Another example of closure
Constructing the equivalent DFA Let Mn = (Q, , , s, F)be anyNFA. We construct a DFA Md =(2Q, , ', E(s), F'), where : • '(q',a) = {rE(p)| p (q,a) } and • F' = {f Q | f F }) qq' DFA ε p r a ε q a ε
q0 a b q1 q2 a b a q3 q4 Example of DFA construction
Example of DFA construction q0,q1,q2,q3 a a q0,q1,q2,q3,q4 b b a a q2,q3,q4 q3,q4 b b a,b
Prove property of and ' Let Mn = (Q, , , s, F)be anyNFA, and Md = (2Q, , ', E(s), F') be a DFA, where • '(q', a) = {rE(p)| p(q,a)}and • F' = {f Q | f F } Prove , fF (s,) |-*Mn (f, ) f 'F ' (E(s), ) |-*Md (f', ) and ff' by induction. Prove a more general statement , p, qQ (p,) |-*Mn (q, ) (E(p), ) |-*Md (q', ) and qq'. qq'
Proof Part I: For any string in Σ*, and states q and r in Q, there exists R Q such that (q, ) *Mn(r, ε) (E(q), ) *Md(R, ε) and rR.
Proof Basis: Let be a string in Σ*,q and r be states in Q, and (q, ) *Mn (r, ε) in 0 step. Because (q, ) *Mn (r, ε) in 0 step, we know (1) q=r , and (2) =ε. Then, (E(q), ) = (E(r), ε). Thus, (E(q), ) *Md (E(r), ε) . That is, there exists R=E(r) such that r R and (E(q),) *Md (R, ε).
Proof Induction hypothesis: For any non-negative integer k, string in Σ*, and states qand r in Q, there exists R Q: (q, ) *Mn(r, ε) in k steps -> (E(q), ) *Md(R, ε) and rR. Induction step: Prove, for any non-negative integer k, string in Σ*, and states q and r in Q, there exists R Q: (q, ) *Mn(r, ε) in k+1 steps -> (E(q), ) *Md(R, ε) and rR.