lecture 20 - murray state...
TRANSCRIPT
-
Lecture 20Languages & Automata
-
U - Up
D - Down
L - Left
R - Right
Introduction to Finite State Machines
-
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.
Definition of a Finite State Machine
-
Example: Maze FSM
-
Example DFA
-
The Execution of an NFA
The NFA will have zero or more transitions from every state for each input symbol.
All active states are maintained until the input string is consumed or there are no active states.
-
Equivalent ways Recognize Regular Languages
-
Finite Automata as Output Devices
We can add output functions to FSA in two different ways. We can have the FSA generate an output symbol for each transition from one state to another, or we can generate an output each time control enters a
state.
input: X Y Z X X Z Y X Z Y Y Z
output: B A A B A A A A A A A A
-
Moore Machine
-
Example: Moore Machine
input: X Y Z X X Z Y X Z Y Y Z
output: B A A B A A A A A A A A
-
Mealy Machine
-
Let's look at two such machines to find the number of occurences of the substring 'bab' in any strings over the
alphabet S = {a,b}.
Another Example
Mealy Machine Moore Machine
-
Integer String Recognizer
Build 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 reject
01001110 accept
0111 accept
110000 reject
FSM that accepts strings containing at least three 1's
FSM that accepts strings containing at least three consecutive 1's
0000110011001100 reject
0001110000000000 accept
1010101010000000 reject
11111111 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
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
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