1 / 25

CSE 105 theory of computation

CSE 105 theory of computation. Fall 2019 https://cseweb.ucsd.edu/classes/fa19/cse105-a/. Today's learning goals Sipser Ch 1.2, 1.3. Design NFA recognizing a given language Convert an NFA (with or without spontaneous moves) to a DFA recognizing the same language

hopeg
Télécharger la présentation

CSE 105 theory of computation

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. CSE 105 theory of computation Fall 2019 https://cseweb.ucsd.edu/classes/fa19/cse105-a/

  2. Today's learning goals Sipser Ch 1.2, 1.3 • Design NFA recognizing a given language • Convert an NFA (with or without spontaneous moves) to a DFA recognizing the same language • Decide whether or not a string is described by a given regular expression • Design a regular expression to describe a given language • Convert between regular expressions and automata

  3. Nondeterministic finite automata • "Guess" some stage of input at which switch modes • "Guess" one of finite list of criteria to meet Input M2 M1 Accept if either (or both) accepts M1 Input M2

  4. Acceptance in an NFA

  5. NFA

  6. Simulating NFA with DFA Not quite a closure proof, but … Proof: Given name variables for sets, machines assumed to exist. WTSstate goal and outline plan. Construction using objects previously defined + new tools working towards goal. Give formal definition and explain. Correctnessprove that construction works. Conclusion recap what you've proved.

  7. Simulating NFA with DFA For any language recognized by an NFA, there is a DFA that recognizes this language. Proof: Given A, a language recognized by NFA N = (Q,Σ,δ,q0,F) WTSthere exists a DFA M with L(M) = A Construction Correctness Conclusion

  8. From NFA to DFA Which of the following strings is accepted by this NFA? • The empty string • 01 • 111 • 0 • More than one of the above.

  9. Subset construction Given A, a language recognized by NFA N = (Q,Σ,δ,q0,F) WTSthere exists a DFA M with L(M) = A ConstructionDefine M = (Q', Σ, δ',q0', F') with • Q' = the power set of Q = { X | X is a subset of Q } • q0' = { states N can be in before first input symbol read } • F' = { } • δ' ( ) =

  10. From NFA to DFA Which states can this NFA be in before first input symbol is read? • q0 • any state • q0, q1 • q0, q4 • q0, q1, q4

  11. Subset construction Given A, a language recognized by NFA N = (Q,Σ,δ,q0,F) WTSthere exists a DFA M with L(M) = A ConstructionDefine M = (Q', Σ, δ',q0', F') with • Q' = the power set of Q = { X | X is a subset of Q } • q0' = { q0 } U δ((q0, ε)) … • F' = { } • δ' ( ) =

  12. Subset construction Given A, a language recognized by NFA N = (Q,Σ,δ,q0,F) WTSthere exists a DFA M with L(M) = A ConstructionDefine M = (Q', Σ, δ',q0', F') with • Q' = the power set of Q = { X | X is a subset of Q } • q0' = { q0 } U δ((q0, ε)) … • F' = { guarantee at least one computation is successful } • δ' ( ) =

  13. From NFA to DFA What does it mean for a set of states X to guarantee at least one computation is successful? • X is a subset of F • X = F • X F is nonempty • X is an element of F • None of the above. U

  14. Subset construction Given A, a language recognized by NFA N = (Q,Σ,δ,q0,F) WTSthere exists a DFA M with L(M) = A ConstructionDefine M = (Q', Σ, δ',q0', F') with • Q' = the power set of Q = { X | X is a subset of Q } • q0' = { q0 } U δ((q0, ε)) … • F' = { X | X is a subset of Q and X F is nonempty } • δ' ( (X, x) ) = { } U

  15. Subset construction Given A, a language recognized by NFA N = (Q,Σ,δ,q0,F) WTSthere exists a DFA M with L(M) = A ConstructionDefine M = (Q', Σ, δ',q0', F') with • Q' = the power set of Q = { X | X is a subset of Q } • q0' = { q0 } U δ((q0, ε)) … • F' = { X | X is a subset of Q and X F is nonempty } • δ' ( (X, x) ) = { q in Q | q is in δ(r,x) for some r in X or accessible via spontaneous moves} U Types?

  16. Subset construction warmup examples

  17. Subset construction example

  18. Recap Regular sets of strings i.e., those that aren't too complicated are those that are • the language of some DFA, or equivalently, • the language of some NFA. If a set of strings can be expressed as the result of complement, union, intersection, concatenation, Kleene starof regular languages, then it itself is regular.

  19. Regular expressions • Can all regular languages be expressed as those that are built up from very simple languages using the regular operations?

  20. Inductive application of closure Sipser 1.52 p. 64 R is a regular expressionover Σ if Σ is shorthand for (0 U 1) if Σ = {0,1}, Parentheses may be omitted, R+ means RR*, Rk means R concatenated with itself k times Watch out for overloaded symbols!

  21. Syntax  Languages The language described by a regular expression, L(R): • L ( (0 U 1)U1 ) = { } • L ( ) = { } • L ( ) = { }

  22. L(R) Which of the following strings is not in the language described by ( ( (00)*(11) ) U 01 )* • 00 • 01 • 1101 • I don't know

  23. L(R) Let L be the language over {a,b} described by the regular expression ((a U Ø) b*)* Which of the following is not true about L? • Some strings in L have equal numbers of a's and b's • L contains the string aaaaaa • a's never follow b's in any string in L • L can also be represented by the regular expression (ab*)* • More than one of the above.

  24. Regular expressions in practice • Compilers: first phase of compiling transforms Strings to Tokens keywords, operators, identifiers, literals • One regular expression for each token type • Other software tools: grep, Perl, Python, Java, Ruby, …

  25. "Regular = regular" Sipser Theorem 1.54 p. 66 Theorem: A language is regular if and only if some regular expression describes it. Lemma 1.55: If a language is described by a regular expression, then it is regular. Lemma 1.60: If a language is regular, then it is described by some regular expression

More Related