1 / 18

Lecture 26

Lecture 26. Decision problems about regular languages Basic problems are solvable halting, accepting, and emptiness problems Solvability of other problems answer-preserving input transformations to basic problems. Programs. In this unit, our programs are the following three types of objects

george
Download Presentation

Lecture 26

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. Lecture 26 • Decision problems about regular languages • Basic problems are solvable • halting, accepting, and emptiness problems • Solvability of other problems • answer-preserving input transformations to basic problems

  2. Programs • In this unit, our programs are the following three types of objects • FSA’s • NFA’s • regular expressions • Previously, they were C++ programs • Review those topics after mastering today’s examples

  3. Basic Decision Problems(and algorithms for solving them)

  4. Halting Problem • Input • FSA M • Input string x to M • Question • Does M halt on x? • Algorithm for solving halting problem • Output yes • Correct because an FSA always halts on all input strings

  5. Accepting Problem • Input • FSA M • Input string x to M • Question • Is x in L(M)? • Algorithm ACCEPT for solving accepting problem • Run M on x • If halting configuration is accepting THEN yes ELSE no • Note this algorithm actually has to do something

  6. Empty Language Problem • Input • FSA M • Question • Is L(M)={}? • How would you solve this problem?

  7. Algorithms for solving empty language problem • Algorithm 1 • View FSA M as a directed graph (nodes, arcs) • See if any accepting node is reachable from the start node • Algorithm 2 • Let n be the number of states in FSA M • Run ACCEPT(M,x) for all input strings of length < n • If any are accepted THEN no ELSE yes • Why is algorithm 2 correct? • Same underlying reason for why algorithm 1 works. • If any string is accepted by M, some string x must be accepted where M never is in the same state twice while processing x • This string x will have length at most n-1

  8. Solving Other Problems(using answer-preserving input transformations)

  9. Complement Empty Problem • Input • FSA M • Question • Is (L(M))c={}? • Use answer-preserving input transformations to solve this problem • We will show that the Complement Empty problem transforms to the Empty Language problem • How do we do this? • Apply the construction which showed that LFSA is closed under set complement

  10. Algorithm Description • Convert input FSA M into an FSA M’ such that L(M’) = (L(M))c • We do this by applying the algorithm which we used to show that LFSA is closed under complement • Feed FSA M’ into algorithm which solves the empty language problem • If that algorithm returns yes THEN yes ELSE no

  11. Complement Construction FSA M’ Input Transformation Illustrated Algorithm for solving empty language problem FSA M Yes/No Algorithm for complement empty problem The complement construction algorithm is the answer-pres. input transformation. If M is a yes input instance of CE, then M’ is a yes input instance of EL. If M is a no input instance of CE, then M’ is a no input instance of EL.

  12. NFA Empty Problem • Input • NFA M • Question • Is L(M)={}? • Use answer-preserving input transformations to solve this problem • We will show that the NFA Empty problem transforms to the Empty Language problem • How do we do this? • Apply the construction which showed that any NFA can be converted into an equivalent FSA

  13. Algorithm Description • Convert input NFA M into an FSA M’ such that L(M’) = L(M) • We do this by applying the algorithms which we used to show that LNFA is a subset of LFSA • Feed FSA M’ into algorithm which solves the empty language problem • If that algorithm returns yes THEN yes ELSE no

  14. Subset Construction FSA M’ Input Transformation Illustrated Algorithm for solving empty language problem NFA M Yes/No Algorithm for NFA empty problem The subset construction algorithm is the ans.-pres. input transformation. If M is a yes input instance of NE, then M’ is a yes input instance of EL. If M is a no input instance of NE, then M’ is a no input instance of EL.

  15. Equal Problem • Input • FSA’s M1 and M2 • Question • Is L(M1) = L(M2)? • Use answer-preserving input transformations to solve this problem • Try and transform this problem to the empty language problem • If L(M1) = L(M2), then what combination of L(M1) and L(M2) must be empty?

  16. Algorithm Description • Convert input FSA’s M1 and M2 into an FSA M3 such that L(M3) = (L(M1) - L(M2)) union (L(M2) - L(M1)) • We do this by applying the algorithm which we used to show that LFSA is closed under symmetric difference (similar to intersection) • Feed FSA M3 into algorithm which solves the empty language problem • If that algorithm returns yes THEN yes ELSE no

  17. 2FSA -> 1FSA Construction FSA M3 Input Transformation Illustrated FSA M1 FSA M2 Algorithm for solving empty language problem Yes/No Algorithm for Equal problem The 2FSA->1FSA construction algorithm is the ans.-pres. input transformation. If (M1,M2) is a yes input instance of EQ, then M3 is a yes input instance of EL. If (M1,M2) is a no input instance of EQ, then M3 is a no input instance of EL.

  18. Summary • Decision problems with programs as inputs • Basic problems • You need to develop algorithms from scratch based on properties of FSA’s • Solving new problems • You need to figure out how to combine the various algorithms we have seen in this unit to solve the given problem

More Related