SlideServe
Menu
Préférences
© SlideServe · v2026

Module 15

rhian avatar
26 diapositives · 468 Views · Oct 07, 2014

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). Finite State Automata. New Computational Model. Tape. We assume that you have already seen FSA’s in CSE 260

Module 15 - slide 1
01 / 26Module 15
1 / 17

Télécharger la présentation

Module 15
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  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

  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

  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

  5. Example 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; }

  6. FSA M=(Q,S,q0,A,d) Q = set of states = {1,2} S = 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 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; } New model of computation

  7. 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; } a b 1 2 2 2 1 1 Textual representations of d * d(1,a) = 2, d(1,b)=2, d(2,a)=1, d(2,b) = 1 {(1,a,2), (1,b,2), (2,a,1), (2,b,1)}

  8. 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; } a,b 2 1 a,b Transition diagrams Note, this transition diagram represents all 5 components of an FSA, not just the transition function d

  9. Exercise * • 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

  10. a a b 2 1 b b 3 a Transition Diagram

  11. Computing with FSA’s

  12. a a b 2 1 b b 3 a Computation Example * Input: aabbaa

  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

  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 = l (1, l) a a b 2 1 b b 3 a Initial Configuration FSA M

  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 functiond There must always be one and only one next configuration If not, M is not an FSA a a b 2 1 b b 3 a Definition of |-M 3 * FSA M

  16. 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 a a b 2 1 b b 3 a Halting Configurations * FSA M

  17. a a b FSA M b b a FSA 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 * *

  18. a a b FSA M b b a Examples • For the following input strings, does M accept or reject? • l • aa • aabba • aab • babbb

  19. 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 a a b 2 1 b b 3 a Definition of d*(q, x) FSA M

  20. a a b FSA M b b a L(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.

  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

  22. Comparing language classes Showing LFSA is a subset of REC, the set of solvable languages

  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

  24. L L C++ Programs M P FSA’s Visualization • 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

  25. Construction 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?

  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?