Lecture2 Regular Language 2004 SDU
DFA –deterministic finite automaton A DFA has: a finite set of states 1 special state – start (initial) state 0 or more special states - final (accept) states input alphabet transition table: (state, symbol) next state q s q4 p a r (p, a) -> r 2004 SDU 2
Informally -- How does a DFA work? q1 a DFA begins in the start state. DFA goes into a loop until the entire input string is read. In each step, DFA consults a transition table and changes its state based on (q, a) where q - current state a – current symbol read After reading the input string, if the state is final, the input is accepted if the state is not final, the input is rejected Language recognized by a DFA or the language of a DFA – the set of all the strings accepted by the DFA. 2004 SDU 3
Pictorial representation of DFA state q Start state s Final state q4 transition p a r (p, a) -> r 2004 SDU 4
DFA Demo b b a b a a b b a b b a a a b b b Y N N 1 2 2004 SDU 5 1 2 b multiple of 3 b's b b a b a a b b a b b 2004 SDU 5 5
DFA Demo b a b a a b b a b b a a a b b b Y N N 1 2 2004 SDU 6 1 2 b multiple of 3 b's b a b a a b b a b b 2004 SDU 6 6
DFA Demo b a a a b b a b b a a a b b b Y N N 1 2 2004 SDU 7 1 2 b multiple of 3 b's b a a a b b a b b 2004 SDU 7 7
DFA Demo b a a b b a b b a a a b b b Y N N 1 2 2004 SDU 8 1 2 b multiple of 3 b's b a a b b a b b 2004 SDU 8 8
DFA Demo b a b b a b b a a a b b b Y N N 1 2 2004 SDU 9 1 2 b multiple of 3 b's b a b b a b b 2004 SDU 9 9
DFA Demo b a b a b b a a a b b b Y N N 1 2 2004 SDU 10 1 2 b multiple of 3 b's b a b a b b 2004 SDU 10 10
DFA Demo b a a b b a a a b b b Y N N 1 2 2004 SDU 11 1 2 b multiple of 3 b's b a a b b 2004 SDU 11 11
DFA Demo b a b b a a a b b b Y N N 1 2 2004 SDU 12 multiple of 3 b's 1 2 b multiple of 3 b's b a b b 2004 SDU 12 12
DFA Demo b a b a a a b b b Y N N 1 2 2004 SDU 13 multiple of 3 b's 1 2 b multiple of 3 b's b a b 2004 SDU 13 13
DFA Demo ACCEPT b a a a a b b b Y N N 1 2 2004 SDU 14 1 2 ACCEPT b multiple of 3 b's b a 2004 SDU 14 14
DFA Demo b a b b a a b b a a a b b b Y N N 1 2 2004 SDU 15 1 2 b multiple of 3 b's b a b b a a b b 2004 SDU 15 15
DFA Demo b a b a a b b a a a b b b Y N N 1 2 2004 SDU 16 1 2 b multiple of 3 b's b a b a a b b 2004 SDU 16 16
DFA Demo b a a a b b a a a b b b Y N N 1 2 2004 SDU 17 1 2 b multiple of 3 b's b a a a b b 2004 SDU 17 17
DFA Demo b a a b b a a a b b b Y N N 1 2 2004 SDU 18 1 2 b multiple of 3 b's b a a b b 2004 SDU 18 18
DFA Demo b a b b a a a b b b Y N N 1 2 2004 SDU 19 multiple of 3 b's 1 2 b multiple of 3 b's b a b b 2004 SDU 19 19
DFA Demo b a b a a a b b b Y N N 1 2 2004 SDU 20 multiple of 3 b's 1 2 b multiple of 3 b's b a b 2004 SDU 20 20
DFA Demo REJECT b a a a a b b b Y N N 1 2 2004 SDU 21 1 2 REJECT b multiple of 3 b's b a 2004 SDU 21 21
Example: Diagram of DFA q0 q1 a 2004 SDU 22
Step-By-Step a q0 q1 a aaa 2004 SDU 23
Step-By-Step a q0 q1 a aaa 2004 SDU 24
Step-By-Step a q0 q1 a aaa 2004 SDU 25
Step-By-Step a q0 q1 a aaa The string is accepted 2004 SDU 26
Formal definition of DFA A DFA is a 5-tuple: M = (Q, , , s, F) Where, Q is a finite set of states is a finite set of input alphabet s Q is the start state F Q is the set of final states : Q -> Q is the transition function // note that this is a function, so, for each state and each symbol, there is an arrow that points to another state. 2004 SDU 27
Formal definition of Computation Let M = (Q, , , s, F) be a finite automaton and let w = w1w2…wn be a string where each wi is a member of the alphabet . M accepts w if there is a sequence of states r0, r1, …, rn such that 1)r0 = s, 2)(ri, wi+1) = ri+1, for i=0, …, n-1. 3) rn F We say that M recognizes language A if A = {w | M accepts w}. Note that the language recognized by a DFA M (or the language of a DFA M) is unique! We write it as L(M). What is language of the following machine? Its formal description? q0 q1 a 2004 SDU 28
Regular Languages Definition: A Language is called regular if some DFA recognizes it. 2004 SDU 29
Given a language, how to define DFA? Creative process requiring you to: (i) Put yourself in DFA's shoes (ii) Find finite amount of info, based on which string accepted/rejected (iii) From step (ii), determine number of states and then transitions. 2004 SDU 30
Examples L = {w | w begins with a 0 and ends with a 1} 1 1 q0 q1 q2 1 1 q0 q1 q2 1 r 0,1 2004 SDU 31
Examples (cont.) L = {w | w contains the substring 101 } 0,1 1 1 1 s 1 1 1 1 s 1 10 101 More in exercises 2004 SDU 32