cohen, chapter 61 introduction to computational theory chapter 6
Post on 20-Dec-2015
234 views
TRANSCRIPT
Cohen, Chapter 6 1
Introductionto
Computational Theory
Chapter 6
Cohen, Chapter 6 2
Automatic Door/FA
Frontpad
Rearpad
closed open
Front
Neither
Front,Rear,Both
Rear,Both,Neither
Cohen, Chapter 6 3
Nondeterministic
When the ultimate path through a machine is not determined by input alone the machine is nondeterministic.
Cohen, Chapter 6 4
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: 2QQ
Cohen, Chapter 6 5
a
-
+
+
a
a
a
- +a a
a,ba,b
a
- +b
a
b
a,b
a,b
Examples
Cohen, Chapter 6 6
Why Non-determinism?
More expressive model Easier to find machines for a language
– E.g., unions of two languages/machines
Cohen, Chapter 6 7
Examples
(ab + aba)* Language over {a b} where last symbol is
repeated
Cohen, Chapter 6 8
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 9
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 10
Examples
a
- +b
b
a
x1
x2
x4
x3
a,b
a,b
Cohen, Chapter 6 11
Examples
b b-x1 x2 +x4x3b
b
Cohen, Chapter 6 12
Examples
b b-x1 x2 +x3
a,b a,b
Cohen, Chapter 6 13
Examples
b
b
-x1
x2 x3
a,b a,b
x5 x6
x7+b
a
aa
Cohen, Chapter 6 14
Transition Graphs
Abandon the requirement that the edges eat just one letter at a time.
- +baa
a,bAll else
a,b
- +baa
All else
Cohen, Chapter 6 15
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 16
Rejected Input
Trace a path ending in a non-final state Crash while being processed
- +
a,b
a,baa, bb
baa
Cohen, Chapter 6 17
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 18
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 19
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.
1- 2 3 4+abb a
aa
b
Free Rideabbab…
abbaa…
abbababba
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 20
Equivalent Language Acceptors
+- 2
3aba
a
b
1
2-
3-
+
aba
a
b
1-
Cohen, Chapter 6 21
Examples
-
-
+
-
-baaabba
Cohen, Chapter 6 22
Examples
- +
+ +a
bb
- +
a,b
Cohen, Chapter 6 23
Examples
(a + b)*b- +
a,b
bTG
- +
ab b
a
FA
Cohen, Chapter 6 24
Examples
+
a,b
b
+
a,b
a
-
b
a
Cohen, Chapter 6 25
Examples(EVEN-EVEN; cf. p. 69)
aa,bbab.ba aa,bb
ab.ba
Cohen, Chapter 6 26
Example(p. 84)
a,b
ab
bbbb
bbbb
bbb
a
a a a
a
b
b
- +
Cohen, Chapter 6 27
Examples(p. 85)
aa
+
-
aa
+
-+
Cohen, Chapter 6 28
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 29
Generalized Transition 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 30
Examples
3+1-
2
L1
L2
L3
L4
L5
+
)b( (ab + a)* a
a