# Lecture 6 Nondeterministic Finite Automata (NFA)

## Presentation on theme: "Lecture 6 Nondeterministic Finite Automata (NFA)"— Presentation transcript:

Lecture 6 Nondeterministic Finite Automata (NFA)

p h b e t a l a The tape is divided into finitely many cells. Each cell contains a symbol in an alphabet Σ.

a The head scans at a cell on the tape and can read a symbol on the cell. In each move, the head move to the right cell or stop there (in a ε-move).

δ : Q x (Σ U {ε}) → 2 (the family of all subsets of Q)
The finite control has finitely many states which form a set Q. For each move, the state is changed according to the evaluation of a transition function δ : Q x (Σ U {ε}) → 2 (the family of all subsets of Q) Q Q

a a q p p=p1 or p2 δ(q, a) = {p1, p2} for a in Σ means that if the head reads symbol a and the finite control is in the state q, then the next state should be p1 or p2, and the head moves one cell to the right.

a a q p p=p1 or p2 δ(q, ε) = {p1, p2} means that if the finite control is in the state q, then the next state can be be p1 or p2, and the head does not move. This move is called a ε-move.

δ(q, a) = Φ means that the NFA is stuck.
? q δ(q, a) = Φ means that the NFA is stuck.

s There are some special states: an initial state s and a final set F of final states. Initially, the NTM is in the initial state s and the head scans the leftmost cell. The tape holds an input string.

Otherwise, the input string is rejected.
x h When the head gets off the tape, the NFA stops. An input string x is accepted by the NFA if there is a computation path to make the NFA stop at a final state. Otherwise, the input string is rejected.

The NTM can be represented by
M = (Q, Σ, δ, s, F) where Σ is the alphabet of input symbols. The set of all strings accepted by a NFA M is denoted by L(M). We also say that the language L(M) is accepted by M.

The transition diagram of a NFA is an alternative way to represent the DFA.
For M = (Q, Σ, δ, s, F), the transition diagram of M is a symbol-labeled digraph G=(V, E) satisfying the following: V = Q (s = , f = for f \in F) E = { q p | p \in δ(q, a)}. a

δ ε s p, s s p q s q q q 0,1 s p q 1 ε

Theorem 1 Every regular language can be accepted by an NFA.

G(r) For each regular expression r, we can construct a digraph G(r) with edges labeled by symbols and ε as follows. If r=Φ, then If r≠Φ, then

Φ* ε ε

(01+111)* (01)*(111)* 10(0+1)*00 10(0+1)*+(0+1)*00 ((01)*(10)*0*)*

10(0+1)*+(0+1)*00 10(0+1)* (0+1)*00 1 (0+1)* (0+1)* 0,1 1 ε ε ε ε 0,1

(0+1)*0(0+1) 5 0,1 1 1 1 1 1

Given an NFA M, construct an NFA accepting L(M) .
ε 1 1 ε ε 1 ε 1

Given an NFA M, construct an NFA accepting L(M) .
Is it correct? Answer: No! 1 1 What is the correct way? First, turn NFA to DFA and then do.