B - supporting lehigh cse

Deterministic Finite Automata
(DFAs)
Reminder: Functions vs Relations
Let P = {p: p is a person}
M = {m: m is a male}
S1 = {(m,p): m is in M, p is in P and m is the father of m}
S2 = {(m,p): m is in M, p is in P and m is an ancestor of m}
1.
2.
3.
4.
True or false: S1  M  P
True or false: S2  M  P
Is either S1 or S2 a relation in M  P?
Is either S1 or S2 a function f:M  P?
Deterministic Automata
(Informal)
Key questions: if a automaton is confronted with a certain
state where a choice must be made,
1. are all the alternatives transitions known?, and
2. given some input data, is it known which transition the
machine will make?
“new state”
“current state”
“transition”
If the answer to both of these
questions is “yes”, the automaton
is said to be deterministic
Nondeterministic Automata
(Informal)
If the answer to any of these questions is “no”, the
automaton is said to be nondeterministic
That is, either
• some transitions are unknown, or
• given some input data, the machine can make more
than one transition
Deterministic Automata
(Informal)
of the computation
We are going to define automata indicating for a state s and
some input data d, which is the state that will be reached
s’
d
s
Transition: ((s,d), s’)
Let Q be the set of all states and  be the set of all input data.
Then, the set of transitions is a subset of (Q  )  Q
Determinism, Nondeterminism,
Relations and Functions
The set of transitions defining an automaton is a subset of
(Q  )  Q
If the automaton is deterministic, should the set of transitions be
a relation or a function?
• Deterministic automata: Since for each pair (s,d) there
should be one and only one s’, the set of transitions must be
a function
• Nondeterministic automata: Since for each pair (s,d)
there might not be any s’ or there might be more than one
s’, the set of transitions must be a relation
Finite Automata
•Problem 1: Design a computer program that given a sequence
of numbers a1, a2, …, an returns their sum a1 + a2 +… + an
•Problem 2: Design a computer program that given a sequence
of numbers a1, a2, …, an returns the list in the inverted order:
an, …, a2, a1
•How many memory units are needed for a program to execute:
 problem 1:
1
Problem 2:
n
Finite automata use a constant amount of memory
Deterministic Finite Automaton (DFA)
A deterministic finite automaton (DFA) is a 5-tuple (Q,,,s,F)
where:
•Q is a finite set of elements called states
• is a finite input alphabet
• is a transition function, (Q × ) × Q (or : (Q × )  Q)
•s  Q called the initial state
•F  Q called the favorable states
Constant!
a1 a2 …
no! (or yes!)
The fact that  is a function
makes the automaton
deterministic
Finite State Diagram
•A finite state diagram is a graphic representation for a DFA
•A finite state diagram is a directed graph, where nodes
represent elements in Q (i.e., states) and arrows are characters in
 such that:
q
a
q’
Indicates:
((q,a),q’) is a transition in 
The initial state is marked with:
>
The favorable states are marked with:
Example # 1
a
b
> s
b
q
a
r
Trap/
Dead State
a
b
Formally, this automaton (Q,,,s,F) is defined as:
: 6 transitions:
Q = {s,q,r}
Is this automaton
• ((s,b), a)
deterministic?
• ((s,a), q)
 = {a,b}
• ((q,a), r)
s: initial state
• ((q,b), s)
F = {r}
• ((r,a), r)
• ((r,b), r)
Real-Life Example: Finite Automaton
Controlling a computer-Generated
character
• States
Attack
–
–
–
–
~E
E
D
E
S
Wander
E
~S
inspect
D
• Events
– E: see an enemy
– S: hear a sound
– D: die
~E
D
Spawn
Attack
Chase
Spawn
Wander
S
Thief movie
Preliminary Definitions
•Given a set B, B* denote the set of all strings made of
elements in B. Strings in B* are also called words.
•For example, if  = {a,b}, then
* = {a, b, aa, ab, bb, …, baaaba, …}
•Given an DFA A = (Q,,,s,F) , A configuration is any
element in Q × *
•In the example in the previous slide possible configurations
include (s,abbba), (s, aaa), (q,bab) and (r, bbbb)
•The symbol e denotes the empty string
Configuration Yields Configuration
•Given an DFA A= (Q,,,s,F), the configuration (q,w)
yields the configuration (q’,w’) in one step, if w = w’ with
   and q’ = (q, )
q

q’
•(q,w) yields (q’,w’) if there is a sequence of configurations:
(q1,w1), (q2,w2), …, (qk,wk)
such that (qi,wi) yields (qi+1,wi+1) in one step
Example
a
b
> s
b
q
a
r
Trap/
Dead State
a
b
1. What is the configuration yield after 3 yield-steps for
(s,aab)?
2. What is the configuration yield after 4 yield-steps for
(s,baab)?
String Accepted by Automaton
•Given an automaton A = (Q,,,s,F), and a string w  *,
we say that w is accepted by A if the configuration (s,w)
yields the configuration (f,e), where f is a favorable state, and
e is the empty string
•In Example # 1, the automaton accepts aaabbbb but not b
•Given an automaton A, the language accepted by A,
written L(A), is defined by:
L(A) = {w  * : w is accepted by A}
“such that”
•The language accepted in Example # 1 is all the words that
contains two consecutive a’s
Example
a
b
> s
b
q
a
r
Trap/
Dead State
a
b
•
What is the language accepted by this finite automaton?
Example # 2
a
b
> s
b
q
a
r
a
b
What is the language accepted by this automaton?