Title: Decision problems about regular languages
1Lecture 26
- Decision problems about regular languages
- Basic problems are solvable
- halting, accepting, and emptiness problems
- Solvability of other problems
- many-one reductions to basic problems
2Programs
- In this unit, our programs are the following
three types of objects - FSAs
- NFAs
- regular expressions
- Previously, they were C programs
- Review those topics after mastering todays
examples
3Basic Decision Problems(and algorithms for
solving them)
4Halting 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
5Accepting 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
6Empty Language Problem
- Input
- FSA M
- Question
- Is L(M)?
- How would you solve this problem?
7Algorithms 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 lt
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
8Solving Other Problems(using answer-preserving
input transformations)
9Complement 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
10Algorithm 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
11Input 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.
12NFA 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
13Algorithm 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
14Input 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.
15Equal Problem
- Input
- FSAs 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?
16Algorithm Description
- Convert input FSAs 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
17Input Transformation Illustrated
Algorithm for solving empty language problem
FSA M1 FSA M2
Yes/No
Algorithm for Equal problem
The 2FSA-gt1FSA 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.
18Summary
- Decision problems with programs as inputs
- Basic problems
- You need to develop algorithms from scratch based
on properties of FSAs - 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