logo back up home forward   further reading more topics »

Finite State Machine / Finite State Automation

A finite state machine or automation provides a simple model of computation, a way to reduce the complexities of a computer to its essence, in addition to its theoretical significance this can be a good way to tackle certain types of practical problem.

finite state machine automation

The current state is determined by past states of the system and the inputs to the system (it has a memory). A transition indicates a state change and is described by a condition that would need to be fulfilled to enable the transition. An action is a description of an activity that is to be performed at a given moment.

State diagram

We could describe the machine in terms of transitions, for each combination of state and input this will determine the transition function which gives the next state:

state diagram

State transition table

Condition↓Current state → State 1 State 2 State 3 State 4 State 5 State 6
Input red State 2 State 3 State 1 State 5 State 6 State 4
Input blue State 4 State 5 State 6 State 1 State 2 State 3

Outputs

There are different variants, for instance,

Mathematical Model

In its essence the model consists of (Σ,S,s0,δ), where:

In some circumstances (for instance Mealy machine) we may need to add:


metadata block
see also:

 

Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.


 

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to this site, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

 

Can this page be improved?

Please send me any improvements to here. I would appreciate ideas to make the pages more useful including error correction, ideas for new pages, improvements to wording. It helps if you quote the full URL of the page.

 

progam

I am working on a project which uses these principles, if you would like to help me with this you are welcome to join in, here:

for 3D programming: http://sourceforge.net/projects/mjbworld/

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2010 Martin John Baker - All rights reserved - privacy policy.