Abstraction: Finite State Machine
A Finite State Machine (FSM) has:
- K states, S = {s1, s2, …, sK}, initial state s1
- N inputs, I = {i1, i2, …, iN}
- M outputs, O = {o1, o2, …, oM}
- Transition function T(S, I) mapping each current state and input to a next state
- Output function O(S) mapping each current state to an output
Given a sequence of inputs the FSM produces a sequence of outputs which is dependent on s1 , T(S, I) and O(S)