lecture 20 - murray state...

32
Lecture 20 Languages & Automata

Upload: others

Post on 19-Oct-2020

8 views

Category:

Documents


0 download

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