180 likes | 411 Views
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
E N D
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 • FSA’s • NFA’s • regular expressions • Previously, they were C++ programs • Review those topics after mastering today’s examples
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
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
Empty Language Problem • Input • FSA M • Question • Is L(M)={}? • How would you solve this problem?
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
Solving Other Problems(using answer-preserving input transformations)
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
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
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.
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
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
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.
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?
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
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.
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