1 / 12

Decision Problems about Regular Languages Theory of Computation

This text discusses decision problems related to regular languages in the theory of computation, including functions from one language to another and algorithms for operating on finite state machines (FSMs) and regular expressions.

Télécharger la présentation

Decision Problems about Regular Languages 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. MA/CSSE 474 Decision Problems about Regular Languages Theory of Computation

  2. Your Questions? • HW 9 problems • Next Tuesday's exam • Anything else • Previous class days' material • Reading Assignments

  3. Functions from one Language to Another Let chop(L) = {w : xL ( x = x1cx2, x1L*, x2L*, cL, |x1| = |x2|, and w = x1x2)} Is the set of regular languages closed under chop? Finish up this example from yesterdayChop(a*db*) = AnBn ∪ {aidbj : i+j is odd} Its intersection with a*b* is not regular, so it is not regular.

  4. Functions from One Language to Another Let maxstring(L) = {w: wL, z* (zwzL)} Is the set of regular languages closed under maxstring? Practice exercise for later

  5. Summary of algorithms we have so far The next few slides are here for reference. I do not expect to spend class time on them. You should know how to do all of them, but during class exercises and homework you may simply "call" any of them as part of your decision procedures. ● Operate on FSMs without altering the language that is accepted: ● ndfsmtodfsm(M: NDFSM) ● minDFSM (M:DFSM) ● buildFSMcanonicalform(M:FSM)

  6. Summary of Algorithms ● Compute functions of languages defined as FSMs: ● Given FSMs M1 and M2, construct a FSM M3 such that L(M3) = L(M2) L(M1). ● Given FSMs M1 and M2, construct a new FSM M3 such that L(M3) = L(M2) L(M1). ● Given FSM M, construct an FSM M* such that L(M*) = (L(M))*. ● Given a DFSM M, construct an FSM M* such that L(M*) = L(M). ● Given two FSMs M1 and M2, construct an FSM M3 such that L(M3) = L(M2) L(M1). ● Given two FSMs M1 and M2, construct an FSM M3 such that L(M3) = L(M2) - L(M1). ● Given an FSM M, construct an FSM M* such that L(M*) = (L(M))R. ● Given an FSM M, construct an FSM M* that accepts letsub(L(M)).

  7. Algorithms, Continued ● Converting between FSMs and regular expressions: ● Given a regular expression , construct an FSM M such that: L() = L(M) ● Given an FSM M, construct a regular expression  such that: L() = L(M) ● Algorithms that implement operations on languages defined by regular expressions: any operation that can be performed on languages defined by FSMs can be implemented by converting all regular expressions to equivalent FSMs and then executing the appropriate FSM algorithm.

  8. Algorithms, Continued ● Converting between FSMs and regular grammars: ● Given a regular grammar G, construct an FSM M such that: L(G) = L(M) ● Given an FSM M, construct a regular grammar G such that: L(G) = L(M). We have not yet discussed regular grammars. They are in the reading assignment for tomorrow. This is here for completeness.

  9. Decision Procedures A decision procedure is an algorithm whose result is a Boolean value (in this course's context, sometimes we will write "yes" or "no" instead of "true" or "false"). It must: ● Halt, no matter what (correctly typed) input it is given. ● Always give the correct answer Usually a decision procedure has one or more parameters Zero-parameter decision procedures are not very interesting!

  10. Simple decision procedure: Regular Language Membership Given a DFSM M=(Κ,Σ, δ, s, A) and a string w  Σ*, is w  L(M)?

  11. Answering Specific Questions Given two regular expressions 1 and 2, is: (L(1) L(2)) – {} ? 1. From 1, construct an FSM M1 such that L(1) = L(M1). 2. From 2, construct an FSM M2 such that L(2) = L(M2). 3. Construct M such that L(M ) = L(M1) L(M2). 4. Construct M such that L(M) = {}. 5. Construct M such that L(M ) = L(M ) - L(M). 6. If L(M ) is empty return False; else return True. (in today's exercises, you'll write an algorithm for step 6) For practice later: Given two regular expressions 1 and 2, are there at least 3 strings that are generated by both of them?

  12. Decision Procedures for Regular Languages • ● Given a regular expression  and a string w, is w in L()? • ● Given a FSM M, is L(M) empty? • ● Given a FSM M, does L(M) = M*? • ● Given a FSM M, is L(M) finite? • ● Given a FSM M, is L(M) infinite? • ● Given two FSMs M1 and M2, are they equivalent? • ● Given an DFSM M, is M minimal? • (Do this with a group of three students)

More Related