Introduction to Discrete Event Systems by Christos G. Cassandras & Stephane Lafortune