Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
0 of .
Results for:
P. 1
Chapter 08. Manipulating Finite State Automata

# Chapter 08. Manipulating Finite State Automata

Ratings: (0)|Views: 68|Likes:

### Availability:

See more
See less

09/28/2010

pdf

text

original

1
Models of Language Recognition:Automata

2

In the preceding chapter, when we proved the characterizations among the class of regular languages, FA and regular expressions, we used NFA. If we convert a regular grammar or a regular expression to an FA, the automaton usually turnsout to be an NFA. NFA is a conceptual model that cannot be implemented with any currently available technology.However, since every NFA can be converted to a DFA, NFA’s are used as convenient tools for solving problemsconcerning regular languages or designing DFA’s, which are directly realizable. Figures (a) and (b) below show,respectively, an NFA and a DFA which recognize the same language { xa | x
{a, b}
+
}. In this chapter, we will learnhow to convert an NFA to a DFA accepting the same language.
8. Manipulating FA
a, ba(a) NFA ba ba(b) DFA
When we designed automata, we did not pay much attention on the size of the automata. However, when designing anautomaton as a model for implementation, we must take account of the size because it may directly affect the size or thecomplexity of the implemented hardware or software.

3
Figures (a) and (b), respectively, show pairs of DFA and DPDA (of different size), respectively, accepting the languages a*and {a
i
b
i
| i > 0}. Given an arbitrary deterministic automaton (not to mention a nondeterministic one), it is very difficult problemto reduce the number of states of the automaton. No practical algorithms are available except for DFA. For TM and LBA the problem is unsolvable, and it remains as an open problem for PDA’s. We will shortly learn how to minimize a DFA.
(a)
Equivalent DFA
(b)
Equivalent DPDA
Manipulating FA
aaastartastartL = a
*
(a, Z
0
/aZ
0
),(a, a/aa)(b, a/
ε
)(b, a/
ε
)(
ε
, Z
0
/Z
0
)start(a, Z
0
/aZ
0
)(a, a/aa)(b, a/
ε
)(b, a/
ε
)(
ε
, Z
0
/Z
0
)startL = {a
i
b
i
| i > 0}