Resource-constrained project planning

Resource-constrained project planning

A project is generally a unique undertaking that can be subdivided into subprojects and a large number of individual activities. Each of these activities require time and (scarce) resources for their execution. Furthermore, there are time or priority relationships between individual activities, which specify the order in which activities can be executed. The task of project planning is to define start times for each of the activities, which ensure that all time and priority relationships between the activities are fulfilled and that given resource capacities are not exceeded. Various goals can be pursued in project planning, such as minimizing lead time, leveling the resource requirements of the activities, or maximizing the net present value associated with a project.

A variety of practical problems can be thought of as resource-constrained project planning problems, such as major construction projects, the development and launch of new products or software systems, strategic planning problems in manufacturing or service industries, contingency planning, and even political campaign planning. More recently, project planning techniques have been successfully used in the context of production and operations management to solve sales-order related production problems and in the planning of process manufacturing systems.

Based on a structural analysis of the admissible domains of the aforementioned project planning problems, extremely efficient solution procedures can be developed, depending on the underlying objective function. Typical methods for solving resource-constrained project scheduling problems include (abridged) branch-and-bound algorithms, priority rule methods, constraint propagation methods, and various types of local search methods as well as evolutionary algorithms. In the context of scheduling, mainly network flow algorithms and efficient methods of admissible directions are used.