Based on  Claude Shannon's machine