Control of Discrete-Event Systems: Automata and Petri