150 likes | 367 Views
Nondeterministic Finite Automata (NFAs). Reminder: Deterministic Finite Automata (DFA). b. b. b. s. p. q. r. >. a. a. a. a. b. t. a. b. For every state q in Q and every character in , one and only one transition of the following form occurs:. . q. q’.
E N D
Reminder: Deterministic Finite Automata (DFA) b b b s p q r > a a a a b t a b For every state q in Q and every character in , one and only one transition of the following form occurs: q q’
Expressiveness of DFA • DFA are a type of programs • Contains concepts of imperative languages: sequences, branching and loops. • Can implement a newspaper vendor machine or even control a character in a video game • Can implement pattern matching: find all text containing “Britney Spears” (or “Justin Timberlake”) • Can only implement programs that require a constant amount of memory
Another Example a b A b b a a r r s q q > a a What is the language recognized by A? b a a B a b r r s q q > b What is the language recognized by B? b
Nondeterministic Finite Automata a b a a r r q q b a s > b a b b r’ r q q’ a a b • Why is this automaton nondeterministic? • What is the language accepted by this automaton?
Nondeterministic Finite Automata (NFA) occurs • No transition: q q’ occurs • One or more transitions: q q’ p … For every state q in S and every character in , one of the following will happen:
Nondeterministic Finite Automaton (NFA) “the empty word” “power set” • A nondeterministic finite automaton (NFA) is a 5-tuple (Q,,,s,F) where: • Q is a finite set of elements called states • is a finite input alphabet • s Q called the start state • F Q called the favorable states • Q × ( {e}) × Q The crucial point is that is a relation • Book says: (Q,, ,s,F) where: • is a transition function, Q × ( {e}) × (Q) Are and representing the same transitions?
Nondeterministic Finite Automata (NFA) e q q’ What else can occur in NFAs? If next word to process in q is aaabbb and apply this transition, what is the word to be processed in q’? aaabbb “e-transitions” do not process any characters, they just allow to “jump” between states
Formal Definition of Computation for NFAs • Given a nodeterministic finite automaton N= (Q,,,s,F), and let • w = w1w2 …wn, where each wi is in • M accepts w if we can write w as: • w = y1y2 …ym , where each yi is in ( {e}) • and there is a sequence of states • r0r1, r2 … rm in Q such that: • r0 is the start state of M • ri+1 (ri , wi+1) for i = 0, …, m-1 • rm F • Language recognized by N: {w in * : N accepts w}
Same Example a b a a r r q q b a s > b a b b r’ r q q’ a a b Language accepted by this automaton is the set of all strings containing either the substring “aa” or the substring “bb”
Example a r r s q q > b b b • Why is this automation nondeterministic? • What is the language accepted by this automaton?
Why We Study Nondeterministic Computation? • Makes it easier to prove properties about Automata • In particular, makes it easier to prove certain properties: • If A is a regular language then AR is also regular • It also makes it possible to understand the boundaries of computation • P = NP?
Oracle in NFAs • The oracle explanation of NFAs: given a choice between possible transitions, there is a device, called the oracle, that always chooses the transition that leads to a favorable state ... … ... Oracle chooses this transition because it leads to a favorable state “current state” ... • Is the oracle explanation compatible with our definition of acceptability in NFAs? • Sometimes it is useful to use the oracle when creating NFAs
NFA vs DFA a r r s q q > b b b • Every DFA can be seen as an NFA • But not every NFA can be seen as a DFA • Are DFA’s more expressive? What does this means? • For example, is there an DFA that accepts the same language accepted by the following NFA? It means that there an NFA can be constructed that accepts a language L for which no DFA can be constructed that accepts L
NFA vs DFA (2) • How about this one? a b a a r r q q b a s > b a b b r r’ q q’ a a b • It turns out that for every NFA, a DFA can be constructed such they both accept the same language. • We will study a formal proof of this on Wednesday