Industrial production, the flow of resources in the economy, the exertion of military effort in a war, the management of finances --all require the coordination of interrelated activities. What these complex undertakings share in common is the task of constructing a statement of actions to be performed, their timing and quantity (called a program or schedule), that, if implemented, would move the system from a given initial status as much as possible towards some defined goal.