Computational Theory

Introduction
to
Computational Theory
Chapter 6
Cohen, Chapter 6
1
Automatic Door/FA
Front
pad
Rear,
Both,
Neither
Rear
pad
Front,
Rear,
Both
Front
closed
open
Neither
Cohen, Chapter 6
2
Nondeterministic
When the ultimate path through
a machine is not determined by
input alone the machine is
nondeterministic.
Cohen, Chapter 6
3
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
Q
 Transition relation: Q     2
–
Cohen, Chapter 6
4
Examples
+
a,b
a
-
a,b
a
-
a
a
+
a
a
a,b
+
a
a
+
-
b
b
a,b
Cohen, Chapter 6
5
Why Non-determinism?
More expressive model
 Easier to find machines for a language

–
E.g., unions of two languages/machines
Cohen, Chapter 6
6
Examples
(ab + aba)*
 Language over {a b} where last symbol is
repeated

Cohen, Chapter 6
7
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
8
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
9
Examples
a,b
x2
a
b
x4+
x1b
a
x3
a,b
Cohen, Chapter 6
10
Examples
b
x1-
b
x2
b
x3
Cohen, Chapter 6
b
x4+
11
Examples
a,b
x1-
a,b
b
x2
b
x3+
Cohen, Chapter 6
12
Examples
x2
a,b
x1-
a
x3
a,b
a
a
x7+
b
b
x5
b
x6
Cohen, Chapter 6
13
Transition Graphs
Abandon the requirement that the edges eat just one
letter at a time.
All else
baa
+
a,b
baa
All else
a,b
Cohen, Chapter 6
+
14
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
15
Rejected Input
Trace a path ending in a non-final state
 Crash while being processed

a,b
-
aa, bb
+
a,b
baa
Cohen, Chapter 6
16
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
17
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
18
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…
Free Ride
1-
abb
2
aa

3
a
4+
abbaa…
abbababba
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
19
Equivalent Language Acceptors

-

1
2

3
a
b
+
aba
123Cohen, Chapter 6
a
b
+
aba
20
Examples
-

-
baa

+
abba
-
-
Cohen, Chapter 6
21
Examples


-

+
bb
+

a
+
a,b
-

Cohen, Chapter 6
+
22
Examples
a,b
TG
-
b
(a + b)*b
+
a
b
FA
-
b
+
a
Cohen, Chapter 6
23
Examples
a,b
b
a
-
+
a,b
b
a
+
Cohen, Chapter 6
24
Examples
(EVEN-EVEN; cf. p. 69)
aa,bb
ab.ba
aa,bb

ab.ba
Cohen, Chapter 6
25
Example
(p. 84)
b
a,b
a
-
b
+
bbb
a
a
a
ab
b
bb
bb
bbb
a
Cohen, Chapter 6
26
Examples
(p. 85)


a
a
+

-
a
a

Cohen, Chapter 6
++
27
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
28
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
29
Examples
L2
2
L1
L3
L5
1-
3+
L4
a

(ab + a)*
(b  )
a
+
Cohen, Chapter 6
30