300 likes | 461 Views
Introduction to Computational Theory. Chapter 6. Front pad. Rear pad. Front, Rear, Both. Rear, Both, Neither. Front. closed. open. Neither. Automatic Door/FA. Nondeterministic. When the ultimate path through a machine is not determined by input alone the machine is nondeterministic .
E N D
Introductionto Computational Theory Chapter 6 Cohen, Chapter 6
Frontpad Rearpad Front,Rear,Both Rear,Both,Neither Front closed open Neither Automatic Door/FA Cohen, Chapter 6
Nondeterministic When the ultimate path through a machine is not determined by input alone the machine is nondeterministic. Cohen, Chapter 6
Preamble to Chapter 6 • NFAs • Non-deterministic finite automata • Vs. DFAs (deterministic – the book calls FAs) • We allow multiple transitions per letter per state • Including “lambda-transitions” • Move on a whim (w/o consuming input) • Accept if a path exists to a final state • Transition relation: Cohen, Chapter 6
a,b + a,b a a a a - + - a a,b a + a a + - b b a,b Examples Cohen, Chapter 6
Why Non-determinism? • More expressive model • Easier to find machines for a language • E.g., unions of two languages/machines Cohen, Chapter 6
Examples • (ab + aba)* • Language over {a b} where last symbol is repeated Cohen, Chapter 6
NFA – DFA Equivalence • There is an algorithm to convert a NFA to a DFA • Just track all the possibilities • Collapse lambda moves • States are a subset of 2Q • “Rabin-Scott” Algorithm • Example: a+c*b* Cohen, Chapter 6
Lambda Transitions • Handy for combining machines • E.g., union of two languages: create a new start state with lambda moves to the start states of the two machines Cohen, Chapter 6
a,b x2 b a x4 x1 - + b a x3 a,b Examples Cohen, Chapter 6
x2 b b b b x4 x1 - + x3 Examples Cohen, Chapter 6
x2 a,b a,b b b x3 + x1 - Examples Cohen, Chapter 6
x7 x6 x5 x2 x1 - x3 a a,b a,b a a + b b b Examples Cohen, Chapter 6
- + - + baa baa All else a,b All else a,b Transition Graphs Abandon the requirement that the edges eat just one letter at a time. Cohen, Chapter 6
Crashes (Formerly, Hell State or Jail) When an input string that has not been completely read reaches a state (final or otherwise) that it cannot leave because there is no outgoing edge that it may follow, we say that the input (or the machine) crashes at that state. Cohen, Chapter 6
- + a,b aa, bb a,b Rejected Input • Trace a path ending in a non-final state • Crash while being processed baa Cohen, Chapter 6
Acceptance A string is accepted by a TG if there is some way it could be processed as to arrive at a final state. There may also be ways in which this string does not get to a final state, but we ignore all failures. Cohen, Chapter 6
Transition Graph A collection of three things: 1. A finite set of states, at least one of which is designated as the start state (-) and some (maybe none) of which are designated as final states (+) 2. An alphabet of possible input letters from which input strings are formed. 3. A finite set of transitions (edge labels) that show how to go from some states to some others, based on reading specified substrings of input letters (possibly even the null string ) Cohen, Chapter 6
2 3 Free Ride Successful Path A successful path through a transition graph is a series of edges forming a path beginning at some start state (there may be several) and ending at a final state. abbab… abbaa… abb a abbababba 1- 4+ aa b A Lambda transition occurs when you get a free transition that was not initiated by user or system action/interaction. Move on a whim (w/o consuming input).Slide modified by Seals Cohen, Chapter 6
a 1- 3- 2- 1 2 3 b - + aba a b + aba Equivalent Language Acceptors Cohen, Chapter 6
- - + - - abba baa Examples Cohen, Chapter 6
- + + + bb a a,b - + Examples Cohen, Chapter 6
- + - + TG a,b a b b b FA a Examples (a + b)*b Cohen, Chapter 6
+ + - a,b b a a,b b a Examples Cohen, Chapter 6
aa,bb aa,bb ab.ba ab.ba Examples(EVEN-EVEN; cf. p. 69) Cohen, Chapter 6
Example(p. 84) b a,b a b - + bbb a a a ab b bbb bb bb a Cohen, Chapter 6
a a - + a - a + + Examples(p. 85) Cohen, Chapter 6
Example(Problem 17, p. 91) • L = {a abb bbaab bbbaa} • 1) given a FA that accepts L, construct a TG that accepts transpose(L) • Invert start/final states; reverse arrows • 2) given a TG that accepts L, construct a TG that accepts transpose(L) • Same as 1, but reverse transition strings Cohen, Chapter 6
GeneralizedTransition Graph (GTG) A collection of three things: 1. A finite set of states, at least one of which is designated as the start state (-) and some (maybe none) of which are designated as final states (+) 2. An alphabet of possible input letters from which input strings are formed. 3. Directed edges connecting some pairs of states, each labeled with a regular expression. Cohen, Chapter 6
L2 2 L1 L3 L5 1- 3+ L4 a (ab + a)* a + Examples Cohen, Chapter 6