Title: SM2220 Class 06
1SM2220 Class 06
Finite Automata
2SM2220 Class 06
Topic in theoretical computing. A subset of
computation machines. Closely related to formal
language.
3SM2220 Class 06
Finite Automata Finite State Automata Finite
State Machine (FSM)
4SM2220 Class 06
- Before discussing Finite Automata, we have to
take care of the concepts, - Symbol and coding in textual environment
- Computation.
5SM2220 Class 06
We are taught in SM1001 that everything inside
the computer is represented by string of 0 and
1. English text comprises of alphabets (a-z,
A-Z), digits (0-9) and punctuation (, . ,
etc.) They are represented by a coding scheme,
ASCII.
6SM2220 Class 06
If we count the number of symbols for a piece of
typical English text, it has around 80 such
characters. One unit of binary digit can
represent 2 symbols, 0 and 1. It needs at least 7
digits (7 bits) to represent common English text.
7SM2220 Class 06
8SM2220 Class 06
A basic unit of storage is 8 bits byte. It
takes 1 byte to represent an English text
symbol. That is all for the symbol for the time
being. If we want to manipulate the text in
computer, we have to think about the computation
process.
9SM2220 Class 06
From a functional point of view, computation can
be considered as a black box which takes in
symbols and produces symbols.
Computation
Input symbols
Output symbols
10SM2220 Class 06
Since all symbols are patterns of 0 and 1, the
simplest computation takes one symbol and produce
another one.
1
1
Computation
0
0
11SM2220 Class 06
Or another simple one.
1
0
Computation
0
1
12SM2220 Class 06
A little more complicated with 2 symbols as input.
0 0 0 1 1 0 1 1
0 0 0 1
Computation
13SM2220 Class 06
Such computation can be described mathematically
by Boolean Algebra.
A and B 0 and 0 0 0 and 1 0 1 and 0 0 1
and 1 1
A or B 0 or 0 0 0 or 1 1 1 or 0 1 1 or 1
1
14SM2220 Class 06
The computation can become very complicated such
as A and (B or (C and B) and (A or C)) and (D or
B)
15SM2220 Class 06
No matter how complicated and long the
expression, it always gives the same result with
the same combination of A, B, C and D. A and (B
or (C and B) and (A or C)) and (D or B)
16SM2220 Class 06
Once you have the combination of A, B, C and D,
the result is fixed, instantly available and
always be the same. A and (B or (C and B) and (A
or C)) and (D or B) Combinational Logic.
17SM2220 Class 06
Imagine this strange Boolean algebra formula,
AND
NOT
A
18SM2220 Class 06
The feedback loop introduces the element of time
and most importantly, memory.
AND
NOT
A
19SM2220 Class 06
The current formula is not very stable. It can
perform better with in introduction of another
input.
AND
NOT
A
20SM2220 Class 06
AND
NOT
A
AND
NOT
B
21SM2220 Class 06
The memory gives you the state (status) of the
computing device. The previous one can only
remember two states (1 bit information).
22SM2220 Class 06
Finite Automata is an abstract computing device
capable of remembering finite number of states.
23SM2220 Class 06
A less abstract description Nonlinear description
of how an object can change its state over time,
possibly in response to events in its
environment. The Ultimate Guide to FSMs in Games
Dan Fu and Ryan Houlette
24SM2220 Class 06
It starts at an initial state. By accepting
different inputs, it changes to different states.
Eventually, it stops at an ending state.
25SM2220 Class 06
Simple example
S1
a
S0
b
b
S2
26SM2220 Class 06
The diagram is known as a Graph in Mathematics.
Each state is a node and each input symbol is a
directed link. A graph is different from a tree
that it can contain a loop.
27SM2220 Class 06
State transition table
28SM2220 Class 06
- If you consider the input symbol sequence, you
can notice the valid ones are, - ab
- b
- All the other input symbol sequences are invalid.
29SM2220 Class 06
Essentially this simple finite automata defines a
simple language which has only 2 alphabets a, b.
And the valid syntax for the language are the 2
sentences ab and b.
30SM2220 Class 06
- Such language is known as,
- Regular language
- Regular grammar
- Regular expression
31SM2220 Class 06
A regular language can also be described by other
means. If the language has only two alphabets
a, b, they can be written down like, ab
concatenation of symbol a and b. ab either a
or b. a - zero or more occurrences of a.
32SM2220 Class 06
Exercise time aa (ab) (aaabbabb) ((ab)(a
b))
33SM2220 Class 06
If a regular language and a finite automata are
equivalent, can we draw a finite automata which
is the same as aa
34SM2220 Class 06
a
S0
S1
a
35SM2220 Class 06
State transition table
36SM2220 Class 06
More complicated example
a, b
a
S1
S3
a
S0
a
b
b
b
S2
37SM2220 Class 06
Exercise time Try to draw the transition table
for the finite automata. Try to identify the
regular language pattern.
38SM2220 Class 06
More exercise Try to use regular language or
finite automata to describe a pattern which
starts with a number of as and ends with the
same number of bs afterwards. E.g. ab, aabb,
aaaaabbbbb, etc.
39SM2220 Class 06
Applications of Finite Automata
40SM2220 Class 06
If you start replacing the a, b symbols with
sentences, plots, etc., you can end up with a
piece of text like the Oulipo experiments.
41SM2220 Class 06
Simple application in game
Flee
Monster in sight
Gather Treasure
Monster away
Cornered
Monster dead
Fight
42SM2220 Class 06
If you start replacing the states S0, S1, etc.
with scenes, movie clips or frames, you will end
up with an interactive movie. The symbols a, b
will become your participants input, such as
sensor values or keyboard inputs. Remember the
previous workshop.
43SM2220 Class 06
Lets get back to this transition table.
44SM2220 Class 06
From the state transition table, the next state
is a function of both the current state and input
symbol.
45SM2220 Class 06
(S0, a) -gt S1 (S0, b) -gt S2 (S1, b) -gt S2 It is
a mapping from a 2D array to the set of states,
which has been shown in your previous workshop.
46SM2220 Class 06
Q A