**Simulators and Graphical Interfaces for Finite State Machines**

There exist many tools for working with FSMs. I’ve listed some of the ones I like best.

**Finite State Transducers**

- For phonetic string matching, including the Soundex system
- Roman numerals
- UPCs

**Transition-Network Tools for Software Engineering**

**Markov Models**

- MARCA_Models software for creating and running various kinds of Markov models
- A simple example with a population of patients with diabetes
- Google’s PageRank algorithm
- The PageRank algorithm explained
- Cleve Moler’s article, which describes PageRank as a Markov model
- Training algorithms for efficient updating of the probabilities of huge Markov models such as PageRank
- Lee, Chris Pan-Chi, Gene H. Golub and Stefanos A. Zenios, 2003. “A fast two-stage algorithm for computing page rank”
- Langville, Amy N. and Carl D. Meyer, “Updating Markov chains with an eye on Google’s PageRank”, SIMAX (Siam Journal on Matrix Analysis and Applications) 27(4), pp. 968-987.
- Ipsen, Ilse C. F. and Steve Kirkland, 2006. “Convergence analysis of a PageRank updating algorithm”, SIMAX (Siam Journal on Matrix Analysis and Applications) 27(4), pp. 952-967.

- Markov models for music
- Markov models generating web pages
- OCR
- Can English be described with a Markov model?
- Seminal paper by Claude Shannon
- A description from Programming Pearls, including links to Bentley’s Markov model generating programs
- The beetleinabox site, which includes an applet for creating Markov models of English
- A comprehensive list of web sites related to computer-generated text
- DadaDodo, a program that builds Markov models of texts and uses them to generate new texts. Its slogan is, “Eliminate all rational thought”. You can run a demo.

**Hidden Markov Models (HMMs)**

- Introductions to HMMs and the algorithms they use
- HMMs in speech and natural language processing, including spam filtering
- HMMs in computational biology
- HMMs in music

**Büchi Automata and Other Automata on Infinite Strings**

- Determinization of Büchi automata, which proves the nonequivalence of nondeterministic and deterministic Büchi automata and contrasts that with the equivalence of the two mnodels for Rabin and Muller automata