Introduction to Automata
Theory
      Reading: Chapter 1
                           1
What is Automata Theory?
■   Study of abstract computing devices, or
    “machines”
■   Automaton = an abstract computing device
    ■   Note: A “device” need not even be a physical
        hardware!
■   A fundamental question in computer science:
    ■   Find out what different models of machines can do
        and cannot do
    ■   The theory of computation
■   Computability vs. Complexity
                                                       2
(A pioneer of automata theory)
Alan Turing (1912-1954)
■   Father of Modern Computer
    Science
■   English mathematician
■   Studied abstract machines called
    Turing machines even before
    computers existed
■   Heard of the Turing test?
                                       3
Theory of Computation: A
Historical Perspective
    1930s   • Alan Turing studies Turing machines
            • Decidability
            • Halting problem
1940-1950s • “Finite automata” machines studied
           • Noam Chomsky proposes the
              “Chomsky Hierarchy” for formal
               languages
   1969      Cook introduces “intractable” problems
             or “NP-Hard” problems
   1970-     Modern computer science: compilers,
             computational & complexity theory evolve
                                                    4
        Languages & Grammars
                                                        ■   Languages: “A language is a
Or “words”                                                  collection of sentences of
                                                            finite length all constructed
                                                            from a finite alphabet of
                                                            symbols”
                                                        ■   Grammars: “A grammar can
                                                            be regarded as a device that
                                                            enumerates the sentences of
                                                            a language” - nothing more,
                                                            nothing less
                                                        ■   N. Chomsky, Information and
                                                            Control, Vol 2, 1959
     Image source: Nowak et al. Nature, vol 417, 2002
                                                                                     5
The Chomsky Hierachy
• A containment hierarchy of classes of formal languages
 Regul
   ar    Context-
                     Context-
 (DFA)       free                  Recursively-
                     sensitive
           (PDA)                   enumerable
                        (LBA)
                                          (TM)
                                                    6
The Central Concepts of
Automata Theory
                          7
Alphabet
An alphabet is a finite, non-empty set of
  symbols
■ We use the symbol ∑ (sigma) to denote an
  alphabet
■ Examples:
  ■   Binary: ∑ = {0,1}
  ■   All lower case letters: ∑ = {a,b,c,..z}
  ■   Alphanumeric: ∑ = {a-z, A-Z, 0-9}
  ■   DNA molecule letters: ∑ = {a,c,g,t}
  ■   …
                                                8
Strings
A string or word is a finite sequence of symbols
  chosen from ∑
■ Empty string is ε (or “epsilon”)
■   Length of a string w, denoted by “|w|”, is
    equal to the number of (non- ε) characters in the
    string
    ■   E.g., x = 010100        |x| = 6
    ■   x = 01 ε 0 ε 1 ε 00 ε   |x| = ?
■   xy = concatentation of two strings x and y
                                                        9
Powers of an alphabet
 Let ∑ be an alphabet.
 ■   ∑k = the set of all strings of length k
 ■   ∑* = ∑0 U ∑1 U ∑2 U …
 ■   ∑+ = ∑ 1 U ∑ 2 U ∑ 3 U …
                                               10
Languages
L is a said to be a language over alphabet ∑, only if L ⊆ ∑*
       this is because ∑* is the set of all strings (of all possible
        length including 0) over the given alphabet ∑
Examples:
    1.    Let L be the language of all strings consisting of n 0’s
          followed by n 1’s:
               L = {ε, 01, 0011, 000111,…}
    2.    Let L be the language of all strings of with equal number of
          0’s and 1’s:
               L = {ε, 01, 10, 0011, 1100, 0101, 1010, 1001,…}
                   Canonical ordering of strings in the language
Definition: Ø denotes the Empty language
■ Let L = {ε}; Is L=Ø?
                            NO
                                                                   11
The Membership Problem
Given a string w ∈∑*and a language L
 over ∑, decide whether or not w ∈L.
Example:
 Let w = 100011
 Q) Is w ∈ the language of strings with
 equal number of 0s and 1s?
                                       12
Finite Automata
■   Some Applications
    ■   Software for designing and checking the behavior
        of digital circuits
    ■   Lexical analyzer of a typical compiler
    ■   Software for scanning large bodies of text (e.g.,
        web pages) for pattern finding
    ■   Software for verifying systems of all types that
        have a finite number of states (e.g., stock market
        transaction, communication/network protocol)
                                                       13
Finite Automata : Examples
                                          action
■   On/Off switch                              state
■   Modeling recognition of the word “then”
Start state   Transition   Intermediate    Final state
                           state
                                                       14