Presentation is loading. Please wait.

Presentation is loading. Please wait.

Deterministic Finite Automata (DFAs). Reminder: Functions vs Relations Let P = {p: p is a person} M = {m: m is a male} S 1 = {(m,p): m is in M, p is in.

Similar presentations


Presentation on theme: "Deterministic Finite Automata (DFAs). Reminder: Functions vs Relations Let P = {p: p is a person} M = {m: m is a male} S 1 = {(m,p): m is in M, p is in."— Presentation transcript:

1 Deterministic Finite Automata (DFAs)

2 Reminder: Functions vs Relations Let P = {p: p is a person} M = {m: m is a male} S 1 = {(m,p): m is in M, p is in P and m is the father of m} S 2 = {(m,p): m is in M, p is in P and m is an ancestor of m} 1.True or false: S 1  M  P 2.True or false: S 2  M  P 3.Is either S 1 or S 2 a relation in M  P? 4.Is either S 1 or S 2 a function f:M  P?

3 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? If the answer to both of these questions is “yes”, the automaton is said to be deterministic “current state” “transition” “new state”

4 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

5 Deterministic Automata (Informal) We are going to define automata indicating for a state s and some input data d, which is the state that will be reached Transition: ((s,d), s’) 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 of the computation

6 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

7 Finite Automata Problem 1: Design a computer program that given a sequence of numbers a 1, a 2, …, a n returns their sum a 1 + a 2 +… + a n Problem 2: Design a computer program that given a sequence of numbers a 1, a 2, …, a n returns the list in the inverted order: a n, …, a 2, a 1 How many memory units are needed for a program to execute:  problem 1:  Problem 2: Finite automata use a constant amount of memory 1n1n

8 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 … a1a1 a2a2 Constant! The fact that  is a function makes the automaton deterministic no! (or yes!)

9 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 q’ a Indicates: ((q,a),q’) is a transition in  The initial state is marked with: > The favorable states are marked with:

10 Example # 1 sq b a b a r a b Trap/ Dead State q b a a r >  = {a,b} Q = {s,q,r}  : 6 transitions: ((s,b), a) ((s,a), q) ((q,a), r) ((q,b), s) ((r,a), r) ((r,b), r) s: initial state F = {r} Formally, this automaton (Q, , ,s,F) is defined as: Is this automaton deterministic?

11 Real-Life Example: Finite Automaton Controlling a computer-Generated character States –Attack –Chase –Spawn –Wander Events –E: see an enemy –S: hear a sound –D: die Spawn Wander ~E D Attack ~E E E D ~S inspect E S S D Thief movie

12 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

13 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: (q 1,w 1 ), (q 2,w 2 ), …, (q k,w k ) such that (q i,w i ) yields (q i+1,w i+1 ) in one step

14 Example 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)? sq b a b a r a b Trap/ Dead State q b a a r >

15 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

16 Example What is the language accepted by this finite automaton? sq b a b a r a b Trap/ Dead State q b a a r >

17 Example # 2 What is the language accepted by this automaton? sq b a b a r a b q b a a r >


Download ppt "Deterministic Finite Automata (DFAs). Reminder: Functions vs Relations Let P = {p: p is a person} M = {m: m is a male} S 1 = {(m,p): m is in M, p is in."

Similar presentations


Ads by Google