18.04.2013 Views

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Finite State Machine Minimization<br />

Next: Longest Common Substring Up: Set and String Problems Previous: Cryptography<br />

Finite State Machine Minimization<br />

Input description: A deterministic finite automaton M.<br />

Problem description: <strong>The</strong> smallest deterministic finite automaton M' such that M' behaves identically to<br />

M.<br />

Discussion: Problems associated with constructing and minimizing finite state machines arise repeatedly<br />

in software and hardware design applications. Finite state machines are best thought of as pattern<br />

recognizers, and minimum-size machines correspond to recognizers that require less time and space.<br />

Complicated control systems and compilers are often built using finite state machines to encode the<br />

current state and associated actions, as well as the set of possible transitions to other states. Minimizing<br />

the size of this machine minimizes its cost.<br />

Finite state machines are best thought of as edge-labeled directed graphs, where each vertex represents<br />

one of n states and each edge a transition from one state to the other on receipt of the alphabet symbol<br />

that labels the edge. <strong>The</strong> automaton above analyzes a given sequence of coin tosses, with the dark states<br />

signifying that an even number of heads have been observed. Automata can be represented using any<br />

graph data structure (see Section ), or by using an transition matrix, where is the size of the<br />

alphabet.<br />

file:///E|/BOOK/BOOK5/NODE207.HTM (1 of 4) [19/1/2003 1:32:15]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!