INFO 2950 Prof. Carla Gomes gomes@cs.cornell.edu Module Modeling Computation: Finite State Machines without Output Rosen, Chapter 12.2 and 12.3 1 Finite-State Machines with No Output Definition: Concatenation of A and B A and B are subsets of V*, where V is a vocabulary The concatenation of A and B is AB={xy: x string in A and y string in B} Example: A={0, 11} and B={1, 10, 110} AB={01,010,0110,111,1110,11110} What is BA? A0={λ} An+1=AnA for n=0,1,2,… Definition: Concatenation of A and B Example: A={1,00} An ? n=1, 2, 3,… A0 A0={λ} A1=A0A1={λ} A ? A1=A0A1={λ} A={1,00} A2=A1A ={1,00} {1,00} A2=A1A ={1,00} {1,00} = {11,100,001,0000} A3=A2A ={11,100,001,0000}{1,00} A3=A2A ={11,100,001,0000}{1,00} = {111,1100,1001,10000,001111,00100,00001,000000} Kleene Closure Let A be any subset of V*. Kleene closure of A, denoted by A*, is A A * k 0 k The set consisting of concatenations of arbitrarily many strings from A If B={0,1}, B*=V*. Kleene Closure What are the Kleen closures of the set A={0}; B={0,1}, and C={11}? A*={,0,00,000,…} ={0n |n=0,1,2,…} If B={0,1}, B*=V*. (The set of all strings over the alphabet V) C*={,11,1111,111111,…} ={(11)n |n=0,1,2,…} ={12n |n=0,1,2,…} Finite State Automata Representations As with finite-state machines, finite-state automata have the following common representations – A state table is used to represent a finite-state automaton by giving the values of the function f. • Just like for finite-state machines, except the second half of the columns are omitted, since there is no output. – A state diagram is a directed graph representation of a finite-state automaton. • Final states are usually denoted by double-circles. • Values separated by commas denote several possible inputs, not inputs and outputs as with finite state machines. Finite State Automata A finite state automation over an alphabet is illustrated by a state diagram: – a directed graph – edges are labeled with elements of alphabet, – some nodes (or states), marked as final of “accepting”. – one node marked as start state Dealing with Input Strings Let x=x1x2…xnI * (That is, x is a string over I) Then we can extend the transition function f to all state-input string pairs (rather than simply state-input pairs) in the obvious way – – – – – Assume the machine is in state S0, Compute f(S0, x1) = Si2 Next compute f(Si2, x2) = Si3 Continue until you get f(Sin, xn) = Sin+1 We define f(S0, x) = Sin+1 From now on, we will speak of the transition function f being applied to input strings, not just single inputs. Finite Automaton Input String Output Finite Automaton “Accept” or “Reject” Transition Graph a, b q5 b q0 a a a b q1 b q2 b q3 a initial state transition state a, b q4 accepting state Initial Configuration Input String a b b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 Reading the Input a b b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a b b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a b b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a b b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 Input finished a b b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 accept Rejection a b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a b a a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 Input finished a b a a, b q5 b q0 a a a b q1 b q2 b q3 a reject a, b q4 Another Rejection a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 a, b q5 b q0 a reject a a b q1 b q2 b q3 a a, b q4 Another Example a a b a, b a q0 b q1 a, b q2 a a b a, b a q0 b q1 a, b q2 a a b a, b a q0 b q1 a, b q2 a a b a, b a q0 b q1 a, b q2 Input finished a a b a q0 a, b accept b q1 a, b q2 Rejection Example b a b a, b a q0 b q1 a, b q2 b a b a, b a q0 b q1 a, b q2 b a b a, b a q0 b q1 a, b q2 b a b a, b a q0 b q1 a, b q2 Input finished b a b a, b a q0 b q1 a, b q2 reject Finite-State Automata Definition: A finite-state automaton is a 5-tuple M=(S, I, f, S0, F) where – S is a finite set of states – I is a finite input alphabet – f:SIS is a transition function from each state-input pair to a state – S0 is the initial state – FS is a set of final states Note: automaton is the singular of automata. Finite Automata ’ If end of input – If in accepting state => accept – Otherwise => reject If no transition possible (got stuck) => reject Language Recognition Definition: A finite-state automaton accepts (or recognizes) a string x if f(S0, x)F. That is, the finite state automaton ends up in a final state. Definition: The language accepted (or recognized) by a finite-state automaton M, denoted by L(M), is the set of all strings recognized by M. Definition: Two finite-state automata are equivalent if they recognize the same language. LM abba Example M a, b q5 b q0 a a a b q1 b q2 b q3 a a, b q4 accept Example LM , ab, abba M a, b q5 b q0 a accept a a b q1 b q2 b q3 a accept a, b q4 accept Example LM {a b : n 0} n a, b a q0 b q1 accept a, b q2 trap state What is the Language? Example: What language is recognized by the following finite-state automaton? Input 0 or 1 • Solution: Since the only final state is the start state, and only an input of 1 will leave the machine in the start state, it is easy to see that L(M)={1n: n=0,1,2,…} What is the Language? Example: What language is recognized by the following finite-state automaton? • Solution: Notice that Any input that does not start with 0 cannot go to a final state The final state can only be arrived at if the last input is a 1 Any string can occur in between the first 0 and last 1. • Thus, we can see that L(M)={binary strings beginning with 0 and ending with 1} FSM Examples Example: What language is recognized by the following finite-state automaton? 0 1 S0 0 1 S1 Accepts strings over alphabet {0,1} that end in 1 44 FSM Examples Example: What language is recognized by the following finite-state automaton? S0 a a b S1 b S2 a 4 b b b a 5 a Accepts strings over alphabet {a,b} that begin and end with same symbol 45 Example: What language is recognized by the following finite-state automaton? 0 S1 Start 0 2 S0 FSM Examples Accepts strings over {0,1,2} such that sum of digits is a multiple of 3 1 1 2 S2 0 2 1 46 FSM Examples 0 0 1 Even Odd 1 Accepts strings over {0,1} that have an odd number of ones 47 FSM Examples 1 0 1 1 0 '0' 0,1 '00' '001' 0 Accepts strings over {0,1} that contain the substring 001 48 Examples Design a FSM to recognize strings with an equal number of ones and zeros. – Not possible Design a FSM to recognize strings with an equal number of substrings "01" and "10". – Perhaps surprisingly, this is possible 49 FSM Examples 0 1 0 1 Accepts strings with an equal number of substrings "01" and "10" 0 1 1 1 0 0 50 Non-deterministic Finite Automaton (NDFA) a non-deterministic finite state machine or non-deterministic finite automaton (NDFA) is a finite state machine where for each pair of state and input symbol it assigns a set of states i.e., from a pair of state and input symbol there are possibly two or more transitions to a next state. Every NDFA can be converted to a DFA Nondeterministic Finite-State Automata Definition: A Nondeterministic fnite-state automaton is a 5-tuple M=(S, I, f, S0, F) where – S is a finite set of states – I is a finite input alphabet – f:SI P(S) is a transition function from each stateinput pair to a set of states – S0 is the initial state – FS is a set of final states 0 0 S1 1 Start S3 0,1 S0 1 0 0 State F 0 F 1 S0 S0,S2 S1 S1 S3 S4 S2 S2 1 S4 S4 S3 S3 S4 S3 S3 53 S1 1 Start 0 0 S3 0,1 S0 1 0 0 S2 1 S4 What does it mean for a nondeterministic FSA (NFSA) to recognize a string? T he NDFSA recognizes or accepts a string x if there is a final state in the set of all states that can be obtained from S0, using x. 54 What language does it accept? 0n 11 |n≥0 1 0 S 0 S 3 0 0,1 1 0 Start 0 S 1 S 2 0n |n≥0 1 S 4 0n 01 |n≥0 55 Equivalence of DFSM and NFSM Theorem: – For each non-deterministic finite state machine N, we can construct a deterministic finite state machine D such that N and D accept the same language. – [proof omitted] Theorem: – Every deterministic finite state machine can be regarded as a non– deterministic finite state machine that just doesn’t use the extra non– deterministic capabilities. 56 F 0 F 1 S0 S0,S2 S1 S1 S3 S4 S2 1 S 0 Start 0 S3 S4 S3 S3 {S0} S 2 {S0, S2} 0,1 S 4 {S1, S4} 0 0,1 Ø 1 0 1 {S3} 0,1 0 1 0n |n≥0 0n 01 |n≥0 1 0 1 0 start S 3 1 0 S4 S3 0 0 State S 1 {S3, S4} 0,1 {S1} {S4} 0n 11 |n≥0 1 57