sm2220 – class 06 finite automata. sm2220 – class 06 topic in theoretical computing. a subset of...
TRANSCRIPT
SM2220 – Class 06
Finite Automata
SM2220 – Class 06
Topic in theoretical computing.
A subset of computation machines.
Closely related to formal language.
SM2220 – Class 06
Finite Automata
Finite State Automata
Finite State Machine (FSM)
SM2220 – Class 06
Before discussing Finite Automata, we have to
take care of the concepts,
• Symbol and coding in textual environment;
• Computation.
SM2220 – 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.
SM2220 – 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.
SM2220 – Class 06
SM2220 – 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.
SM2220 – Class 06
From a functional point of view, computation can
be considered as a black box which takes in
symbols and produces symbols.
ComputationInput symbols Output symbols
SM2220 – Class 06
Since all symbols are patterns of 0 and 1, the
simplest computation takes one symbol and
produce another one.
Computation1 1
0 0
SM2220 – Class 06
Or another simple one.
Computation1 0
0 1
SM2220 – Class 06
A little more complicated with 2 symbols as
input.
Computation
0 00 11 01 1
0001
SM2220 – Class 06
Such computation can be described
mathematically by Boolean Algebra.
A and B
0 and 0 = 00 and 1 = 01 and 0 = 01 and 1 = 1
A or B
0 or 0 = 00 or 1 = 11 or 0 = 11 or 1 = 1
SM2220 – 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)
SM2220 – 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)
SM2220 – 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.
SM2220 – Class 06
Imagine this strange Boolean algebra formula,
AND NOTA
SM2220 – Class 06
The feedback loop introduces the element of
time and most importantly, memory.
AND NOTA
SM2220 – Class 06
The current formula is not very stable. It can
perform better with in introduction of another
input.
AND NOTA
SM2220 – Class 06
AND NOTA
AND NOTB
SM2220 – Class 06
The memory gives you the state (status) of the
computing device.
The previous one can only remember two states
(1 bit information).
SM2220 – Class 06
Finite Automata is an abstract computing device
capable of remembering finite number of states.
SM2220 – 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
SM2220 – Class 06
It starts at an initial state. By accepting different
inputs, it changes to different states. Eventually,
it stops at an ending state.
SM2220 – Class 06
S0
S1
S2
a
b
b
Simple example
SM2220 – 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.
SM2220 – Class 06
State transition table
Current state Input Next state
S0 a S1
S0 b S2
S1 b S2
SM2220 – 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.
SM2220 – 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.
SM2220 – Class 06
Such language is known as,
• Regular language
• Regular grammar
• Regular expression
SM2220 – 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.
a+b – either a or b.
a* - zero or more occurrences of a.
SM2220 – Class 06
Exercise time
aa*
(a+b)*
(aa+ab+ba+bb)*
((a+b)(a+b))*
SM2220 – Class 06
If a regular language and a finite automata are
equivalent, can we draw a finite automata which
is the same as
aa*
SM2220 – Class 06
S0 S1
aa
SM2220 – Class 06
State transition table
Current state Input Next state
S0 a S1
S1 a S1
SM2220 – Class 06
S0
S1 S3
S2
a
a
b
b a
b
a, b
More complicated example
SM2220 – Class 06
Exercise time
Try to draw the transition table for the finite
automata.
Try to identify the regular language pattern.
SM2220 – Class 06
More exercise
Try to use regular language or finite automata to
describe a pattern which starts with a number of
a’s and ends with the same number of b’s
afterwards. E.g.
ab, aabb, aaaaabbbbb, etc.
SM2220 – Class 06
Applications of Finite Automata
SM2220 – 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.
SM2220 – Class 06
Gather Treasure
Flee
Fight
Monster in sight
Monster dead
Simple application in game
CorneredMonster away
SM2220 – 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.
SM2220 – Class 06
Let’s get back to this transition table.
Current state Input Next state
S0 a S1
S0 b S2
S1 b S2
SM2220 – Class 06
From the state transition table, the next state is
a function of both the current state and input
symbol.
Current state Input Next state
S0 a S1
S0 b S2
S1 b S2
SM2220 – Class 06
(S0, a) -> S1
(S0, b) -> S2
(S1, b) -> S2
It is a mapping from a 2D array to the set of
states, which has been shown in your previous
workshop.
SM2220 – Class 06
Q & A