Decision problems about regular languages - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Decision problems about regular languages

Description:

1. Lecture 23. Decision problems about regular languages. Programs can be inputs ... Apply Euclid's algorithm for finding the greatest common divisor to m and n ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 25
Provided by: erict9
Learn more at: http://www.cse.msu.edu
Category:

less

Transcript and Presenter's Notes

Title: Decision problems about regular languages


1
Lecture 23
  • Decision problems about regular languages
  • Programs can be inputs to other programs
  • FSAs, NFAs, regular expressions
  • Basic problems are solvable
  • halting, accepting, and emptiness problems
  • Solvability of other problems
  • many-one reductions to basic problems

2
Problems with programs as inputs
3
Decision problems with numbers as inputs
  • Examples
  • Primality
  • Input integer n
  • Yes/No question Is n prime?
  • Zero
  • Input integer n
  • Yes/No question Is n 0?
  • Equal
  • Input integers m, n
  • Yes/No question Is mn?

4
Decision problems with programs as inputs
  • Examples
  • Lines of code
  • Input program P, integer n
  • Yes/No question Does P have less than n lines of
    code?
  • Empty language
  • Input program P
  • Yes/No question Is L(P) ?
  • Equal
  • Input programs P, Q
  • Yes/No question Is L(P) L(Q)?

5
Language representation
  • Empty language problem
  • Input program P
  • Yes/No question Is L(P) ?
  • How might we represent input program P?
  • As a string P over ASCII alphabet
  • What is the language that corresponds to empty
    language decision problem?
  • The set of strings representing programs which
    are yes instances to the empty language problem

6
Programs
  • 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

7
Basic Decision Problems(and algorithms for
solving them)
8
Divisibility Problem
  • Input
  • integers m,n
  • Question
  • Is m a divisor of n?
  • Algorithm DIV for solving divisibility problem
  • Apply Euclids algorithm for finding the greatest
    common divisor to m and n
  • If greatest common divisor is m THEN yes ELSE no

9
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

10
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

11
Primality Problem
  • Input
  • integer n
  • Question
  • Is n a prime number?
  • Algorithm for solving primality problem
  • for i 2 to n-1 Do
  • apply algorithm DIV to inputs i,n
  • If answer for any i is yes THEN no ELSE yes

12
Empty Language Problem
  • Input
  • FSA M
  • Question
  • Is L(M)?
  • How would you solve this problem?

13
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 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

14
Solving Other Problems(using many-one reductions)
15
Complement Empty Problem
  • Input
  • FSA M
  • Question
  • Is (L(M))c?
  • Use many-one reductions to solve this problem
  • We will show that the Complement Empty problem
    many-one reduces to the Empty Language problem
  • How do we do this?
  • Apply the construction which showed that LFSA is
    closed under set complement

16
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

17
Reduction Illustrated
Algorithm for solving empty language problem
FSA M
Yes/No
Algorithm for complement empty problem
The complement construction algorithm is the
many-one reduction function. 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.
18
NFA Empty Problem
  • Input
  • NFA M
  • Question
  • Is L(M)?
  • Use many-one reductions to solve this problem
  • We will show that the NFA Empty problem many-one
    reduces 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

19
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

20
Reduction Illustrated
Algorithm for solving empty language problem
NFA M
Yes/No
Algorithm for NFA empty problem
The subset construction algorithm is the many-one
reduction function. 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.
21
Equal Problem
  • Input
  • FSAs M1 and M2
  • Question
  • Is L(M1) L(M2)?
  • Use many-one reductions to solve this problem
  • Try and reduce this problem to the empty language
    problem
  • If L(M1) L(M2), then what combination of L(M1)
    and L(M2) must be empty?

22
Algorithm 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

23
Reduction Illustrated
Algorithm for solving empty language problem
FSA M1 FSA M2
Yes/No
Algorithm for Equal problem
The 2FSA-gt1FSA construction algorithm is the
many-one reduction function. 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.
24
Summary
  • 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
Write a Comment
User Comments (0)
About PowerShow.com