1 / 21

CS310

CS310. Homework 2 & JFLAP September 22, 2006. Homework 2. 1. Sipser 1.6 cdi -- DFA 2. Sipser 1.7 bdg -- NFA 3. Sipser 1.8 a – Construct the NFA for Union 4. Sipser 1.9 a – Construct the NFA for Concat 5. Sipser 1.10 a – Construct the NFA for *

lelia
Download Presentation

CS310

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS310 Homework 2 & JFLAP September 22, 2006

  2. Homework 2 1. Sipser 1.6 cdi -- DFA 2. Sipser 1.7 bdg -- NFA 3. Sipser 1.8 a – Construct the NFA for Union 4. Sipser 1.9 a – Construct the NFA for Concat 5. Sipser 1.10 a – Construct the NFA for * 6. Sipser 1.15 – Build a NFA from a “proof”, show counter example 7. Sipser 1.16 b – NFA to DFA 8. Sipser 1.19 a – Reg Expressions to NFA

  3. Example • aa* U aba*b*

  4. Homework #3 • Due Oct 20 • Posted on the web site • Be sure you have the correct version of the questions!

  5. Quick Review • Regular Expression: • Use regular operations and languages to create a regular expression R whose value is a language L(R) • order of operations: *, concat, U • Can build an NFA from a Regular Expression R= a, a є∑R= ε R=Ø R= R1 U R2 , R1 , R2 are regular R= R1R2 , R1 , R2 are regular R= R1* , R1 is regular Today: How can we build a Regular Expression from a DFA?

  6. Proof • Lemma: If a language is regular, it is described by a regular expression • Proof Idea: If a language is regular, there exists a DFA that accepts it. We need to convert a DFA to a regular expression. Steps: • Convert DFA to GNFA • Convert GNFA to Regular Expression • GNFA?!

  7. Generalized NFA • NFA where the transitions may have regular expressions as labels rather than just ∑ or ε • Reads blocks of symbols from the input • Wait, why are we doing this? • to build up the regular expression slowly from the DFA aa ab* ab U ba a* qstart ε (aa)* qaccept b* ab b

  8. GNFA aa • Start state transitions to every other state, no transitions to start state • Single accept state, transition to it from every other state, no way out, Start state != accept state • Except for the start and accept states, one arrow goes from every state to every other state (except the start state) and also from every state to itself. ab* ab U ba a* qstart ε (aa)* qaccept Special case of GNFA that we will use! b* ab b

  9. DFA to GNFA 1 , 0 1 1 , 0 0 • Add new start state with ε- transitions to old start state and Ø to every other state • Ø means you never take the transition • Replace multiple transitions in same direction with Union • If no transition exists between states, add transitions with Ø labels (just as placeholders)

  10. DFA to Regular Expression 5 State GNFA 3 State DFA 4 State GNFA 2 State GNFA 3 State GNFA 4 State GNFA 2 states How many transitions? What do the labels on the transitions look like? We can reduce the GNFA by one state at a time Regular Expression

  11. GNFA to Regular Expression • Each GNFA has at least 2 states (start and accept) • To convert GNFA to Regular Expression: • GNFA has k states, k >= 2 if k > 2 then Produce a GNFA with k-1 states repeat 1 (1*0*)* qaccept qstart

  12. GNFA to k-1 States • Pick any state in the machine that is not the start or accept state and remove it • Fix up the transitions so the language remains the same (R1(R2)*R3) U R4 R4 R3 R1 This change needs to be made for every pair of states connected through the removed state Rip this out! R2

  13. Example, NFA to Regular Expression a a, b b

  14. JFLAP • www.jflap.org • Let’s you experiment with languages/machines/etc. • Great functionality • UI is horrible • Main Menu

  15. Build a NFA

  16. The NFA

  17. Test Input

  18. Accepted!

  19. Exercise • {w | every odd position of w is 1 } NFA? How do we write this?

  20. Exercise • {w | w does not contain 110 } NFA? How do we write this?

  21. Exercise • {w| w contains even # 0s or exactly two 1s} NFA? How do we write this?

More Related