Top Banner
1 Module 15 • FSA’s – Defining FSA’s – Computing with FSA’s • Defining L(M) – Defining language class LFSA – Comparing LFSA to set of solvable languages (REC)
26

1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

1

Module 15

• FSA’s– Defining FSA’s– Computing with FSA’s

• Defining L(M)

– Defining language class LFSA– Comparing LFSA to set of solvable languages

(REC)

Page 2: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

2

Finite State Automata

New Computational Model

Page 3: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

3

Tape

• We assume that you have already seen FSA’s 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

Page 4: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

4

Data 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

Page 5: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

5

Example program

1 switch(current tape cell) {case a: goto 2case b: goto 2case B: return yes

}2 switch (current tape cell) {

case a: goto 1case b: goto 1case B: return no;

}

Page 6: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

6

New model of computation

• FSA M=(Q,,q0,A,)– Q = set of states = {1,2}

– = character set = {a,b}• don’t 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

– = 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;

}

Page 7: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

7

Textual representations of *

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

2

a b

1 1

2 2

(1,a) = 2, (1,b)=2, (2,a)=1, (2,b) = 1

{(1,a,2), (1,b,2), (2,a,1), (2,b,1)}

Page 8: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

8

Transition diagrams

1 2

a,b

a,b1 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 diagramrepresents all 5 components of an FSA, not just the transition function

Page 9: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

9

Exercise *

• FSA M = (Q, , q0, A, )

– Q = {1, 2, 3}– = {a, b}

– q0 = 1

– A = {2,3}– : {(1,a) = 1, (1,b) = 2, (2,a)= 2, (2,b) = 3,

(3,a) = 3, (3,b) = 1}

• Draw this FSA as a transition diagram

Page 10: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

10

Transition Diagram

1

2

3

a

a

a

b

b

b

Page 11: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

11

Computing with FSA’s

Page 12: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

12

Computation Example *

1

2

3

a

a

a

b

b

b

Input: aabbaa

Page 13: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

13

Computation of FSA’s 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

Page 14: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

14

• 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 = • (1, )

Initial Configuration

1

2

3

a

a

a

b

b

b

FSA M

Page 15: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

15

• (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

– There must always be one and only one next configuration

• If not, M is not an FSA

Definition of |-M

1

2

3

a

a

a

b

b

b

3

FSA M

*

Page 16: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

16

• Halting configuration– (q, )

– Examples• (1, )

• (3, )

• Accepting Configuration– State in halting configuration

is in A

• Rejecting Configuration– State in halting configuration

is not in A

Halting Configurations *

1

2

3

a

a

a

b

b

b

FSA M

Page 17: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

17

• 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, ) 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, ) where q is not in A

– M does not loop or crash on x

FSA M on x *b

bb

aa

a

FSA M

*

*

Page 18: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

18

– For the following input strings, does M accept or reject?• • aa• aabba• aab• babbb

Examples *b

bb

aa

a

FSA M

Page 19: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

19

• Notation from the book

• (q, c) = p

• k(q, x) = p– k is the length of x

• *(q, x) = p

• Examples– (1, a) = 1

– (1, b) = 2

– 4(1, abbb) = 1

– *(1, abbb) = 1

– (2, baaaaa) = 3

Definition of *(q, x)

1

2

3

a

a

a

b

b

b

FSA M

Page 20: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

20

• 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.

L(M) and LFSA *

bb

b

aa

a

FSA M

Page 21: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

21

LFSA 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

Page 22: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

22

Comparing language classes

Showing LFSA is a subset of REC, the set of solvable languages

Page 23: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

23

LFSA 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

Page 24: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

24

Visualization

LFSAREC

FSA’s C++ Programs

L L

M P

•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

Page 25: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

25

Construction *

• 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?

Construction Algorithm

FSA M

Program P

Page 26: 1 Module 15 FSA’s –Defining FSA’s –Computing with FSA’s Defining L(M) –Defining language class LFSA –Comparing LFSA to set of solvable languages (REC)

26

Comparing 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?