The only difference between a NDFSA (non-deterministic finite-state automation) and a DFSA (deterministic finite-state automation) is that a NDFSA can be in several states at once. Therefore, to convert a NDFSA to a DFSA, all that needs to be done is to replace all transitions from a state that puts the FSA into multiple other states with one transition that puts it into a *new* single state (that will represent the multiple states) and will take all transitions off those multiple states.
if we say a.x->b means that from state "a", on input "x", goes to state "b", and have the following NDFSA
a.x->b
a.x->c
b.y->a
c.y->b
c.z->c
..make it a DFSA by:
a.x->b
a.x->c
{ create new state with all ND transitions }
i=(b,c)
i.y->a (from b.y)
i.y->b (from c.y)
i.z->c (from c.z)
{ a.x is now deterministic }
a.x->i
{ continue through each state }
i.y->a
i.y->b
{ make deterministic }
j=(a,b)
j.x->i (from a.x)
j.y->a (from b.y)
{ remove all unreachable states }
a.x->i
i.y->j
i.z->c
j.x->i
j.y->a
c.z->c
Remember that epsilon transitions (transitions a->b (with no x) will cascade), e.g.,
a.x->b
b->c
c->d
{ because "b" reaches "c", and "d" }
i=(b,c,d)
a.x->i
The state machine described in the previous section is a deterministic finite automaton, in which each state is unique. What would make a finite automaton nondeterministic is if each state was not. For the example, if the state machine allowed the input to have any letter as the second letter for the word "person" to transition to the next, then the next state would not be unique, making it a nondeterministic finite automaton.
A deterministic finite automaton will have a single possible output for a given input. The answer is deterministic because you can always tell what the output will be. A nondeterministic finite automaton will have at least one input which will cause a "choice" to be made during a state transition. Unlike a DFA, one input can cause multiple outputs for a given NFA.
NFA - Non-deterministic Finite Automaton, aka NFSM (Non-deterministic Finite State Machine)
A deterministic Finite Automata)DFA will have a single possible output for a given input.The answer is deterministic because you can always feel what the output will be.A (Nondeterministic Finite Automata)NFA will have at least one input which will cause a "choice" to be made during a state transition,unlike a (deterministic Finite Automata)DFA one input can cause multiple outputs for a given (Nondeterministic Finite Automata)NFA.
DFA stands for Deterministic finite automaton and NFA stands for Nondeterministic finite automaton.Formally, an automaton is made up of: were delta is the transition function. In a DFA, delta takes as input a state and letter and returns only one state. In an NFA, delta takes as input a state and letter but returns a set of states.An NFA accepts a word iff there exists a run of the automaton on it (intuitively, the automaton guesses an accepting run). A DFA has only one run on every word and therefore accepts a word iff the single run on it is accepting.
DFA - deterministic finite automata NFA - non-deterministic finite automata
finite automata
finite automaton is the graphical representation of language and regular grammar is the representation of language in expressions
In general, finite state machines can model regular grammars. Deterministic finite automata can represent deterministic context-free grammars. Non-deterministic finite automata can represent context-free grammars.
Finite Automata and Regular Expressions are equivalent. Any language that can be represented with a regular expression can be accepted by some finite automaton, and any language accepted by some finite automaton can be represented by a regular expression.
I would guess that is because it has a finite number of different states. (It is also known as a finite-state machine.)
Deterministic finite state automata