Title: Module 15
1Module 15
- FSAs
- Defining FSAs
- Computing with FSAs
- Defining L(M)
- Defining language class LFSA
- Comparing LFSA to set of solvable languages (REC)
2Finite State Automata
3Tape
- We assume that you have already seen FSAs in CSE
260 - If not, review material in reference textbook
- Only data structure is a tape
- Input appears on tape followed by a B character
marking the end of the input - Tape is scanned by a tape head that starts at
leftmost cell and always scans to the right
4Data type/States
- The only data type for an FSA is char
- The instructions in an FSA are referred to as
states - Each instruction can be thought of as a switch
statement with several cases based on the char
being scanned by the tape head
5Example program
- 1 switch(current tape cell)
- case a goto 2
- case b goto 2
- case B return yes
-
- 2 switch (current tape cell)
- case a goto 1
- case b goto 1
- case B return no
6New model of computation
- FSA M(Q,S,q0,A,d)
- Q set of states 1,2
- S character set a,b
- dont need B as we see below
- q0 initial state 1
- A set of accepting (final) states 1
- A is the set of states where we return yes on B
- Q-A is set of states that return no on B
- d state transition function
- 1 switch(current tape cell)
- case a goto 2
- case b goto 2
- case B return yes
-
- 2 switch (current tape cell)
- case a goto 1
- case b goto 1
- case B return no
7Textual representations of d
d(1,a) 2, d(1,b)2, d(2,a)1, d(2,b) 1
- 1 switch(current tape cell)
- case a goto 2
- case b goto 2
- case B return yes
-
- 2 switch (current tape cell)
- case a goto 1
- case b goto 1
- case B return no
(1,a,2), (1,b,2), (2,a,1), (2,b,1)
8Transition diagrams
- 1 switch(current tape cell)
- case a goto 2
- case b goto 2
- case B return yes
-
- 2 switch (current tape cell)
- case a goto 1
- case b goto 1
- case B return no
Note, this transition diagram represents all 5
components of an FSA, not just the transition
function d
9Exercise
- FSA M (Q, S, q0, A, d)
- Q 1, 2, 3
- S a, b
- q0 1
- A 2,3
- d d(1,a) 1, d(1,b) 2, d(2,a) 2, d(2,b)
3, d(3,a) 3, d(3,b) 1 - Draw this FSA as a transition diagram
10Transition Diagram
11Computing with FSAs
12Computation Example
Input aabbaa
13Computation of FSAs in detail
- A computation of an FSA M on an input x is a
complete sequence of configurations - We need to define
- Initial configuration of the computation
- How to determine the next configuration given the
current configuration - Halting or final configurations of the computation
14Initial Configuration
- Given an FSA M and an input string x, what is the
initial configuration of the computation of M on
x? - (q0,x)
- Examples
- x aabbaa
- (1, aabbaa)
- x abab
- (1, abab)
- x l
- (1, l)
FSA M
15Definition of M
- (1, aabbaa) M (1, abbaa)
- config 1 yields config 2 in one step using FSA
M - (1,aabbaa) M (2, baa)
- config 1 yields config 2 in 3 steps using FSA M
- (1, aabbaa) M (2, baa)
- config 1 yields config 2 in 0 or more steps
using FSA M - Comment
- M determined by transition function d
- There must always be one and only one next
configuration - If not, M is not an FSA
3
FSA M
16Halting Configurations
- Halting configuration
- (q, l)
- Examples
- (1, l)
- (3, l)
- Accepting Configuration
- State in halting configuration is in A
- Rejecting Configuration
- State in halting configuration is not in A
FSA M
17FSA M on x
- Two possibilities for M running on x
- M accepts x
- M accepts x iff the computation of M on x ends up
in an accepting configuration - (q0, x) M (q, l) where q is in A
- M rejects x
- M rejects x iff the computation of M on x ends up
in a rejecting configuration - (q0, x) M (q, l) where q is not in A
- M does not loop or crash on x
- Why?
18Examples
- For the following input strings, does M accept or
reject? - l
- aa
- aabba
- aab
- babbb
19Definition of d(q, x)
- Notation from the book
- d(q, c) p
- dk(q, x) p
- k is the length of x
- d(q, x) p
- Examples
- d(1, a) 1
- d(1, b) 2
- d4(1, abbb) 1
- d(1, abbb) 1
- d(2, baaaaa) 3
FSA M
20L(M) and LFSA
- L(M) or Y(M)
- The set of strings M accepts
- Basically the same as Y(P) from previous unit
- We say that M accepts/decides/recognizes/solves
L(M) - Remember an FSA will not loop or crash
- What is L(M) (or Y(M)) for the FSA M above?
- N(M)
- Rarely used, but it is the set of strings M
rejects - LFSA
- L is in LFSA iff there exists an FSA M such that
L(M) L.
21LFSA Unit Overview
- Study limits of LFSA
- Understand what languages are in LFSA
- Develop techniques for showing L is in LFSA
- Understand what languages are not in LFSA
- Develop techniques for showing L is not in LFSA
- Prove Closure Properties of LFSA
- Identify relationship of LFSA to other language
classes
22Comparing language classes
- Showing LFSA is a subset of REC, the set of
solvable languages
23LFSA subset REC
- Proof
- Let L be an arbitrary language in LFSA
- Let M be an FSA such that L(M) L
- M exists by definition of L in LFSA
- Construct C program P from FSA M
- Argue P solves L
- There exists a C program P which solves L
- L is solvable
24Visualization
- Let L be an arbitrary language in LFSA
- Let M be an FSA such that L(M) L
- M exists by definition of L in LFSA
- Construct C program P from FSA M
- Argue P solves L
- There exists a program P which solves L
- L is solvable
LFSA
REC
25Construction
FSA M
Program P
Construction Algorithm
- The construction is an algorithm which solves a
problem with a program as input - Input to A FSA M
- Output of A C program P such that P solves
L(M) - How do we do this?
26Comparing computational models
- The previous slides show one method for comparing
the relative power of two different computational
models - Computational model CM1 is at least as general or
powerful as computational model CM2 if - Any program P2 from computational model CM2 can
be converted into an equivalent program P1 in
computational model CM1. - Question How can we show two computational
models are equivalent?