Reverse of a Regular Language by day66380

VIEWS: 0 PAGES: 75

									Reverse of a Regular Language




                                1
Theorem:
                 R
   The reverse L of a regular language   L
   is a regular language


Proof idea:
                                 R
   Construct NFA that accepts   L :
   invert the transitions of the NFA
   that accepts L
                                         2
                 Proof
Since L is regular,
there is NFA that accepts   L

Example:
           b
                            L  ab * ba
           a
           b
                 a
                                           3
Invert Transitions

b

a
b
       a
                     4
Make old initial state a final state


        b

    a
     b
             a
                                       5
Add a new initial state


        b

    a            
     b               
            a
                          6
Resulting machine accepts       LR




     LR   is regular
                               L  ab * ba
              b
                               L  b * a  ab
                                R

          a            
          b                
                  a
                                                7
Grammars




           8
                Grammars
Grammars express languages

Example:   the English language

 sentence  noun _ phrase          predicate


 noun _ phrase  article          noun


 predicate  verb                              9
article  a
article  the


noun  boy
noun  dog


verb  runs
verb  walks    10
A derivation of “the boy walks”:

 sentence  noun _ phrase          predicate
            noun _ phrase         verb
            article      noun     verb
            the noun       verb
            the boy verb
            the boy walks
                                               11
A derivation of “a dog runs”:

 sentence  noun _ phrase         predicate
             noun _ phrase       verb
             article     noun    verb
             a noun       verb
             a dog verb
             a dog runs
                                              12
Language of the grammar:

          L = { “a boy runs”,
                “a boy walks”,
                “the boy runs”,
                “the boy walks”,
                “a dog runs”,
                “a dog walks”,
                “the dog runs”,
                “the dog walks” }
                                    13
                Notation

               noun  boy
               noun  dog


 Variable                     Terminal
                 Production
    or
                 rule
Non-terminal

                                         14
            Another Example
Grammar:   S  aSb
           S 

Derivation of sentence   ab :

            S  aSb  ab

      S  aSb            S 
                                15
Grammar:    S  aSb
            S 

Derivation of sentence   aabb :
       S  aSb  aaSbb  aabb


           S  aSb         S 
                                  16
Other derivations:

S  aSb  aaSbb  aaaSbbb  aaabbb



S  aSb  aaSbb  aaaSbbb
   aaaaSbbbb  aaaabbbb

                                 17
Language of the grammar

             S  aSb
             S 


         L  {a b : n  0}
               n n




                             18
            More Notation

Grammar    G  V ,T , S , P 
    V : Set of variables

    T : Set of terminal symbols
     S : Start variable

    P:    Set of Production rules
                                    19
                   Example

Grammar   G:      S  aSb
                  S 

          G  V ,T , S , P 

 V  {S }       T  {a, b}
                       P  {S  aSb, S  }
                                         20
              More Notation
Sentential Form:
          A sentence that contains
          variables and terminals

Example:

S  aSb  aaSbb  aaaSbbb  aaabbb


       Sentential Forms         sentence
                                           21
                *
We write:     S  aaabbb



Instead of:


S  aSb  aaSbb  aaaSbbb  aaabbb

                                 22
                          *
In general we write:   w1  wn




If:      w1  w2  w3    wn


                                 23
                *
By default:   w  w




                      24
          Example
Grammar         Derivations
S  aSb            *
                S 
S 
                    *
                S  ab
                    *
                S  aabb
                    *
                S  aaabbb
                              25
          Example
Grammar          Derivations
S  aSb      
           S  aaSbb
S 
                    
           aaSbb  aaaaaSbbbbb



                               26
      Another Grammar Example
Grammar G : S  Ab
               A  aAb
               A


Derivations:
       S  Ab  b
       S  Ab  aAbb  abb
       S  aAbb  aaAbbb  aabbb
                                   27
            More Derivations
S  Ab  aAbb  aaAbbb  aaaAbbbb
   aaaaAbbbbb  aaaabbbbb

  
S  aaaabbbbb
  
S  aaaaaabbbbbbb
  
S a b b
      n n
                                28
         Language of a Grammar

For a grammar G
with start variable   S :

                            
           L(G )  {w : S  w}


              String of terminals
                                    29
                    Example
For grammar    G:       S  Ab
                        A  aAb
                        A

         L(G )  {a b b : n  0}
                         n n


                    
      Since:    S a b b n n

                                   30
      A Convenient Notation


    A  aAb
                     A  aAb | 
    A



article  a
                    article  a | the
article  the
                                    31
Linear Grammars




                  32
             Linear Grammars
Grammars with
at most one variable at the right side
of a production



Examples:    S  aSb           S  Ab
             S               A  aAb
                                A
                                         33
      A Non-Linear Grammar

Grammar   G:    S  SS
                S 
                S  aSb
                S  bSa

   L(G)  {w : na ( w)  nb ( w)}

                                    34
      Another Linear Grammar

Grammar   G :   SA
                A  aB | 
                B  Ab


          L(G )  {a b : n  0}
                   n n


                                  35
           Right-Linear Grammars
All productions have form:   A  xB
                               or
                             A x

Example:    S  abS
            S a


                                      36
           Left-Linear Grammars
All productions have form:   A  Bx
                               or
                             A x

Example:    S  Aab
            A  Aab | B
            Ba
                                      37
Regular Grammars




                   38
             Regular Grammars
A regular grammar is any
right-linear or left-linear grammar

Examples:
            G1                    G2
        S  abS                S  Aab
        S a                   A  Aab | B
                               Ba
                                             39
               Observation
Regular grammars generate regular languages

Examples:                 G2
    G1                   S  Aab
  S  abS                A  Aab | B
  S a                   Ba

 L(G1)  (ab) * a       L(G2 )  aab(ab) *
                                          40
Regular Grammars
    Generate
Regular Languages



                    41
              Theorem

Languages
Generated by
Regular Grammars
                       Regular
                        Languages




                                    42
          Theorem - Part 1

Languages
Generated by                Regular
                             Languages
Regular Grammars


    Any regular grammar generates
    a regular language



                                         43
          Theorem - Part 2

Languages
Generated by                Regular
                             Languages
Regular Grammars


     Any regular language is generated
     by a regular grammar



                                         44
           Proof – Part 1

Languages
Generated by               Regular
                            Languages
Regular Grammars


 The language L (G ) generated by
 any regular grammar G is regular


                                        45
  The case of Right-Linear Grammars

Let   G be a right-linear grammar

We will prove:   L(G ) is regular



Proof idea:      We will construct NFA   M
                 with L ( M )  L (G )
                                             46
Grammar   G is right-linear

 Example:     S  aA | B
              A  aa B
               Bb B|a




                              47
Construct NFA M such that
every state is a grammar variable:

                     A
                                     special
          S                   VF
                                     final state
                    B
S  aA | B
A  aa B
Bb B|a                                       48
Add edges for each production:


              a     A
          S                  VF

                   B

 S  aA
                                  49
             a   A
        S            VF
             
                 B

S  aA | B
                          50
                     A
             a           a


        S                a   VF
                 
                     B
S  aA | B
A  aa B
                                  51
                 A
             a       a


         S           a       VF
             
                 B
S  aA | B
                         b
A  aa B
B  bB                            52
                 A
             a       a


        S            a           VF
                        a
                 B
S  aA | B
                             b
A  aa B
B  bB | a                            53
             A
        a       a


    S           a           VF
                   a
            B

                        b

S  aA  aaaB  aaabB  aaaba
                                 54
        NFA     M                       Grammar
            A                            G
                a                      S  aA | B
    a
                                       A  aa B
S               a                      B  bB | a
                           VF
                    a
            B
                                 L( M )  L(G ) 
                        b
                                 aaab * a  b * a
                                                    55
                   In General
A right-linear grammar   G

has variables:   V0 ,V1,V2 ,


and productions:    Vi  a1a2 amV j
                          or

                    Vi  a1a2 am
                                       56
We construct the NFA     M such that:

each variable    Vi corresponds to a node:

                 V1        V3
      V0
                                    VF
                V2                special
                          V4
                                  final state57
For each production:   Vi  a1a2 amV j

we add transitions and intermediate nodes



  Vi   a1     a2         ………
                                  am V
                                       j




                                            58
For each production:   Vi  a1a2 am

we add transitions and intermediate nodes



  Vi   a1     a2         ………
                                  am
                                       VF




                                            59
Resulting NFA     M looks like this:
                            a9

                       a2        a4
             a1     V1                V3
                       a3                   a5
        V0
             a3             a4
                                                 VF
                                 a8        a9
                  V2   a5
                                  V4


It holds that:    L(G )  L( M )                      60
   The case of Left-Linear Grammars

Let   G be a left-linear grammar

We will prove:   L(G ) is regular


Proof idea:
    We will construct a right-linear
    grammar G    with L(G )  L(G) R
                                         61
Since G is left-linear grammar
the productions look like:


           A  Ba1a2 ak

           A  a1a2 ak



                                 62
Construct right-linear grammar   G
   In   G:        A  Ba1a2 ak
                  A  vB



   In   G :     A  ak a2a1B
                 Av B R
                                      63
Construct right-linear grammar   G
  In    G:        A  a1a2 ak
                  Av



   In   G :     A  ak a2a1
                 Av    R
                                      64
It is easy to see that:     L(G )  L(G)   R


Since    G  is right-linear, we have:


 L(G)              L(G)   R            L(G )
 Regular           Regular               Regular
 Language          Language              Language

                                                 65
           Proof - Part 2

Languages
Generated by               Regular
                            Languages
Regular Grammars


 Any regular language L is generated
 by some regular grammar G


                                        66
Any regular language L is generated
by some regular grammar G



Proof idea:
  Let   M be the NFA with L  L(M ).

  Construct from M a regular grammar   G
  such that L ( M )  L (G )
                                       67
Since L is regular
there is an NFA M such that      L  L(M )
                            b
Example:
              M                  a
                        a
                  q0        q1        q2
                                     b
L  ab * ab(b * ab) *            q3
L  L(M )                                    68
Convert   M to a right-linear grammar
                           b

              M                 a
                       a
                  q0       q1        q2

 q0  aq1                           b
                                q3


                                          69
                        b

           M                 a
                    a
               q0       q1        q2
q0  aq1
                                 b
q1  bq1                     q3
q1  aq2

                                       70
                        b

           M                 a
                    a
               q0       q1        q2
q0  aq1
q1  bq1                         b

q1  aq2                     q3

q2  bq3

                                       71
           L(G )  L( M )  L
  G                             b

q0  aq1        M
                         a           a
                    q0          q1        q2
q1  bq1
q1  aq2                                 b

q2  bq3                             q3

q3  q1
q3  
                                               72
                In General
                             a
For any transition:      q           p




Add production:          q  ap


              variable    terminal       variable
                                                73
For any final state:    qf




Add production:        qf 



                               74
Since   G is right-linear grammar


        G is also a regular grammar


        with   L(G )  L( M )  L


                                      75

								
To top