Computing Machinery Chapter 4: Finite State Machines
description
Transcript of Computing Machinery Chapter 4: Finite State Machines
Computing Machinery
Chapter 4: Finite State Machines
U - UpD - DownL - LeftR - Right
Introduction to Finite State Machines
Formally, a finite Automaton (FA) is defined as a 5-tuple (Q, , , q0, F) where, (1) Q is a finite set of states.
(2) is a finite set of symbols or the alphabet.
(3) : Q x -> 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.
Definition of a Finite State Machine
Example: Maze FSM
Moore Machine
Example: Moore Machine
input: X Y Z X X Z Y X Z Y Y Zoutput: B A A B A A A A A A A A
Mealy Machine
Integer String RecognizerBuild a finite state machine that can be used to recognize character string representations of integer values.
Valid Integers Not Integers 123 123.456 123456 12+345 -543 Hello There 9 9 3 5
Integer String Recognizer Design
01010000 reject01001110 accept0111 accept110000 reject
FSM that accepts strings containing at least three 1's
FSM that accepts strings containing at least three consecutive 1's
0000110011001100 reject0001110000000000 accept1010101010000000 reject11111111 accept
Substring Detectors
Building a Bit String Recognizerdetect bit string "1101"
Moore Machine: Bit String Recognizer ("1101")Sometimes we need to decide whether overlapping substrings are accepted
Mealy Machine: Bit String Recognizer ("1101")
1101101101101101101
FSM to Recognize if a Binary Encoded Value is Divisible by Four
Parity Testercounting 0's and counting 1's
Recognizing Binary Strings with the Same Number of 1's and 0's.
A Partial FSM to Recognize Palindromesbinary strings
Detecting Binary Encoded Values Divisible by Three
00000000010001000011001000010100110001110100001001010100101101100011010111001111
Consider the substrings that leave you in the same state regardless of which state you are in when the substring is encountered
Such substrings can be removed from the candidate string without affecting the final state. The substrings '11', '00' and '1001' are three such "reducible" substrings.
Reduce the following string by removing these substrings.
11011010000000001111000100010010011010
11011010000000001111000100010010011010
0010001010
101010 yes