# 1.2 nondeterminism

- Determinism(DFA) is a subset of nondeterminism(NFA).
- For each letter in DFA, it could only be on only one arrow.
- NFA may have on the arrow，means one or many arrows may exit from this state(zero).
- If a string in a branch is accepted, then NFA accepts the input string.

## Formal Def of NFA

A nondeterministic finite automation is a 5-tuple(), where:

- is a Finite set of states
- is a finite alphabet
- is the transition function
- is the start state
- is the set of accept states

Formal Def of **computation** for an NFA:

Let N=() be an NFA and a string over the alphabet . Then we say that N asscepts if we can write as , where each is a member of and a sequence of states exists in with the following three conditions:

## Equivalence of NFAs & DFAs

Two machines are equivalent if they recognize the same language.

Every nondeterministic finite automation has an equivalent deterministic finite automation.

### Convert NFA to DFA

From start state.

For each state and each alphabet *a*, create a new state(the combination of all possible state using this character), and make *a* transition from this state to the new state.

For the combination state, if any of the state inside of it has the certain transition, then it counts for the transition.

### Convert to DFA

First find the closure of start state.

For each state, find the next state using the same method as NFA to DFA. But this state should be the combination of all states' closure.