Research Article

Branch and Bound Algorithms for Resource Constrained Project Scheduling Problem Subject to Nonrenewable Resources with Prescheduled Procurement

Algorithm 1

Basic scheme of the branch and bound algorithms.
(1)    Perform preprocessing and stop if the instance is infeasible
(2)   Perform algorithm preprocesses (specific to minimal forbidden sets algorithm)
(3)   Determine disjunctive pairs of activities
(4)   Specify the initial upper bound
(5)   Determine resources periodic availability profiles
(6)   Generate the initial node and select it for branching
(7)   Branch selected node (specific structure for each algorithm)
(8)   Fathom each new node containing feasible solution and update upper bound and LST of activities if necessary
(9)   If there is at least one node not branched or fathomed yet, select a new node for branching; Otherwise report the best
feasible solution achieved and stop
(10) Perform fathoming check(s) on the selected node for branching and continue from Step  7 if the node is not fathomed;
otherwise continue from Step  9