cs 301
play

CS 301 Lecture 10 Chomsky Normal Form Stephen Checkoway February - PowerPoint PPT Presentation

CS 301 Lecture 10 Chomsky Normal Form Stephen Checkoway February 19, 2018 1 / 23 More CFLs A = { a i b j c k i j or i = k } B = { w w { a , b , c } contains the same number of a s as b s and c s combined } C


  1. CS 301 Lecture 10 – Chomsky Normal Form Stephen Checkoway February 19, 2018 1 / 23

  2. More CFLs • A = { a i b j c k ∣ i ≤ j or i = k } • B = { w ∣ w ∈ { a , b , c } ∗ contains the same number of a s as b s and c s combined } • C = { 1 m + 1 n = 1 m + n ∣ m, n ≥ 1 } ; Σ = { 1 , + , = } • D = ( abb ∗ ∣ bbaa ) ∗ • E = { w ∣ w ∈ { 0 , 1 } ∗ and w R is a binary number not divisible by 5 } 2 / 23

  3. Another proof that regular languages are context-free We can encode the computation of a DFA on a string using a CFG Give a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where 3 / 23

  4. Another proof that regular languages are context-free We can encode the computation of a DFA on a string using a CFG Give a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where • states of M are variables in G 3 / 23

  5. Another proof that regular languages are context-free We can encode the computation of a DFA on a string using a CFG Give a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where • states of M are variables in G • q 0 is the start variable, and 3 / 23

  6. Another proof that regular languages are context-free We can encode the computation of a DFA on a string using a CFG Give a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where • states of M are variables in G • q 0 is the start variable, and • transitions δ ( q, t ) = r become rules q → tr 3 / 23

  7. Another proof that regular languages are context-free We can encode the computation of a DFA on a string using a CFG Give a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where • states of M are variables in G • q 0 is the start variable, and • transitions δ ( q, t ) = r become rules q → tr If on input w = w 1 w 2 ⋯ w n , M goes through states r 0 , r 1 , . . . , r n , then r 0 ⇒ w 1 r 1 ⇒ w 1 w 2 r 2 ⇒ ⋯ ⇒ w 1 w 2 ⋯ w n r n 3 / 23

  8. Another proof that regular languages are context-free We can encode the computation of a DFA on a string using a CFG Give a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where • states of M are variables in G • q 0 is the start variable, and • transitions δ ( q, t ) = r become rules q → tr If on input w = w 1 w 2 ⋯ w n , M goes through states r 0 , r 1 , . . . , r n , then r 0 ⇒ w 1 r 1 ⇒ w 1 w 2 r 2 ⇒ ⋯ ⇒ w 1 w 2 ⋯ w n r n So G has derived the string wr n but this still has a variable What additional rules should we add to end up with a string of terminals? For each state q ∈ F , add a rule q → ε 3 / 23

  9. Formally Proof. Given a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where V = Q S = q 0 R = { q → tr ∶ δ ( q, t ) = r } ∪ { q → ε ∶ q ∈ F } 4 / 23

  10. Formally Proof. Given a DFA M = ( Q, Σ , δ, q 0 , F ) , we can construct an equivalent CFG G = ( V, Σ , R, S ) where V = Q S = q 0 R = { q → tr ∶ δ ( q, t ) = r } ∪ { q → ε ∶ q ∈ F } If r 0 , r 1 , . . . , r n is the computation of M on input w = w 1 w 2 ⋯ w n , then r 0 = q 0 and δ ( r i − 1 , w i ) = r i for 1 ≤ i ≤ n ∗ By construction r 0 ⇒ w 1 r 1 ⇒ w 1 w 2 r 2 ⇒ w 1 w 2 ⋯ w n r n ∗ Therefore, w ∈ L ( M ) iff r n ∈ F iff r n ⇒ ε iff q 0 ⇒ w iff w ∈ L ( G ) 4 / 23

  11. Returning to our language E = { w ∣ w ∈ { 0,1 } ∗ and w R is a binary number not divisible by 5 } Q 1 0 1 0 Q 0 Q 2 1 0 1 1 Q 4 Q 3 1 0 0 5 / 23

  12. Returning to our language E = { w ∣ w ∈ { 0,1 } ∗ and w R is a binary number not divisible by 5 } Q 1 0 Q 0 → 0 Q 0 ∣ 1 Q 2 1 0 Q 1 → 0 Q 3 ∣ 1 Q 0 ∣ ε Q 0 Q 2 Q 2 → 0 Q 1 ∣ 1 Q 3 ∣ ε 1 Q 3 → 0 Q 4 ∣ 1 Q 1 ∣ ε 0 1 Q 4 → 0 Q 2 ∣ 1 Q 4 ∣ ε 1 Q 4 Q 3 1 0 0 5 / 23

  13. Chomsky Normal Form (CNF) A CFG G = ( V, Σ , R, S ) is in Chomsky Normal Form if all rules have one of these forms • S → ε where S is the start variable • A → BC where A ∈ V and B, C ∈ V ∖ { S } • A → t where A ∈ V and t ∈ Σ Note • The only rule with ε on the right has the start variable on the left • The start variable doesn’t appear on the right hand side of any rule 6 / 23

  14. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S T → AU ∣ BV ∣ a ∣ b U → TA V → TB A → a B → b 7 / 23

  15. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b U → TA V → TB A → a B → b 7 / 23

  16. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA V → TB A → a B → b 7 / 23

  17. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB A → a B → b 7 / 23

  18. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB ⇒ b AUB A → a B → b 7 / 23

  19. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB ⇒ b AUB A → a ⇒ ba UB B → b 7 / 23

  20. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB ⇒ b AUB A → a ⇒ ba UB B → b ⇒ ba TAB 7 / 23

  21. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB ⇒ b AUB A → a ⇒ ba UB B → b ⇒ ba TAB ⇒ baa AB 7 / 23

  22. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB ⇒ b AUB A → a ⇒ ba UB B → b ⇒ ba TAB ⇒ baa AB ⇒ baaa B 7 / 23

  23. CNF example Let A = { w ∣ w ∈ { a , b } ∗ and w = w R } . CFG in CNF Derivation of baaab S → AU ∣ BV ∣ a ∣ b ∣ ε S ⇒ BV T → AU ∣ BV ∣ a ∣ b ⇒ b V U → TA ⇒ b TB V → TB ⇒ b AUB A → a ⇒ ba UB B → b ⇒ ba TAB ⇒ baa AB ⇒ baaa B ⇒ baaab 7 / 23

  24. Converting to CNF Theorem Every context-free language A is generated by some CFG in CNF. Proof. Given a CFG G = ( V, Σ , R, S ) generating A , we construct a new CFG G ′ = ( V ′ , Σ , R ′ , S ′ ) in CNF generating A . There are five steps. START Add a new start variable BIN Replace rules with RHS longer than two with multiple rules each of which has a RHS of length two DEL- ε Remove all ε -rules ( A → ε ) UNIT Remove all unit-rules ( A → B ) TERM Add a variable and rule for each terminal ( T → t ) and replace terminals on the RHS of rules 8 / 23

  25. Proof continued In the following x ∈ V ∪ Σ and u ∈ ( Σ ∪ V ) + START Add a new start variable S ′ and a rule S ′ → S 9 / 23

  26. Proof continued In the following x ∈ V ∪ Σ and u ∈ ( Σ ∪ V ) + START Add a new start variable S ′ and a rule S ′ → S BIN Replace each rule A → xu with the rules A → xA 1 and A 1 → u and repeat until the RHS of every rule has length at most two 9 / 23

  27. Proof continued In the following x ∈ V ∪ Σ and u ∈ ( Σ ∪ V ) + START Add a new start variable S ′ and a rule S ′ → S BIN Replace each rule A → xu with the rules A → xA 1 and A 1 → u and repeat until the RHS of every rule has length at most two DEL- ε For each rule of the form A → ε other than S ′ → ε remove A → ε and update all rules with A in the RHS 9 / 23

  28. Proof continued In the following x ∈ V ∪ Σ and u ∈ ( Σ ∪ V ) + START Add a new start variable S ′ and a rule S ′ → S BIN Replace each rule A → xu with the rules A → xA 1 and A 1 → u and repeat until the RHS of every rule has length at most two DEL- ε For each rule of the form A → ε other than S ′ → ε remove A → ε and update all rules with A in the RHS • B → A . Add rule B → ε unless B → ε has already been removed 9 / 23

  29. Proof continued In the following x ∈ V ∪ Σ and u ∈ ( Σ ∪ V ) + START Add a new start variable S ′ and a rule S ′ → S BIN Replace each rule A → xu with the rules A → xA 1 and A 1 → u and repeat until the RHS of every rule has length at most two DEL- ε For each rule of the form A → ε other than S ′ → ε remove A → ε and update all rules with A in the RHS • B → A . Add rule B → ε unless B → ε has already been removed • B → AA . Add rule B → A and if B → ε has not already been removed, add it 9 / 23

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend