Automata theory languages and computation pdf models the behaviour of a system by showing each state it can be in and the transitions between each state. Form the above we can draw the finite state machine for the elevator. Representing a system as a finite state machine is very powerful because the model allows us to demonstrate the behaviour very clearly. We can prove that the system is robust and will not behave in any unexpected manner.

Consider the example of the elevator: by modelling the system as a finite state machine, it is possible to show that the elevator is not able to move up and down without stopping. This is because the design clearly shows that it is impossible to transition from the state ‘moving up’ to the state ‘moving down’. Applications of finite state machines are found in many sciences. Mainly engineering, biology and most commonly in linguistics, where they are used to describe languages. Looking at the above diagram we can see that it starts in state S1, an input of 1 will keep it in state S1, and an input of 0 will move it to state S2.

Once in S2 an input of 1 will keep it there, and an input of 0 will switch it back to S1. It might appear to accept any binary value, but this isn’t true. The only state it can accept in is state S1. This places the following rule on all accepted inputs: “A combination of binary digits involving an even number of zeros”. This is useful for parity checks. I am stuck in state S2 and the FSM has not accepted.

Can you create a FSM to only accept Binary numbers with odd numbers of 1s? The above Mealy Machine outputs a value for each input. What does this machine do, what do the outputs tell you? What is the difference between a mealy machine and a finite state automaton? This means that for a state and a valid input there is only one possible transition to take. Inputs are usually placed on the left, and separated from the outputs, which are on the right. You might have already cottoned on.