s 0

advertisement
Finite State Machines
1. Finite state machines with output
2. Finite state machines with no output
3. DFA
4. NDFA.
Introduction
# Many kinds if machines, including components in
computers, can be modeled using a structure called a finitestate machine.
# Finite-state machines are used extensively in applications
in computer science and data networking. For example,
FSM are the basis for programs for spell checking,
grammar checking, indexing or searching large bodies of
text, recognizing speech, ……
Definition: A finite-state machine M = {S, I, O, f, g, s0} consists of:
•finite set S of states,
•finite input alphabet I,
•finite output alphabet O,
•transition function f that assigns to each state and input pair a new state,
•output function g that assigns to each state and input pair an output,
•initial state s0.
Remark:
We can use a state table to represent the values of the
transition function f and the output function g for all pairs
of states and input.
Example: Given a finite state machine with S ={s0 , s1,s2 , s3 } ,
I = {0,1}, O={0,1}. The values of the transition function f and
the values of the output function g are shown in table
Representation of FSM
We use state diagram to represent FSM. State diagram is a directed
graph with labeled edges. In this diagram, each sate is represented
by a circle. Arrows labeled with the input and output pair are
shown for each transition.
Example: Draw the state diagram for the finite-state machine
S ={s0 , s1,s2 , s3 } , I = {0,1}, O={0,1} with the following state
table.
S ={s0 , s1,s2 , s3 }
s0
s1
s2
f(S0,0)=S1
s3
0
s0
f(S0,1)=S0
s1
1
0
s0
g(S0,0)=1
1
s1
0 ,1
s0
g(S0,1)=0
1,0
s0
s1
0 ,1
s1
1,0
0 ,1
s0
0,1
s1
s3
1,1
1,0
0 ,1
s0
s1
1,1
1,0
0,1
s3
0,0
0 ,1
s0
s1
1,1
s2
1,1
0,1
1,0
0,0
s2
1,1
s3
Example: Construct the state table for the finite-state machine
with the state diagram shown in Figure
Find the output string generated by the finite-state machine in Figure if the
input string is 101011.
Home Work
Home Work
Finite-State Machines with No Output
One of the most important application of finite-state machines is
in language recognition. This application plays a fundamental
role in the design and construction of
compilers for
programming languages. It does not have any output.
Definition: Suppose that A and B are subsets of V*, where V
is a vocabulary. The concatenation of A and B, denoted by
AB, is the set of all strings of the form xy, where x is a string
in A and y is a string in B.
Example: Let A= {0, 11} and B= {1, 10, 110}, Find AB and BA.
Solution:
AB is the set of all strings of the form xy, where x is a string
in A and y is a string in B.
x=0 and y=1, 10, or 110 then xy= 01, 010, or 0110
x=11 and y=1, 10, or 110 then xy= 111, 1110, or 11110
So, AB= {01, 010, 0110, 111, 1110, 11110} and
BA={10, 111, 100, 1011, 1100, 11011}(by similar way).
1
10
110
0
01
0 10
0 110
11
11 1
11 10
11 110
0
11
1
10
111
10
100
1011
110
1100
11011
Example: Given A0= { } and An+1= An A , for n = 0, 1, 2……
Then let A={1, 00}. Find An for only n= 0, 1, 2, and 3
Solution:
A0= { }, we know that An+1= An A
n = 0  A0+1= A0 A= {} {1, 00} = {1, 00}
n = 1  A1+1= A1 A  A2= A1 A = {1, 00} {1,00}
= {11, 100, 001, 0000}
A3= A2 A = {11, 100, 001, 0000} {1, 00}
= {111, 1100, 1001, 10000, 0011, 00100, 00001, 000000 }
Home Work
Let A={0,11}, and B={00, 01}. Find each of these sets.
(a) AB, (b) BA,
(c) A2
(d) B3
Deterministic Finite-State Automata
A finite-state machine with no output is called finite-state
automata. It also called deterministic finite-state automata (DFA).
Definition: A DFA M=(S, I, f, s0, F ) consists of:
•finite set S of states,
•finite input alphabet I,
•transition function f that assigns a next state,
•initial or start state s0,
•subset F final state.
# We can represent finite-state automata using either state tables or
state diagram.
# Final states are indicated in state diagrams by using double circles.
Example : Construct the state diagram for the finite-state automata
M= (S, I, f, s0, F) , where S = {s0, s1, s2, s3}, I= {0,1}, F= {s0, s3}
and the transition function f is given in the following table.
f
Input
state
0
1
s0
s1
s2
s3
s0
s0
s0
s2
s1
s2
s0
s1
0
start
s0
s1
1
s2
s3
Language recognition by DFA
Definition :
# A string x is said to be recognized or accepted by the machine M = (S,
I, f, s0, F) if it takes the initial state s0 to the final state, that is, f(s0, x) is
a state in F.
# The language recognized or accepted by the machine M, denoted by
L(M), is the set of all strings that are recognized by M.
# Two finite-state automata are called equivalent if they recognize the
same language.
Example:
Determine the
languages recognized by
the finite-state automata
M1, M2, M3.
1
M1
start
s0
0,1
0
s1
The only final state of M1 is s0. The strings that takes s0 to
itself are those consisting of zero or more consecutive 1s. i.e
{λ ,1, 11, 111, …...}
So, L(M1)={1n: n=0,1 ,2, 3,…}
The only final state of M2 is s2. The strings that takes s0 are
1and 01.
So, L(M2)={1,01}
0
M2
start
s0
0
s1
1
1
s2
0,1
0,1
s3
0
M3
start
s0
1
s1
1
0
0,1
s2
s3
0,1
The final states of M3 is s0 and s3.
The only strings that takes s0 to itself are ⋋, 0, 00, 000,….. i.e any
string of zero or more consecutive 0s. I.e. {0n, n=0, 1, 2…}
The only strings that takes s0 to s3 are a string of zero or more
consecutive 0s, followed by 10, followed by any string of
combination of 0 and 1. i.e. {0n10x: n=0,1, 2,… and x any string
of 0 and 1}
So, L(M3)={0n,0n10x: n=0,1, 2,… and x any string}
Example:
Construct a deterministic finite-state automaton that
recognizes the set of all bit strings such that the first bit
is 0 and all remaining bits are 1’s.
Home Work
Q1) Construct a DFA that recognized each of these languages.
a) The set of bit strings that begin with two 0s.
b) The set of bit strings that contain two consecutive 0s.
c) The set of bit strings that do not contain two consecutive 0s.
d) The set of bit strings that end with two 0s.
e) The set of bit strings that contain at least two 0s.
Q2) Determine the set of bit strings recognized by the following
deterministic finite-state automaton.
Non Deterministic Finite-State Automata
In DFA for each pair of state and input value there is a unique
next state given by the transition function. But in NDFA there
may be several possible next states for each pair of input value
and state.
Definition : A NDFA, M= (S, I, f, s0, F) consists of a set S of
states, an input alphabet I, a transition function f that assigns a set
of states to each pair of state and input (so that f: S x I  P(S)), a
starting state s0,and a subset F of S consisting of the final states.
Example : Find the state diagram for the NDFA with the state table
shown in table. The final states are s2and s3
f
Input
state
0
1
s0
s1
s2
s3
s0 , s1
s0
s3
s1 , s3
s0 , s2
s1
s0 , s1 , s2
1
0
start
s0
s1
1
0
s2
1
s3
Example : Find the state table for the NDFA with the state diagram
0
shown in figure.
0
0
s1
1
start
s3
1
s0
0,1
0
s2
f
Input
state
0
1
s0
s1
s2
s3
s0 , s2
s3
s1
s4
s4
s2
s4
s3
s3
s3
1
s4
Home Work
In Exercises 16–22 find the language recognized by the given
deterministic finite-state automaton
In Exercises 43–49 find the language recognized by the given
nondeterministic finite-state automaton.
Download