Let us start with the description of the purpose of this book. First we should explain how we understand its tide. In general, scheduling problems can be understood very broadly as the problems of the allocation of resources over time to perform a set of tasks. By resources we understand arbitrary means tasks compete for. They can be of a very different nature, e.g. manpower, money, processors (machines), energy, tools. Also tasks can have a variety of interpretations starting from machining parts in manu facturing systems up to processing information in computer systems. The same is true for task characteristics, e. g. ready times, due dates, relative urgency weights, functions describing task processing in relation to allotted resources. Moreover, a structure of a set of tasks, reflecting precedence constraints among them, can be defined in different ways. In addition, different criteria which measure the quality of the performance of a set of tasks can be taken into account.