Finite State Machines

From TRCCompSci - AQA Computer Science
Revision as of 06:06, 22 May 2017 by Admin (talk | contribs)
Jump to: navigation, search

Definition

A finite state machine is a way of breaking down a problem into several mutually independent states that are only able to change when a transition occurs. A transition occurs when an input is given. The machine can only be in one state at a time. The state the machine is in at any time is referred to as the '"current state'". Any change to the state is known as a "'transition'".

Partsoffsm.gif

A finite state machine is not a physical machine. It is an abstract representation of an algorithm, showing how something changes in response to inputs or events. It is used to design computer programs and some logic circuits.The machine also enables it to check if the input is valid. This means that it has a wide variety of practical uses. One of these is a vending machine, which requires a valid input to determine what product is dispensed. Any input that is invalid will simply be rejected.

Where are they used:

  1. Robotics
  2. Video games industry
  3. Design of digital hardware systems
  4. Design of compilers and network protocols
  5. Definition of languages, and to decide whether a particular word is allowed in a language

Representing Finite State Machines

Finite state machines can be represented as diagrams.

File:FSMnotationtable3.jpg

Another way of representing Finite State Machines is through State Transition Tables. A State Transition Table lists all possible current states, all valid inputs that that particular state may receive, as well as what state the resulting transition leads to.

Finite State Automaton

A finite state automaton is a finite state machine which has no output. It has a start state and a set of end/accept states. If the automaton can reach an end state then the input is accepted.

Mealy Machines

A finite state machine with an output is called a Mealy Machine. It will output a value based on the input. Transitions are usually labelled with both input and output. Complex Mealy Machines can have both multiple inputs and outputs. This means they can be designed to create ciphers.