Finite State Machines Information processing machine It is a device that receives a set of input signals and produces a corresponding set of output signals. machines with memory and without memory. machine without memory: its output at any instance depends only on the input at that instant. machine with memory (it can remember what has happened in the past): its output at any instant depends on the input at that instant as well as on inputs at previous instant. state: A state represents a summary of the past history of the machine. finite state machine: A machine with a finite number of states. infinite state machine: A machine with an infinite number of states. A finite state machine is specified by 1. A finite set of states S = { s0 , s1 , s2 , …}. 2. A special element of the set S, s0 , referred to as the initial state. 3. A finite set of input letters I = { i0 , i1 , i2 , …}. 4. A finite set of output letters O = { o0 , o1 , o2 , …}. 5. fs: A function f from ST to S, referred to as the transition function. 6. fo: A function g from S to O, referred to as the output function. machine equivalent Two finite state machine are said to be equivalent if, starting from their respective initial states, they will produce the same output sequence when they are given the same input sequence. equivalent state In a finite state machine, two states s1 and s2 are said to be equivalent if for any input sequence the machine will produce the same output sequence whether it starts in s1 or s2. state minimization How to determine whether two states are equivalent? 0-equivalent :Two states are said to be 0-equivalent if they have the same output. 1-equivalent :Two states are said to be 1-equivalent if they have the same output and if, for every input letter, their successors are 0-equivalent. k-equivalent :Two states are said to be k-equivalent if they have the same output and if, for every input letter, their successors are (k-1)-equivalent. Two states are equivalent if they are k-equivalent for all k. k-equivalent is a equivalent relation, and forms a partition of the set of states. M simulates M h: s s I*, s S g() = g(h(s), ). Theorem 7.1 Two states are in the same block in Πk if and only if they are in the same block in k-1 and, for any input letter, their successors are in the same block in k-1. Proof: Let si and sj denote two states that are k-equivalent. According to the definition, they have the same output and, for any input letter, their successors are (k-1)-equivalent. Note that according to the definition, si and sj are also (k-1)equivalent. Thus, we conclude that two states are k-equivalent if and only if they are (k-1)-equivalent and, for any input letter, their successors are also (k-1)-equivalent. Thus, the theorem follows immediately. Q.E.D. Two observations 1. If k is equal to k-1, then m is equal to k-1 for all m k. 2. k is a refinement of k-1. Finite State Machines as Language Recognizers O = {0,1} accepting state:A state is said to be an accepting state if its output is 1. rejecting state:A state is said to be an rejecting state if its output is 0. An input sequence is said to be accepted by the finite state machine if it leads the machine from the initial state to an accepting state. On the other hand, an input sequence is said to be rejected by the finite state machine if it leads the machine from the initial state to an rejecting state. finite state language A language is said to be a finite state language if there is a finite state machine that accepts exactly all sentences in the language. Theorem 7.2 Let L be a finite state language accepted by a finite state machine with N states. For any sequence α whose length is N or larger in the language, α can be written as uvw such that v is nonempty and uviw is also in the language for i≧ 0, where vi denotes the concatenation of i copies of the sequence v. (In other words, uw, uvw, uvvw, uvvvw, … are all in the language.) Proof: Letα= a1a2a3…aN, without loss of generality. Let sj0, sj1, sj2, …, sjN denote the states the machine visits, where sj0 is the initial state and sjN is an accepting state. Among the N+1 states sj0, sj1, sj2, …, sjN there are two of them that are the same. Suppose that is state sk, we realize that the sequences uw, uvw, uvvw, uvvvw, …, uvIw, … will all lead the machine from the initial state sj0 to the accepting state sjN. Q.E.D. Finite State Language and Type-3 Languages A nondeterministic finite state machine is specified by 1. A finite set of states S = {s0, s1, s2 , …}. 2. A special element of the set S, s0 , referred to as the initial state. 3. A finite set of input letters I = {i1, i2, …}. 4. A finite set of output letters O = {o1, o2, …}. 5. A function F from S×T to (S), referred to as the transition function. 6. A function g from S to O, referred to as to output function. It is a very useful abstract model as a language recognizer. Whether a nondeterministic finite state machine is more powerful than a deterministic finite state machine? NO! For any given nondeterministic finite state machine, there is a deterministic finite state machine that accepts exactly the same language. Let M be a nondeterministic finite state machine with 1. {s0, s1, s2, …} being the set of states 2. s0 be the initial state 3. {i1, i2, …} being the set of input letters 4. {0,1} being the set of output letters 5. F from S×I to (S) being the transition function 6. g from S to {0,1} being the output function. Construct a corresponding deterministic finite state machine M as follows. Let 1. P(S) be the set of states 2. s0 be the initial state 3. {i1, i2, …} being the set of input letters 4. {0,1} being the set of output letters 5. F : P(S)×I (S) F ({ },iq) = {} for any input letter iq, ’ F (Sp, iq) = F(sr, iq) for any Sp s r s p 6. g: P(S) {0,1} output function, for any Sp S g(Sp) = 1 if there exists sr in Sp g(sr) = 1 = 0 otherwise. An example M State A B C 0 B A,C A 1 B,C _ B,C output 0 0 1 1 {B,C} {} {B,C} {B,C} {B,C} {B,C} {B,C} {} output 0 0 1 0 1 1 1 0 M State {A} {B} {C} {A,B} {A,C} {B,C} {A,B,C} {} 0 {B} {A,C} {A} {A,B,C} {A,B} {A,C} {A,B,C} {} Machine M and M accept exactly the same language, since an input sequence accepted by M will bring M to a state, which is a subset of M, in which there is at least one that is an accepting state in M.