You are on page 1of 25

Finite State Machines

1
State Machines
• A machine that has input, an internal memory that can
keep track of information about the input history, and
an optional output is called a state machine.
• The complete internal condition of the [state] machine
and all of its memory, at any particular time, is said to
constitute the state of the machine at that time.

2
More Informal Definition of a State
• The current condition of any machine is defined by
certain properties including:
o the inputs that brought the machine to this state;
o the current output of the machine; and
o the response the machine will have to new inputs.
• These conditions are referred to as states.

3
Finite State Machine
• Assume that we have a finite set of states that a
machine can be in, S, and a finite set of possible
inputs to that machine, I.
• A machine is a Finite State Machine (FSM) if when
any input from the set I is input to the machine
causing it to change state, the state it changes to will
be contained in the finite set of states, S.

4
Definition of a Finite State Machine
• Formally, a Finite Automaton (FA) is defined as a 5-
tuple (Q, S, d, q0, F) where,
(1) Q is a finite set of states.
(2) S is a finite set of symbols or the alphabet.
(3) d: Q x S -> Q is the transition function
(4) q0 is an element of Q called the start state, and
(5) F is a subset of Q called the set of accept states.

5
Real World Examples
• All of the math aside, many common items or even
non-technical tasks can be modeled with a finite state
machine.
• Examples:
o Soda machine
o Software applications
o Spell checker
o Driving to school/work

6
Example: Maze FSM
• Given the maze

• Define the following


Q = {1, 2, 3, 4, 5, 6}
S = {U, D, L, R}
q0 = 1 (start state)
F = {6}
• The state table is:

7
Example: Maze FSM
• As a digraph:

8
Example – Soda Vending Machine
• Assume a soda vending machine that accepts only
nickles, dimes, and quarters sells only one kind of
soda for 25¢ a piece.
• Identify all of the possible states
• 0¢: no money at all – waiting for any money
• 5¢, 10¢, 15¢, and 20¢: some money, but not enough –
waiting for coin return or more money.
• 25¢, 30¢, 35¢, 40¢, and 45¢: enough money – waiting for
select button, or coin return button
• Finite states (10) and finite inputs (5¢, 10¢, 25¢,
select button and coin return button)

9
Soda Machine Block Diagram
Nickles Soda
Dimes Machine Soda
Quarters
Select Button Change
Coin Return

10
State Transitions
• A state transition is the definition of the destination
state based on the current state and the system input.
• A state transition must be defined for every input out
of every state.
• Exactly one destination state is defined for every
allowable input.
• Example: In testing software for quality control,
every possible user input from every possible state
must be considered even if the input makes no sense.
In addition, no user input can take the system to more
than one state.
11
State Transition Functions
• The function, fx, that defines which state the machine
will go to after an input, x, is called the state
transition function.
• Denoted fx(s) where x denotes the input and s denotes
the current state.
• Example: If the soda machine is in the state
representing 10¢ received, inserting a nickle will
move it to the state representing 15¢ received.
fNickle(10¢) = 15¢

12
Set of State Transitions = Relation
• Since the state transition function defines every
transition of an FSM, a set of tuples of the form (sm, sn)
can be created where sm is the state where a transition
starts and sn is the state where that transition ends.
• Assume a relation RM is the set of tuples described
above. An FSM then can be defined as the set of all
states, S, the set of inputs, I, and the relation defining
the state transitions, RM.

RM = {(sm, fsm(x)) |  x  I and  sm  S}

13
State Transition Table
• A table summarizing all of the state transitions of a
finite state machine is called a state transition table.
• Each row of a state transition table represents the
current state while the columns for that row show the
destination or next states based on different possible
inputs.

14
Soda Machine State Transition Table
Current Nickle Dime Quarter Select Coin return
state button button
0¢ 5¢ 1 10¢ 1 25¢ 1 0¢ 0¢ 4
5¢ 10¢ 1 15¢ 1 30¢ 1 5¢ 0¢ 4
10¢ 15¢ 1 20¢ 1 35¢ 1 10¢ 0¢ 4
15¢ 20¢ 1 25¢ 1 40¢ 1 15¢ 0¢ 4
20¢ 25¢ 1 30¢ 1 45¢ 1 20¢ 0¢ 4
25¢ 25¢ 2 25¢ 2 25¢ 2 0¢ 3 0¢ 4
30¢ 30¢ 2 30¢ 2 30¢ 2 0¢ 3 0¢ 4
35¢ 35¢ 2 35¢ 2 35¢ 2 0¢ 3 0¢ 4
40¢ 40¢ 2 40¢ 2 40¢ 2 0¢ 3 0¢ 4
45¢ 45¢ 2 45¢ 2 45¢ 2 0¢ 3 0¢ 4

1
– Accepts inserted money 3
– Soda delivered and change returned
2
– Any money inserted is returned 4
– All inserted money is returned
FSM Labeled Digraph
Since a relation RM can be defined for an FSM using a state
transition function, then a digraph can be created to
represent the relation. It must be a labeled digraph to
indicate which input specifies which transition

Current RM = {(s0, fa(s0) = s0),


state a b
s0 s0 s1 (s0, fb(s0) = s1),
(s1, fa(s1) = s2),
s1 s2 s0
(s1, fb(s1) = s0),
s2 s1 s2
(s2, fa(s2) = s1),
(s2, fb(s2) = s2)}
FSM Labeled Digraph (continued)

s1
b
a

b
s0
a
a

s2
b

17
Soda Machine Digraph
(Select button transitions are missing)

25¢

30¢

Coin return button


Q Q
5¢ D
0¢ D 35¢
N
15¢ Q
N
D N
Q
N 40¢
10¢ N
D
D
20¢ Q
45¢

18
Turing Machines

19
Turing Machines
• Finite state machines were presented as a simple
model of computation
• FSMs are effective in some settings, such as modeling
devices with limited input and output capabilities
• FSMs are unable to solve even simple computational
tasks such as determining whether a 0 or a 1 appears
the majority of the time in a binary string

20
Turing Machines
• Another model of computation presented here is the
Turing machine, named after the famous
mathematician Alan Turing
• Turing developed his model in the 1930's in order to
reason about general purpose computers
o Does a machine exist that can determine whether any arbitrary
machine on its tape is "circular" (e.g. freezes, or fails to continue
its computational task)
o Does a machine exist that can determine whether any arbitrary
machine on its tape ever prints a given symbol

21
Turing Machines
• The descriptions of a Turing machine is much simpler
than the description of a modern processor, but Turing
machines are believed to be every bit as powerful

• The Church-Turing conjecture says that any problem


that can be solved efficiently on any computing device
can be solved efficiently by a Turing machine.

22
Turing Machines
• A Turing machine consists of:
o A tape divided into cells, one next to the other.
Each cell contains a symbol from some finite
alphabet. The alphabet contains a special blank
symbol and one or more other symbols
o A head that can read and write symbols on the tape
and move the tape left and right one (and only one)
cell at a time
o A state register that stores the state of the Turing
machine, one of finitely many

23
Turing Machines
• And finally, a Turing machine consists of:
o A finite table of instructions that, given the state(qi) the
machine is currently in and the symbol(aj) it is reading on the
tape (symbol currently under the head), tells the machine to
do the following in sequence (for the 5-tuple models):
• Either erase or write a symbol (replacing aj with aj1), and
then
• Move the head (which is described by dk and can have
values: 'L' for one step left or 'R' for one step right or 'N'
for staying in the same place), and then
• Assume the same or a new state as prescribed (go to state
qi1).

24
Turing Machines
• See Zyante 7.5

25

You might also like