a branch-and-bound algorithm for the resource-constrained project scheduling problem

27
Math Meth Oper Res 2000) 52 : 413±439 999 2000 A branch-and-bound algorithm for the resource-constrained project scheduling problem U. Dorndorf, E. Pesch, T. Phan-Huy University of Bonn, Faculty of Economics, BWL III, Adenauerallee 24-42, D-53113 Bonn, Germany e-mail: [email protected], [email protected], [email protected]) Abstract. We describe a time-oriented branch-and-bound algorithm for the resource-constrained project scheduling problem which explores the set of active schedules by enumerating possible activity start times. The algorithm uses constraint-propagation techniques that exploit the temporal and resource constraints of the problem in order to reduce the search space. Computational experiments with large, systematically generated benchmark test sets, ranging in size from thirty to one hundred and twenty activities per problem instance, show that the algorithm scales well and is competitive with other exact solu- tion approaches. The computational results show that the most di½cult problems occur when scarce resource supply and the structure of the resource demand cause a problem to be highly disjunctive. Key words: resource-constrained project scheduling, constraint propagation 1 Introduction Resource-constrained project scheduling addresses the task of allocating scarce resources over time in order to perform a set of activities, subject to constraints on the order in which the activities may be executed. The objective considered in this paper is to minimise the project duration, i.e. the maximum of the completion times of all activities. Due to its general nature, the resource- constrained project scheduling problem RCPSP) has important applications in diverse areas such as make-to-order production planning or construction engineering. Recent surveys of resource-constrained project scheduling have been given by Brucker et al. 1999), Herroelen et al. 1998), Kolisch and Padman 1997) and Elmaghraby 1995). Using the classi®cation scheme for project scheduling described by Brucker et al. 1999), which extends the well known three-®eld classi®cation scheme

Upload: u-dorndorf

Post on 10-Jul-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A branch-and-bound algorithm for the resource-constrained project scheduling problem

���� ���� ���� � �� � �� ��������

�������

� ������������� �� ����� �� �������������������� ������ �������� ������

�� ������ �� ������ �� ��������

��������� �� ����� �� !"�� �� # ���$� � �%& '''� ()���!���""�� ��*��� +*����� �����,��$��� ��*$��"� !)���)���-� $.��/� �.�� �-!��*0���.)�� �����!�-����.)��

��������� %� )� ��0� � ��$�*�������) 0��� �*��)*0�!�) �"/�����$ ��� ������!� �* ��������) ���1� � ��)!"��/ ���0"�$ 2�� � �3�"��� ��� �� ��� ���� ��)!"� 0� ��!$������/ ���0"� � ������ ���� ��$�. 4�� �"/�����$!� ��������*�����/����� �� ���5!� ���� �3�"��� ��� ��$����" ��) ���!� � �������� �� ��� ���0"�$ �� ��)�� �� ��)! � ��� ��� � �� �. 6�$�!�������"�3����$��� 2��� "��/�� ���$��� �""� /�������) 0�� �$��7 ��� ��� ���/��/�� �8� ���$ ������ �� ��� �!�)��) ��) �2���� � ������� ��� ���0"�$ ����� ����2 ���� ��� �"/�����$ �"� 2�"" ��) � �$�������� 2��� ����� �3� � �"!*���� ������ ��. 4�� �$�!�������" ��!"� ��2 ���� ��� $�� )�9 !"����0"�$ � !� 2��� �� � ���!� � !��"� ��) ��� ��! �!�� �� ��� ���!� �)�$��) �!� � ���0"�$ �� 0� ��/�"� )�1!� ����.

��� ��! ���!� �* ��������) ���1� � ��)!"��/� �������� �����/�����

" #��������

��!� �* ��������) ���1� � ��)!"��/ �))��� ��� ��7 �� �""� ����/ �� � ���!� � ���� ��$� �� ��)�� �� ������$ � �� �� � �������� !01� � �� �������� �� ��� ��)�� �� 2�� � ��� � ������� $�� 0� �3� !��). 4�� �01� ���� ���)���) �� ��� ����� � �� $���$�� ��� ���1� � )!������� �.�. ��� $�3�$!$�� ��� �$�"����� ��$� �� �"" � �������. +!� �� �� /�����" ���!��� ��� ���!� �* ��������) ���1� � ��)!"��/ ���0"�$ �6:;:� �� �$������� ���"� ������� )����� ���� ! � � $�7�*��*��)�� ���)! ���� �"�����/ �� ����! ������/�������/. � ��� !���� �� ���!� �* ��������) ���1� � ��)!"��/ ����0��� /���� 0� ��! 7�� �� �". ������� <�����"�� �� �". ����=�� >�"� � ��):�)$�� ����?� ��) #"$�/���0� ������.

���/ ��� "��@ ����� ��$� ��� ���1� � ��)!"��/ )� ��0�) 0� ��! 7���� �". ������� 2�� � �3���) ��� 2�"" 7��2� �����*@�") "��@ ����� ��$�

Page 2: A branch-and-bound algorithm for the resource-constrained project scheduling problem

��� $� ���� ��)!"��/� 2� 2�"" )����� ��� ���0"�$ ���)���) �� ��� �����2��� ���������$�3� ��� ��� ���1� � ��)!"��/ 2��� �0� ��� �)�� � ����������) � � ��� �01� ���� �� $���$���/ ��� $�3�$!$ �$�"����� ��$�. '� ��� "��@ ����� ��$� )���"���) 0� <�����"�� �� �". ������ ��� ���0"�$ �� 0� ���� �����) � �� �������$�3.

'� � 2�"" 7��2� ����� � �� �3������ �� ��� 1�0 ��� ��)!"��/ ���0"�$���� ���0"�$ ���������$�3 � ��*���) ��A�8B�2� 8 �� �".� ��=��. ��� �3� ��"!���� $����) ��� ��������� 0��) �� 0��� �*��)*0�!�) ��� �. ��/�����/2��� ��� 2��7 �� C����� ���D?�� � /���� �!$0�� �� 0��� �*��)*0�!�) �"/�*����$ ���� 0��� )���"���)� ��) 2� ����� ��� ���)�� �� ��� !���� �����$�������) �0��� ��� � )� ������� ��) "��@ ����� �� ��� �����! ��*���� ��. 6!�����"�� ��� $�� �E� ���� �3� � �"/�����$ ��$ �� 0� ��� ��� ��+�$�!"�$����� ��) <�����"�� ����?�F ;��� ��� ����?�F ���/�88� �� �".����=�F ��! 7�� �� �". ����=� ��) ��� ��� �)!�� �� >"��� ��) ; ��"" ����=��0��� �"� >"��� ������� 2�� � �� �"�� � /�����"��) ������ �� ��� ��� ���0"�$���������$�3.

'� ��� ������ 2� �!)� � ��$�*�������)� �������� �����/����� 0��)������ � �� ���1� � ��)!"��/. %� )� ��0� � 0��� �*��)*0�!�) �"/�����$���� ��!$����� ���0"� � ������ ���� ��$� 0��) �� ��� �)�� ����� �� � /������)� �� ��� ��� � ����� �� � ������ $!� ������ ���� � ���"� � ���0"� �� 0�)�"���). ( �����" ����!�� �� ��� �"/�����$ � ��� ���"� ����� �� �������������/����� �� ���5!� ���� � ����"� �3�"��� ��� ��$����" ��) ���!� � ��*������ )!���/ ��� ��� � �� ��)�� �� �����2 )�2� ��� �� �� ���0"� � ���������� ��$� ��) ��! ��)! � ��� ��� � �� �. �!����� ��)! ���� �� ��� ��� ��E��� � � �����) 0� ����� ��/ �$� �� ���� ��)����� ���� $!� 0� $�� 0�� ���� ��)!"�.

��� �� ��� $��� �)�����/� �� ��� ��$�*�������) 0��� ���/ ��$� � �� �� ���!�" �$�"� ��� 2�� � �""�2 �� $�)��� ��) �3���) ��� ������ � �����"���) ��� �� �" ��)!"��/ ���0"�$ ���� ��� ����� �$�"� ���) 0� �))������" ��������. �!�����$���� ��� �������� �����/����� �� ���5!� ���� 2� !���� ��� !��$*���"���) ��� ��� ���0"�$ ���������$�3 0!� ��� �� �� �"�$��*���� ���!�� ��) ���� � 2�)� ���"� �0�"���.

4�� @�� ��$�*�������) 0��� ���/ ��$� ��� ��� ���0"�$ ���������$�3

���� 0��� )� ��0�) 0� #"$�/���0� ���??� ��) 4�"0�� ��) :������� ���?=�.4�� �$$�� �)�� 0����) ���� �"/�����$ � �� 0��� � ���� �"" ���0"� ������$� ��/�$��� �� ��� ��3� � ������ �� 0� ��)!"�)� ��) ��� �!$0�� �� ��")��)� /�������) �� � /���� ��)� �� ��� ��� � ���� ��! )����) �� ��� �"� ��)� ������. 6��"��� ��) &������ ������ ���� ������) � 0����� ��� � ��$��� 2�� � 0��� ���/ ���� �� �"� ���/ �� � ������ ��) �"�����/ �� �������"�� ���0"� ���� ��$� ���� �2� �������" �� �5!�" �8�. ������ ��) ;�$������D� ���� )���"���) � ��$� �������) �"/�����$ ��� ��� 1�0 ��� ��)!"��/���0"�$. 6���! ��) &�0!���� ����D� ���� ��)����)���"� )��/��) � 0��� �*��)*0�!�) �"/�����$ ��� � $!"��*$�)� ���1� � ��)!"��/ ���0"�$ 2�� � ��0� "��@�) � ���������$�3 �� ��� ��$� �� ��! 7�� �� �". ������. ��� �����/"� $�)� �� ��� �"/�����$ !� ��� �$� 0��� ���/ �����/� � ��� ���* �)!�� �� ������ ��) ;�$��� 2�� � ��)!"� �� � ������ �� �� ���"��� ������$� ��) )�"�� �� !��� 0� 7��� 7��/ !���" ��� ���"��� �$�"����� ��$� ���$� ����� � ������� ��!"���/ �� � 0����� ��� � ����. 4�� 0��� ���/ ��$�)� ��0�) �� ��� ����� �"� $�7� !� �� ��� �"�$������ ������ �. 4��0��� ���/ �����/� )� ��0�) 0� 6���! ��) &�0!���� �� �"� 0��� !�) ��$�)�@�) ���$ �� ��� �!)� �� ������� �� �". ������. <��� 7� ��) 6�"�$0���

��� �. +���)��� �� �".

Page 3: A branch-and-bound algorithm for the resource-constrained project scheduling problem

����?� ���� )���"���) �� �"/�����$ ��� � ������ �� ��� ���0"�$ ���������$�3

�� 2�� � ���!� � !��"� ��) )�$��) $�� ���� ���� ��$�F ��� 0��� ���/ ��$� �� ����� �"/�����$ � �"� 0�����F �� � ������ � ��)!"�) �� �� ���"������� ��$� ��) )�"���) !��� 0� 7��� 7��/ 0� � ��/"� !��� �� ��$�. (� !�!!�"����!�� �� ����� �"/�����$ � ���� � ������� ��� �� /�����" ��� ��)!"�) ����)�� �� �� �����/ ���� ��$�.

'� ��� ��$���)�� �� ��� ����� 2� ��� ��) � ��""�2. ;� ���� � ���$�""����� ��� ����$������ $�)�" ��) �����)! � ��� ��������. �� �!� �������������/����� �"�� � �����" ��"� �� ��� �"/�����$� ;� ���� � ������ � 0�� �����/����� �"/�����$ ��) ��� ��� !�) �� �!"� �!� !����������/ � ���������� ��$�. ;� ���� � ���� )� ��0� ��� 0��� �*��)*0�!�) �"/�����$. ����""����� �$�!�������" ��!"� �0�����) ��� � "��/� �!$0�� �� 0�� �$��7 ������0"�$ ��� )� !�) �� ;� ���� �.

$ ��� ������

4�� ���0"�$ ���������$�3 � � /�����"������ �� �$������� ��)!"��/ ���0*"�$ "�7� ��� 1�0 ��� ��)!"��/ ���0"�$ �� ��� ���� ��� ��)!"��/ ���0*"�$ ��) �� 0� )� ��0�) � ��""�2� � @���� �� �� � ������� � � ��� � � � � ��� �� 0� ��)!"�) 2��� ��� �01� ���� �� $���$���/ ��� ���1� � )!������� �.�.��� $�3�$!$ �� ��� �$�"����� ��$� �� �"" ��������� 2�� � � �"� 7��2� ���� $�7����. #� � � ������ � � � �� � �� �@ ��� ���/ ��$� ��� 2�� � �7��2� �� �)��� �� ��) � ���� ��$� ��� 2�� � � � )� ���� �����0"�. �� �����/ !9 ����"� $�"" ��$� !��� 2� �� �"2�� �!$� ���� ��� ��� �*��/ ��$� ����� ��$�� ��� ������� ����*��/������ ����/�� ��"!�. %� �!�������5!��� ���� � ������� $�� ��� 0� ������!���) )!���/ ����� ��� ���/ ����*����$������.

'� /�����"� � ������� ����� 0� ��� ��) ��)����)���"� ���$ �� � �����)!� �� "�$���) ���!� � ��) �))������" �� ���"�/� �" ��5!���$���. 4�� ���0*"�$ ���������$�3 ���)�� �2� 7��) �� ��������� ��������� � ���������) ��� ���� � �������.

�. :�� �)�� � �������� �� ��� � @3�) ��� ���/ ��)�� 0��2��� ���� ��� �������. :�� �)�� � �������� ���� �� ���"�/� �" ��5!���$��� �� ���7��) ���� �$� � ������ � $!� @��� 0����� ������� � ������ � �� ����� �������� �� �� ��� �!��!� �� � � ��� ���!� �� �.

�. ��!� � �������� $�)�" ��� ���!� � )�$��) �� � ������� �� � ��)*!"��/ �������$��� 2��� �� � ���!� � !��"�. ���� ��� ��"�� �� � ������ ���5!��� ��� � � !��� �� ��� �� �����" ���!� � � � �� 2���� � )�������� �� �� �"" ���!� �. %� �!����� �!$� ��� ��� �7� �� �$�"� ��� �������!� � � � ����"�0"� �� ������ �$�!�� ��� �"���!/� $��� �� ��� ��!"�)�����) �� ��� 2��7 �"� ���"� �� 2� ���)�� � ��$�*������/ ���!� �!��"� �����). 6"���"�� � ����0"� �"!���� ��"� �3�� �� ��� ��� ��� �""� ������� ��) ���!� �. %��"� �� � ������ � �� ��� �� ��� ��5!���) ��*�!� � !��� ��� �3 "!���"� ��/��) �� �� ��) ��� ��� ����"�0"� ��� ������ �������. 4�� �� �� � ������� 2�� � ��5!��� � ���!� � � � )�����) 2����� �� �� � � � ��� � �.

( ��� �)�� � �������� ��� �� �� 0� �0���!"� $�)�""�) 0� �$����/ � $���*$�" ��$� "�/ 0��2��� ��� ���� ��$� �� ��� �2� � ������� � ��) �. 4�� ��$����"

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 4: A branch-and-bound algorithm for the resource-constrained project scheduling problem

�������� �� ��� /�����" ���$ �� � �� ��� . %� )����� 2��� � ��� �� �� �""��� �)�� � ��������. ( ���!� � �������� ��� � /���� ���!� � � ��!������ �� ��� ��� ���/ �����) ��� ���!� � )�$��) ����� �3 ��) ��� ���!� �!��"� ��. '� � ���0"� �� )�@�� ���� ���!� � �������� �� � 5!��� �"�*/��� 2�� 0� !��/ ��� �� ��� �� � "� 7 �!� ���� 2�� � 2�"" 0� �����)! �)"����. ��� ��� ��$� 0���/ �� � !9 ���� �� )�@�� ��� �!3�"���� �� ���� �� � *������� �� ��� � �� ��$� �. 4�� ���0"�$ ���������$�3 �� ���� 0� ����) ���""�2�

$�� $�3� ��

��� � ���� �

��� ���

�� � �� ��� � ���� �� � �� ����

�� �����

��� ���� �� � � � �� � �� �����

�� � � � �� � �� ����

( ��)!"� � � ���� � � � ������ � �� ��/�$��� �� �"" ���� ��$�. %� ������ � � �������� �� �� ���@� 0��� �"" ��� �)�� � �������� ���� ��) �"" ��*�!� � �������� �����. 4�!� �"���/ ��� ���0"�$ ���������$�3 � �5!���"����� @�)��/ � ����0"� ��)!"� 2��� � $���$�" $�7����.

,���� ��� �� �� �"" ����0"� ��)!"� 2� �� )�@�� � ������" ��"����� ��2���� ��� � �� �� � ������ �� � ���� "���� ���� �� � �. �!������ � � � � ����� � ��) �))������""� �� "��� ��� � ������ �� � ���� ���"���. ( ��)!"� � ����� ��) �� 0� ������� �� �� � ����0"� ��) ����� �3�� �� ����� ����0"� ��)!"�� � ! � ���� � � � �. '� ����� 2��)� � � � ����� �� �� � ������ �� 0� �����)���"��� 2����!� ���"����/ ������ ��� �� ��� ��� �)�� � �� ���!� � ��������.'�����"�� � ��)!"� � � ��� � ����� �� �� � ������ � �� 0� �����) ���"��� ������ ��$� �� 2����!� �����/ �� �� ���� ��� ���� ��$� �� �$� ����� � ������.'��!�����"�� 2� 2�"" ���� �� ��� ���� ���� � �� 0� "���*�����) �� �. 4�� )�@*������ �� � ���� ��)!"� �$$�)����"� "��) �� ��� ��""�2��/ �$�"� ��) 2�""7��2� �0��������� ��� �"!���� $����) 2�� � $���$�� ��� $�7�����!� ���� �� �� ! �� /��������/ � ���� ��)!"�� �� � ��� ����� ���*� ���� ��)!"� ����� �"2�� �3�� �� � ���� ��)!"� 2��� �� �)���� �" �� ���� "�2��$�7����.

4�� 0��� �*��)*0�!�) �"/�����$ � 0��) �� ��� �)�� �� �������)"� ��*)! ��/ ��� �� �� ���0"� ���� ��$� �� �� � ������ !���" �"" � ������� ��� ��)!"�). #� � � ������ � � � �� � ������ � ��� �� �� �� ���0"� ������$�. ;�� � $�� �� ��� �������� �����/����� $����) ���"��) �� ��"�)�)! � � )�$��� ��)! ���� �� ��� !����� )�$��� ��� @����� 2� 2�"" �!$����� �$� !���� 0�!�) �� �� ��� ����$�" $�7���� � 7��2� � ������ � ��� ��� ��"). '� �� ������" !���� 0�!�) � /����� ���� 2� !� ���������" !���� 0�!�)

�� �� ��. 4�� �� �� !����� )�$��� �� �"" � ������� �

)�����) 2��� � �� ����� � ��. ��� �� � ������ � � �� ������ �� $���� )�*���� �� ���"��� ���� ��$�� ��) ������ �� $�3�� )����� �� "���� ���� ��$�.;�$�"��"�� ������ �� ������ � �� � ��� ���"��� �$�"����� ��$� ��) ������

��D �. +���)��� �� �".

Page 5: A branch-and-bound algorithm for the resource-constrained project scheduling problem

�� ������ � �� ��� "���� �$�"����� ��$� �� �. '� �� ���!��� � ���0"�� ����2� 2�"" 2���� ���� ���� �� .

( ��)!"� � � �""�) � ��� �������� 2��� ���� � �� � �� � �� !�����)�$��� �� ��� !����� )�$��� �� �� � � ������ ��"" ������ ��� ���� ��$� ����� � ������ �� �. ,���� � �� � �� !����� )�$���� ��� �� �� �"" � ������� � �� 0� ���!��""� ����������) ���� � �� �� ��)!"�) ��) ���* ��)!"�) ������� �������. 6"���"�� �� ��� !����� )�$��� �� �� � ������ � ������ �3� �"� ��������� ���� � $!� ���� �� ���� ��$� ��) �� 0� ���)���) � ��)!"�). <�� �� ���� �� �� � �� ���� � �� � ��� �� �� ��)!"�) � �������� ��) � � ��� ���� � �� ���� � �� � ��� �� �� ���� � �������. ��� �"" ��)!"�) � �������� � � ����� ��� ���� ��$� � )�@��) ����!/� ����� �� ������ � ������.

% &�������� ���� ����

(� �3� � �"!���� $����) ��� �"���/ ��� ���0"�$ ���������$�3 /�����""� ���� �� �2� �$������� ��� � ��� � �����/� 2�� � ��/���� ��� ��!*$������� �� �"" ��������" �"!���� ��) ��� � ��� � �� � ��)! ���� �����/�2�� � )�$����� ��� �!$0�� �� ��������" �"!����. '� ��� � ����� 2� 2�"")� ! ��� � �� � ��)! ���� �����/�� 0��) �� �������� �����/�����2�� � �� 0� �$� $��� ��) $��� ���!"�� �� ��� "�� )� �)� )!� �� �� �"�*$������ ���!��. 6�������� �����/����� �� �� ���/�� �� ��� @�") �� ��*������ ���/��$$��/ 2�� � $�)�" �$0��������" ��� � ���0"�$ ��� ��" ����� � �� ��� � ������ ���������� �� ���� �6;:�. 4�� ���/�� �� �������� �����/����� /� 0� 7 �� %�"�8 ���?�� 2�� )���"���) � ��2 2�""*7��2� @"�����/ �"/�����$ ��� "�0�""��/ �����*)�$������" "��� )��/��$.

4�� 0�� �)�� �� �������� �����/����� � �� ���"!��� �$�"� �� ������������!/� ��� �������) ���"�� �� ��� �����0"�� )�$��� ��) �������� ����)� ��0� � �� �@ ���0"�$ ����� �. 4�� ���"�� $�7� �� ���0"� �� )��� ���) ��$��� �� ������ ���� ��$� ��/�$��� ���� ����� ����� ����� �� �����0"� ��)!"� 0� � $���"� ������" ���0"�$ ���"��. +�E����� �� ��� �� ������ � 2�� � $�� ���� � � �������� �" 0� 7/��!�) ��� �����/����� �"*/�����$ ���� 0��� )�@��)F /�����" �������2 ��� /���� 0� >!$�� ������ ��)4��/ ������� � 2�"" � +���)��� �� �". �� �� 2�� �� ! �� ��)!"��/*��"���) �����/����� �� ���5!�.

'� /�����"� ���0"����/ �!"" ������ � 0� ��$����/ ��� �� ������� ������$� ��/�$��� � �����0�����"� �3������ )!� �� � �$�!�������" �$�"�3���2�� � /��2 �3��������""� 2��� ��� �!$0�� �� � �������. 4��������� ��� ��*�"� ����� �� �������� �����/����� � ��"� ���0"� �� 2� ������ �!��"��2��� �����3�$�����. (� �$������� ��7 � �� )����� �$�"� �!"� 2�� � "��)�� �9 ���� ��� � �� � ��)! ����� 0!� �� ��� �$� ��$� �� 0� �$�"�$����)�9 ����"�. 4��� �!"� ��� �""�) � ������� ����� ��) ��� /�����""� )� ��0�)����!/� � ��)����������! ���� ���� � ��) �. '��!�����"�� ��� �$���� �� � ������ � ��� ��� � ��""�2� 2������� ��)����� � � ���@�)� � �� �� 0��3� !��). � $�� 0�� ��� ����� �� �� �5!����� �� ���5!������ 2��"� � $�� 0�� )�$��� ��)! ���� �!"�. %� 2�"" !� ��� �������) �������� � � � ��� ������ � ���.

,���� � �� �� ������ � ���� ���� ��� ���� �� 0� ���"��) �� �� ����*����� ������ ������ ���� ��"� �� � �� ��)�� �� �0���� ��� $�3�$�" )�$�����)! ���� ���0"�. 4�� ����� ��� ��� � ����� ����� ��� ��)! ���� �� �$�)�$���� �))������" )�$��� �)1!�$��� �� ���0"� 0� )�����) !��/ �$�

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ��?

Page 6: A branch-and-bound algorithm for the resource-constrained project scheduling problem

�� ��� ��� 2�� � ���� ������!"� ���"�) �� )�)! ��/ ��� ��)! ����. 4�!� ���)�)! ���� ��� � � �����) �!� !���" �� $��� �)1!�$��� ��� ���0"� ��� ������� 2��)� !���" ��� �� � �� !����� )�$��� 0� �$� � @3�) �����. '� ��$������� �� $������ ���� ��� @3�) ����� �$�!��) )�� ��� ���� �� 0�!��5!� ��) !!�""� )����) !��� ��� ��)�� �� ��� ���"� ����� �� ��� ���*��� � ���. 4�!� �� /�����"� �� ���"� ����� ��)�� $�� ��)! � � ����/����� � �� � ��)! ���� ���� ������� ���"� ����� ��)��. <�2����� 2� 2�"" ��"��!)� � � �� ������ � ��� ��� 2�� � ��� ��)�� �� ���"� ����� )�� ����E� � ��� �!� �$� �� ��� )�$��� ��)! ���� ��� � �+���)��� �� �".� � �.

4�� ��������� ���"� ����� �� ��� ������ � ��� � �����""�) 0� ��� ��*������ �����/����� �"/�����$F ��� �����/����� �"/�����$ !�) �� �!� �$�"�*$�������� � � ������� �� ��� (6*� �� * ������ � �"/�����$ )� ��0�) 0�G�� <������� 7 �� �". ������. &�7� �"" �)��� �) ������ � �"/�����$� ��2��7 2��� � 5!�!� ��������/ �"�$��� �� �� ���)��. ( 5!�!� �"�$��� ��*�� �� � �������� ��) � ��"!� ��� � �� �� ��"!�� ���� �� 0��� ��$���)���$ ��� )�$��� �� �$� �����0"� �� ��� �������� ��) 1!��@� ��� ���) ���� ���)�� ��� ��������� �.�. �� ��*���"� � ������ � ���. '� �� � ����������� ��� �����/����� �"/�����$� � ��������H��"!� ���� � ��$���) ���$ ���5!�!� ��) �"" ������ � ��� ��� ���"!���) ���� ��� �� ����) 2��� ��� ��������. '� ��� �� ���� ��� ��$��� � ��"!� � ���$ � )�$���� �� ���$ ������� �"" �������� 2�� � ������ ��� �����0"� �� ��� ����) �� ��� 5!�!�� ��*/����� 2��� ��� �����$����� ���� � �� 0��� ��$���) ���$ ��. 4�� ��� � ��������) !���" ��� 5!�!� � �$��� ��) ��� @3�) ����� � ��� ��). 4�� �������� �����/ � ��"!� ��/����� 2��� � �������� � ���� ��� $�� �""�2 �� !� �$��� �9 ���� �"/�����$ �� � ������ � ���.

&�� ! ��2 �!�� �� ��� ������ � ��� ���� ��� !�) 2����� �!� �"/�����$.( ��� �)�� � �������� )����$��� ��� �5!�� � �� 2�� � �2� �� �@ � ���*���� � ��) � ���� �� 0� ��� ��). '�� ��� ����� �� � ������ � �� �� @��� 0������ ������ � �� ���� ���� ��� ���"��� ���� ��$� �� � �� �� 0� /������ ���� ���5!�" �� ��� ���"��� �$�"����� ��$� �� �. &�7�2��� �� !���� 0�!�) ��� ���"���� �$�"����� ��$� �� � � ��� "���� ���� ��$� �� �. 4�� �$�"�� ��� ��""�2*��/ ��� �)�� � ������ � ����

��� �� � ���� � �� �� �� ���� ������� �� �� ���� � ���

%��� !�) 2����� ��� �������� �����/����� �"/�����$� ��� ���� �� �!���"��) �� ��� �$� ��!"� � � II���2��)*0� 72��)JJ ��$� 2��)�2 �" !"����� ��� ���1� � ���2��7. ( �$� �� ��� ������ � ��� )� !�) 0�"�2 $�� )�* ���� ��2 ��� �)�� � ��������� 2�� � $!� ��") �� �))����� �� ���� /������ ��� ���/���" ���0"�$� ��� �� �� �"" ��� �)�� � �������� )����) �� � ��)� )�����) 2��� ����.

'������" ������ � ��� ��� 0��) �� ��� �$������ �� ���!� � !��"���) )�$��) 2����� � /���� ��$� �������". #� � � ������ ��5!��� � ����"�$�!�� �� 2��7 ��� �� ����� ���$ ���!� � �. ( ��$� �������" � ��) �� 0��������� � ������ �� ��� �$�!�� �� 2��7 ��5!���) 0� �"" � ������� 2����� �����$� �������" �� 0� $�� ��) 0� ��� �$�!�� �� 2��7 !��"��). 4�� 2��7 �� ��� ������ � ���� $!� ��"" ���� � ��$� �������" ��� �� $�� 0� $�""�� ���� ���� ��)�� )����) !��� ��� !����� )�$��� �� �. %� ��������� �����)! � ��� �� ����� �������" ��� ���/ ��$� 2�� � �� 0��� @�� ������) 0� &���8 �� �".

��= �. +���)��� �� �".

Page 7: A branch-and-bound algorithm for the resource-constrained project scheduling problem

������ !�)�� ��� ��$� �� ��� ���� ���� � . 4�� �������" ��� ���/ ��$������� ��� � ��� $�""�� �$�!�� �� ��$� )!���/ 2�� � � �� �� 0� ��� ��)2����� ��� ��. ���� ���0�"���� ���� �� 0� ���)���)� ��� � �� 0� �$�"���"� �������) 2����� ��� �������"� ��� ����"�� ��� ������ �������"� ��� ���� � $���*$!$ ��� ���/ ��$� �� ��� �������" 2��� �����) � ���"� � ���0"� �� ������� � $���$!$ ��� ���/ ��$� 2��� �����) � "��� � ���0"�. 4�� @�����!����� ���"�� 2�������� /���� ��� !����� )�$���� � )�� ��� �� ����"����� �� 0� ��� ��) 2����� ��� ��$� �������". 6���5!���"��

������ ��� �� $�3� �$������ �� ������ ��� �� ������4�� �������)��/ ������� � �� � /���� 0� ������� ��� � ��������� ���. 4���������" 2��7 �� � !0�� �� � ������� ���� � )�@��) ����!/� !��� ��� ����� �

� �" ������� ���. %� �� ��2 )�@�� ��� "� 7 �� � ��$� �������" 2��� ��*�� � �� � �� �� � ������� � ��� )�E���� � 0��2��� 2��7 !��"� ��) )�$��)2����� ��� ��$� �������"�

�������� ��� ��� �� �� � ��� ��� !��� ��� ����;�� � ��� "� 7 �!� ���� �0���!"� )����) �� ��� /���� �� � �� !�����)�$���� 2� 2�"" 2���� ��������� ��� ��� 2������� �� ����. (� �������" ��� ��� ��� ��� ������� �� ��������� ��� ���� ��� ����� ���!� � �. (� ��*)����!���� �� ������ � ��� 0��) �� ��� ������ �� �������" ��� ��� � /���� 0�+���)��� �� �". ������.

(� �$������� �� ��" �� �� ��� �������" ��� ��� ������ � ��)����� ��0�����) 2��� 2� ���)�� ��$� �������" �� !��� 2�)��. '�� ��� �� � ������� � �� ��) �$� ��$� �� �������� ���� �� �� �� � "� ���� ��� ��5!���) ��*�!� � �$�!�� ���� ���� � ������ � ����� 0� ��� ��) �� ��$� � ��) $!���� � ��� ���� �� ��� �������" �� ��� ��. 4�� "��) �� ��� ��""�2��/ ���� 2�� �� �"� 7��2� !�)�� ��� ��$� ��$���0"�*0��) �������� �����/����� �&�:���� �����.

��������� ���� �� �� �� � ��� � �� �� �� �� ��� ���4�� �$�!�������" ���"�� 2�"" ��2 ���� ��� $�� )�9 !"� ���0"�$

����� � ���) �� ���� � ��/� ���� �� ���������� � �������. 42� � ��������� � � � ��� �� )�1!� ���� ��� )!� �� "�$���) ���!� � ����"�0�"���� � ��) � �����0� ��� ��) �$!"�����!"�� �.�. �� ��� � ��� � �� ��� �$� ���!� � �. 4����""�2��/ ������ � ���� 2�� � ��� ���/���""� 0��) �� �������" ��� ������������� �))�� ��� ��� �.

��� � /���� ���� �� � ������� �� � �� )�1!� ����� ��� 2�"" 7��2� ���� �����2�� � �� 0��� ������) 0� 6��"��� ��) :���� ���=��� �� 0� ���"��)�

��� ��� � �� � ���� �� ����� ���� ����6"���"�� �� ��� ��)����� �� ��� "��� ���) �)� � ���@�)� � $!� ��� �)� �

��) 2� �� !�)��� ��� �� �� ��� �)�� � ��������.4�� ������ � ��� ��� )�1!� ���� � ������ ���� �� 0� �3���)�) 0� ��*

�)����/ "��/�� �� � �� ����2�� )�1!� ���� � �������� 2�� � $!� 0� ���* ��) �5!�����""�. ,���� ! � � �� �� 2� �� �� 7 ��� ��� �3���� � �� �����0"� ��)!"� !�)�� ��� �������� ���� �$� � ������ � � � � � ��)*!"�) � "�� � ������ �� �. '� �� ! � ��)!"� �3�� ���� 2� ���� ��"�@�) ���

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 8: A branch-and-bound algorithm for the resource-constrained project scheduling problem

�������� ��) �� �� "!)� ���� � $!� 0� ��� ��) ����� �"" ����� � ��������� �F 2� �� ��! �)) ��� �������)��/ ��� �)�� � �������� ��) �)1!���� ���"��� ���� ��$� �� � �� ��� ���"��� ���0"� �$�"����� ��$� �� �"" � ���*���� �� � ���. 4�� ��"!� � �5!�" �� ��� $���$�" �$�"����� ��$� �� � ����*���)��/ ���*$� ���� ���0"�$ 2��� ��"��� )��� ��) )!� )���� 2�� � ����"� ��*���)F �� � ��������� !!�""� �����3�$���) 2��� ��� �"!���� �� ��� �������)��/ ����$����� ���*$� ���� ���0"�$� )�����) 2��� ������ �����2�� � �� 0� �$�!��) �9 ����"�. 4�� ��!"���/ ������ � ���� 2�� � � �"�)!� �� 6��"��� ��) :���� ���=��� �� 0� ���$�"��) � ��""�2�

$�3� �� ���

��� $��� ��

��� ��� ��

�� � ���� �� ����� �� �� �� � � � � ������� �� �� ������� �����

( �$$���� �" ��� �� 0� ���"��) �� ��2 ���� �$� � ������ $!� 0� ���* ��) ��� �� � �� �� ����� � �������. 4�� ��� ��� �""�) ����# ����� ����� ��)��� �$���$� �"� �������) �� � �$$�)���� �"� ����.

&�� ! ��2 ���)�� ��� 5!����� ��2 ��� �� � ��!") 0� ����. ;�����"�"/�����$ ���� 0��� ������) 2�� �� /���� � �� � � �� ����2�� )�1!� ����� �������� �� ���"� ��� ������ � ��� ��� �"" !0�� ��� � 2��� "�2��"���$��" �E��� � �. +���)��� �� �".� � �F ��� �$�"�$�������� !�) ���!� ��� �)!�� � 0��) �� ��� �"/�����$ �� K!�1��� ������ ��) ��5!��� �E���$������. 4�� 5!����� �� 0� ��2���) ��! � ��2 �� ���� � � ��.6"���"�� � ��� �"/�����$ 2�"" ���"� ��� ��� ��� �"" !0�� �� � �� ��� �� � ����"� ��!") 0� $�3�$�" �� ��� ��� ���� ���� �� ��� � ������� �� � � � � ��)�1!� ���� 2��� �"" ���� �� � � �$�3�$�" "�5!��.

4�� ���0"� ��� � �� � � �� 0� )����$���) 0� ���)����/ �� !�)��� ��)/���� % 2��� ��)� �������)��/ �� � ������� ��) �)/� 0��2��� ��� ���� ��)�1!� ���� � �������� �.�. ���� �� � � � ��� 2�� � ��� � ��� ��� ��� �$� ��*�!� � � � �. ( )� �$������� �� % ���� �"" $�3�$�" "�5!� ���� /��� �""���0"� ��� � �� � �. ("���!/� ��� �!$0�� �� $�3�$�" "�5!� $�� �� /��*���" 0� �3��������" �� ��� �8� �� ��� /����� ��� )� �$������� �� ��� ��� ��* �" �!���� 0� 5!� 7"� �" !"���) 2��� ��� �"/�����$ �� ���� ��) >��0� ����?��. K�������"�� ��� �!$0�� �� $�3�$�" "�5!� $�� ��"" 0� "��/� ��)$��� �� ���� "�5!� $�� 0� ����"�����/. ( ��� /��� �� �����$����� )�*)! �) 0� ��� ������ � ��� $�� 0� �!�2��/��) 0� ��� �$�!�������" �E������ ���"���/ ��� ���� �� ��� � )��� ��� ���5!���"�� 2� ����� � �!� ��������� ��� $�"" �!$0�� �� "�5!� ���� �� ��� 0�/�����/ �� ��� ��� � � ��)��/ ����� ��""�2��/ ��!���� !//���) 0� :��� <!� ������.

,���� ��� )� �$������� �� % ���� �"" $�3�$�" "�5!�� ��� @�� ���� ����� ��!���� ���� �� �������)"� �"� ���/ � $�3�$�" "�5!� 2�� � ��������� "��/�� �!$0�� �� �)/� ���� ��� ��� �"���)� �����) 0� �$� ������!"� ���� "�5!�� !���" �"" �)/� ��� �����). '� ��� � ��) ����� ��� �"/�����$�������)"� ���� �� �))������" "�5!� �� ��)�� �� )� �����/ �8�� �� ��� ��2 "�5!� )�� ��� ����"�� 2��� ��� ������!"� ���� "�5!� ��� $��� ���� �2�����).

����� ��!���� ��� ����/ �$� �� � � �� ��)�� �� ���"� ��� ���!�H�!��!� ��� ��� ��� ���0"�$ ���������$�3 ���� 0��� )���0�) 0� ��! 7�� ���". ����=� ��) ������� �� �". ������F �� ������ �� ��� ������ � )� ��0�)����� ���� ��!���� ��� ��� 0��) �� �� ������" )� �$������� ���� �"" $�3�*$�" "�5!�.

�� �. +���)��� �� �".

Page 9: A branch-and-bound algorithm for the resource-constrained project scheduling problem

' (���������(�� �� �����

4�� 0��� �*��)*0�!�) �"/�����$ !� � ��$�*�������) 0��� ���/ ��$� ���� �� /������� �"" � ���� ��)!"�� � ���� ��������/ ��� ��� � ���� 2�"" "��)�� �� ����$�" �"!����. '�����"�� ��� 0��� ���/ ��$� ����) ����! ���/���*� ���� ��)!"�� 2�� � !� )�2� ��� ��� � �� � ���)���0"�. ( ��� !"������ �!� �"/�����$ )�� � �3�"� ��"� �$�!�� ��� "�2�� 0�!�). '�*���)� ��� 0�!�)*�������) �����$��/ �� ��)� � � !��!" 0�*���)! � �� ��*������ �����/����� �� ���5!�� ���� ���� �� 0� ���"��) ���2�� �� ���II0��� ���/JJ ���� �� ��� �"/�����$. 4�� ��� � �� � � �!����� ��)! �) 0��))��/ �������� ���� $!� 0� ���@�) 0� �"" � ���� ��)!"� ���� �� 0�)���"���) ���$ � /���� ��)�� ��) ����!/� ��� ���"� ����� �� � �$�"� "���*���� )�$���� � ���.

&'( ����)� ��)���

4�� 0��� ���/ ��! �!�� � 0��) �� � �$�"� ��$�*�������) ��)!"� /�����*���� ��$�� 2�� � ��!"� �� � 0����� ��� � ����. #� � ��)� � �� ��� ��� ����� � �� ����) � �� ���� � ������ � � � �� �� !����� )�$���� 2�� �

!��5!�"� )����$��� ��� �� �������� ��) � � ������ �� ��)!"�) ��) ���* ��)!"�) � �������� ���� ����"�. '� ��)�� �� �$�"��� ��� �������� 2� 2�""2���� ����� �����) �� � �������� �� .� 2������� ���0"�. ,��������/ � ��* �@ ��)!"� � �5!���"��� �� ��)! ��/ ��� !����� )�$��� !���" �"" � ���������� �����������"� ��)!"�). ��� $����) �� )�$��� ��)! ���� � ��� ���"� �*���� �� �������� �����/����� �� ����� ��)� �� ��� ��� � ����. ;�� � �� /��*���"� ��2����� �������� �����/����� �"��� )�� ��� ��)!"� �"" � ���������$� � ������� �))������""� ���� �� 0� ��)!"�) 0� �� �3�"� �� ��/�$��� ������� ���� ��$� �����0"�.

(� ����� ��)� � �� ��� ��� � ���� �� !� ��)!"�) � ������ � � � � ��� � ���� ��) �2� ��") ��)� ��� /�������). +������/ ��� "��� ��") ��)� 2������� ��) ��� ��/�� ��") ��)� 2��� ����� ��� 0��� ���/ ��$� ��"�� �� �����""�2��/ �$�"� ��)� /��������� �!"�.

����� ;���� � �� �� ���"��� ���� ������ 0� �����/ �������� �� ������.����� '� ���� ��� ���"��� ���� �� � 0� �����/ ��������� � ������.

( �$�"��� �� �@ ����� �� ��� 0��� ���/ ��$� ��2 ��5!��� ��� ��2���� �2� 5!�����. 4�� @�� 5!����� )��" 2��� ��� ���0"�$ �� 2�� � � ������� � � � ��� �� ���� �� ��)� �. 4�� � ��) 5!����� � ��2 ��� ���"��� ������$� �� � ��!") 0� �� ����) �� ����. %� 2�"" @�� )� ��0� ��� ��� � �� ��� ������ � ��) ���� )����� �� ���"��� ���� ��$� �)1!�$��� ��� ��� ��/�� ��")��)�.

&'* "������� �������

(� ��)� �� �� � ������ �� 0� �"� ��) ��� 0��� ���/ �� �� � ���� ��) +�������. ��� ��� ��$� 0���/� �� � ��� �� ���� �� )� ��0� ��� �����0!�� $��� "��"�. %� ��"� �!$� ���� ��� �� �� ���*)�"���) � ������� � � � ��� � � ���*

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 10: A branch-and-bound algorithm for the resource-constrained project scheduling problem

�$��� !0�� �� ��� �� �� ���� � �������. (� � ������ � � ���� �"� ��) � ��)*��/ �� ��� ��""�2��/ �!"��

6���� � � � � � ���� ! � ���� ��� � ���� 2���� ���� � ��� ��)!"� ��$��2�� � � )�@��) � ���� �� $��

� �� � � ��� ������.

4�� ��� @�� 0��7�� 0� �"� ���/ �� � ������ 2�� � ���@� �$� � ��)��� ��������� ���� ���)�$"�. '� /�����"� 2� !� ��� $���$�" ���� ������ �.�. ����� �� ��)��� ��������F ��� $��� ���� 2� !� ��� 2�"" 7��2� @�� ���" ���� ��"�2�� � ���� �� @�� �����������/ ��� �����0"� 2��� ��� ��2�� ��$�����/���0"� ��"!�. %� 2�"" )����� ��� � ������ ���� �� � � ������.

(���� ��� )� ������� �� ��� �"� ���� �!"�� 2� ��� "��� 2��� ��� ���0"�$ ����2 �� �)������ ��� �� �� ���*)�"���) � �������. �� �!��� 2� �� �"2�� ��

� � � ��� �� � � ���. 4��� ��2����� � ��� ���0"�� �� � �����/ �� ��0���������� � ������ $�� "��) �� � ���*� ���� ��)!"�. %� 2�"" ��������� ��2 ��2 ���� ��� ��� �� �� )�"���) � �������� � � �� ���!�� ��� ������ �� � ���� ��)!"� $��� "��"�.

4�� ��� �)�� � ��) !��� �������" ������ � ��� ���� ��� ���"��) 2�������� �������� �����/����� �"/�����$ �E� � ��� ���"��� � ������ ���� ��$� ���""�2. &�� ������ 0� ��� $���$�" ���� ��$� �� � �� ��"� ��� ��� �)�� � ��*������ ��� �� 0��2��� � ������� � �� ����� ��) � ��� ���)���)�

������ �� $�3� �� ����

��� � �� � ��� �� � ���

<���� 2� ���� !�) ��� ��������� ���� ��� $�3�$!$ �� ��� �$��� �� � .&�� �!����� ������ 0� ��� $���$�" ���� ��$� �� � �� �))������""� ���!� � ��*������ ��� ���)���)�

������ �� $����������

����� � �� �� � � �� � � � � �� ���

��������� � ��� � �� � � � ��� �����

4���� �0���!"��

������� ������� �������

( ��)!"� � �� 0� ���!��""� �)����@�) 2��� � �� �� !����� )�$���� 2������ � )�$��� �� ������ ��� �������)��/ ���� ��$�� �.�. �� �� ����. 4��1!��@� ��� �������� ������ ��) ������. 6"���"�� � �� ��"� 0� � ���� �� ��� �""� ������� ������ � ��� �)�� � �������� �� ��!9 ���� ���!� � ��� ��� ���*���� � "���*����. 4�!� �� ��� � ���� ��)!"� �� ��� �)������

�� � ������ ���

��") ��� �"" � � �. '�����"�� �"" ��)!"� �������/ ��� ��)����� ��� � ����.4�� $������� ��� ��""�2��/ )�@������ �� ��� �� �� ���� ��) +�������

� ������� 0��) �� ��� ��� �)�� � ��) ���!� � ����0"� ���"��� ���� ��$��

� � � ��� �� � � � � � ��� ������� � �������

��� �. +���)��� �� �".

Page 11: A branch-and-bound algorithm for the resource-constrained project scheduling problem

4�� $��� ���� � ���� � ������ � � ��)�)��� ��� 0��� ���/ �� � ��� �)�� � �������� �� "�2 "� 7 �����0�� � "��� ���� �� ��� � ������. '� � 2���� $��*������/ ���� ��� ��)����� $�� ��� ��") ��� � ���� � ������ 2�� � �� 0���)�"���). 4�� )�@������ �� ��� �� �� ���� ��) �"� ��0"� � ������� � � �

����������� �"� 0� ����������) � ��""�2 0� ���)����/ ��� �$�"�$������ ��� � � �

�� ���� ��) !�*�"� ��0"� � �������� � )�"���) � ������ � ��$��� !�*�"� ��0"� !���" 2� 7��2 ���� ��� ���!� � ��� ��� II�����)�)JJ 0� )�"����/ ��� 0��� !�) 0� �$� ����� � ������. 4�� ��""�2��/ "�$$�� 2�� � � ���$�""������� �� (����)�3 (� 1!��@� �!� ��� � �� ��� �� � � �

.

)���� "� ,�- �� �� � � �)� �����) ����- �)��� �� � ���)������ �������� �)�� � � ��� �� � �����- � � �� � ���� � � ������ ��)�����.

&'. /����� ������

4�� � ������ �"� ���� �!"� �$�"�� ���� �� ��� ��)!"� � )���"���) ���$ � ��� ��)����� �� � ���� $!� ��") ��� �"" � � � � � ���. �!� ����� $�/�� 0� ���� ��))�"���) � ������� � � � � ��� � � � ��� ��� 2�� � ������ � ���� ��) 2�� � �!")��������� ���0"� 0� ��)!"�) �� � ��$� ���"��� ���� ����� ������ 0� ��� ����*�/����� �"/�����$ �� ����!/� �� �3�"� �� ���� ��$� ��/�$���� �� � ���� ����0� �$� �"� ��0"� �/���. <�2����� 0� !��/ � �$�"�� ��/!$�������� � �� �������� �� &�$$� �� �� �� 0� ��2� ���� ��� ����� ������ �� ��� ��!"���/ ��)!"� � � ����.

)���� $� , �� ������ ��)����� ����� ��� �� � � �� � � �)� �����) ����- ���

���� �� ������� ���������� � �)� ��� � � ��� � � � ��� ����� ����� ����.

'� ��""�2 ���$ ��� � ������ �"� ���� �!"� ��) ���$ &�$$� � ����� �� ���� ���� ��)!"� )���"���) ���$ �� �� � ������ 2�� � 2� ���� �� � �� �������"��� ���� �� ��$� ����. 4�� �$�"�� ���� ��� "� 7 �� ��� ��$� � � ���� )����� ���/� �� )� ��)��� ��)� �� � ���� "��) �� �� � ���� ��)!"�. �!�����*$���� 2� �� �� "!)� ���� ��� ���)� ��� �� �"" � ������� ���� �� ���� ������ $!� �"���)� 0� ��)!"�) �� �. 4��� �0�������� �� 0� !�) �� �����"2��.

&�� ! @�� ���!�� �� ��� ������" 5!����� �� ��2 �� �� ���� ��� ���"��� ������$� �� � �"� ��) � ������ � � ������ �� 2� 0��� � �� ��� ��/��. ( @�� �$�"��"��������� � �� )�"�� ��� � ������ 0� � ��/"� ��$� !���. <�2����� 2� �� )�0����� 0� �0�����/ ���� ��� ��!"���/ ��)!"� � �� ��"� 0� � ���� �� ������ ���� ��� �)�� � �������� �� ��� "�2 "� 7 �����0�� � "���*���� �� ��� �"� ��)� ������. ;�� � ��� � ������ 2�"" 0� )�"���) 0� �� "��� ��� ��$� !��� ��) 0�* �!� �"" ���)� ��� ��� ��)!"�)� ��� @�� �� �� 0� �!"�) �!�. 4�� � *��) �� ��5!��� ���� ��� "� 7 �� �"" � ������� �3 ��� � � ��!9 ���� �� ��� "����� �����. 4�� �� ��"� 0� ��� �� �� ����� $�� �� ��� �$�"����� ��$� ���$� � ������ ���� ���� ���!� � 2��� �.

&�� �� �� �� � � � ��� � � )����� ��� �� �� ���!� � ��5!���) 0� ��� ������ �. 4�� �� �� � ������� 2�� � ���� ���!� � 2��� � ������ � ��) @�������� ��� !����� ��)!"� ��$� ���� �� ���� 0� )�@��) �

� �� �� �� �� � � � �� ��� ��� ��������� � ������

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 12: A branch-and-bound algorithm for the resource-constrained project scheduling problem

'� � �� �� � ��� �$��� ���� ��� ���"��� ���� ��$� �� � �� 0� �)1!��) 0� �����/

��������� �� $��� �� �� ��

�������

%� �� !� ��� �$� ��/!$��� ��/����� 2��� &�$$� � �� ��*�)1!� ������"��� ���� ��$� �� �"" ���� ��) )�"���) � �������. (� ��)� �� 0����� ���"���/ �������� �����/����� ��) 0��� ���/� 2� ��

������ �� $��� �� ����

������� ��� �"" � � � � ��� � � � ����

<���� 2� ���� !�) ��� ��������� ���� ��� $���$!$ �� ��� �$��� �� � 8���.'� 0��� ��� �� ��� �� � �� �� � �$��� ���� ��� ��)� ����� "��) �� �� � ���� ��)!"�. �0���� ���� ��� �)1!�$��� �� ��� ���"��� ���� ��$� 2�"" "��) �� ���$��� )�$��� ��� �"" )�"���) � ������� � ��� 2�� � ��� � ����� �.�. ��� ����� ������� 2�� � ���� 0��� II���)"�"�JJ )�"���).

4�� �� � ���� ��� "� 7 �� �����) � � ���� ��$��� ������ �� )� ��)�����)� �"� �""�2 ! �� ���"� � �$�"� "���*���� )�$���� � ���. '�� ��� ��� ����� ������ � � � � ��� 2��� �� � � ��� ��)����� ������ � �� � ���� ��")� �.�. �� � �� ���!� � ��) ��� �)�� �*����0"� 0� ��)!"�) � ���� �� @���� ��� "�������� �� ��$� ����� ���� ��)� � ����� "��) �� �� � ���� ��)!"�.

&'& �����) ������ � �� �� ������� � �)� ����)� ��)���

4�� ��� � ���� � �������) �� )����*@�� ��)�� !���" � "��� ��)� � /�������).4�� ������ 2������� ��� �� �� ���� ��) �"� ��0"� � ������� 0� �$� �$�����.�. �� � � � ��� � �. 4�� "��� ��)� �������� � �"!���� �� �"" � ������� ��� ��)!"�). 4�� $�7���� �� �� ������" �� �$�����) ��)!"� �� �� �!��� !�)� ��2 !���� 0�!�). �� 7��� 7��/ � !� 2��� � "��� ��)� � ��� ��) ��2��� �� �� ������ � �� 0��� )��� ��)� �.�. 2��� ����� �� 0� �$� �$������ �$� � ������ � � �.

4�� $���$!$ ���0"� )���� �� ��� ���� � 8��� ��) � �0�����) �� �"" � *������� ��� ��)!"�) ����!/� �������� �����/����� �� ��� ���� ��)�. 4��$�3�$!$ )���� �� ��� ��� � ���� ���� �� � !� �� ��� 2��� �� � ��� ��)2��� 0��� ���/ �� ��� ���� ��/�� �)� �� ��� ���� �� ��� ��""�2��/ 2��. ;������/�� ��� ���� ��)�� 2� �� ������""� �� $�� )�"�� ��� � � �������. ( )�"���)� ������� ��$��� !�*�"� ��0"� �� "��� !���" �$� ����� � ������ � ��)!"�)��.�. !���" 2� �� �� "!)� ���� ��� ���!� � ��� ���� ��"���) 0� )�"����/ � *�������� �� 0��� !�)� 2� $!� ���� ��)!"� �$� � ������ �� 0� 7��� 7��/2�!") 0� ��������). K�3� 2� �� �� $�� 0��� � ��� � ��$� �� ��� ��/��0����� 0��� ���/ � ��/"� ��$� �� ��� "���. �� �����!��/ �� ��� 2��� 2� $����� � � �������� �" 2��� �� )���� �� ���������� � ��.

4�� ��$�*�������) 0��� ���/ ��$� �� /������� �"" � ���� ��)!"�� �.�.�� � � �� � ���� ��)!"�� ���� ��� ��� � ���� ������ � "��� ��)� � �� 2�� ��"" � ������� ��� ��)!"�) ��) �� � ����� ��� �"" � � �. 4�� �$�"������������� �� ��� 0��� ���/ ��$� ��""�2 ���$ ��� �� � ���� �� � � )�$�������0"� �� �� ���� �� � �"� )�$��� ����0"� �� ������ ���� �� ����F 2� �� ��! ����! � � ���� �� ��� ���� �"��/ 2�� � ��� � ��$��� )�$��� ����0"� ��) ������ )�$��� ��� �����!�!"� ��)! �) !���" � � �0�����). '�����"�� �"" �$*�"��� ��)!"� ���� ��� ����! ��) ��� � ����.

��� �. +���)��� �� �".

Page 13: A branch-and-bound algorithm for the resource-constrained project scheduling problem

* &���������� ��������

0'( ,���������� � �)� �� ���)�

4�� 0��� �*��)*0�!�) �"/�����$ �� 0��� �$�"�$����) �� 6�� !��/ ��� �������� ���/��$$��/ "�0����� '��� ;����� ��) '��� ;������ 2�� �!����� ��� �$�"�$�������� �� ���� ��� � �"/�����$ ���� ���"� �������������/����� �� ��� ��)� �� ��� ���� �&� :���� �����. 4�� 0�� �����/������"/�����$ !�) �� ;����� � � ������� �� ��� (6*� �� ������ � �"/�����$ ��G�� <������� 7 �� �". ������.

4�� $�� �$������� ����!�� �� ��� ;����� "�0���� ��� ��� �!�)�$����")��� ���� ! � � ����/�� )�$��� �����0"�� ��� /����� �������� !��� ���������0"� ��/����� 2��� �������)��/ )�$��� ��)! ���� �!"�� �./. "����� �������� �� ����/�� )�$��� �����0"�� ��� ��� �����/����� �"/�����$� ��� "�� ��� )�@���/ � ��� � �0��� ���/� ��$�� ��) ��� !����� ��� ������0"�� ���� ���� ��� �!��$��� �""� !�)��� !��� 0� 7��� 7��/� ��� ����� � ���)�@������ ��) �����/����� �� ��������. ���) !��� ��� /����� )��� ������) �"/�����$ ��!�) �� ;������ ��� ;������ "�0���� �����)� �� �01� �$�)�" ��) �"/�����$ ���� �� �"����� ��� )���"��$��� �� ��)!"��/ ���"� �*����. ��� ����� �� ;������ �� "!)� "�� ��� ����������/ � ������� ��)���!� � � 2�"" � �� ����) �������� ! � � ��� �)�� � �� ���!� � ��������.

���)� ��� !����� ��� �$�"�$�����/ 0� 7��� 7��/ �"/�����$ ��) ��� /�*���� �����/����� $� ����$� 2� ���� !�) ��� ��""�2��/ ����!�� �� ��� "�*0�����. 4�� )� ���� �����0"� �� ��� ���������) � ����/�� )�$��� �����0"�.4�� ��� �)�� � �������� ��) ��� �������)��/ ������ � ��� ��� ���"��)����!/� ��� 0!�"�*�� "����� �������� �����)�) 0� ;�����. 4�� ���!� � ��*������� ��� !��� �������" ������ � ��� ��) ��� ���!�H�!��!� ��� ��� ���*��)�) 0� ;������. ��� ��� �)$���������� �� ��� ��$����" ��) ���!� � �������� 2� ���� !�) ��� � ������ ��) ���!� � "�� �� ;������. 4��)�1!� ���� � ������ ���� ��� � �$�"�$����) � � /����� )�1!� ���� ;����� �������� �� ����/�� )�$��� �����0"�.

4�� "�/� �� ��� 0��� �*��)*0�!�) �"/�����$ )� ��0�) �� ;� ���� � ��0��� ���) �)�). �� !��/ ��� ;����� ��� � ���� "��� ��� �$�!�� �� �)���5!���) ��� ��� 0��� ���/ ��) 0� 7��� 7��/ ���� �� 0��� 7��� "�2.

("" ��!"� �������) ��� �!� �"/�����$ �� ��� ��""�2��/ ��0"� ���� 0����0�����) �� � :����!$ :��H� :6 2��� %��)�2 K4 �. � ��������/���$.

0'* 1��� ����

%� ���� ����) ��� �"/�����$ �� ��!� "��/� �� �� 0�� �$��7 ���0"�$ ����2��� ���$��� �""� /�������) 2��� ��� ���0"�$ /�������� :��,�� �>�"� � ���".� ������ 2�� � �""�2 �� �� ��� �����" �����" ����$���� ���� ���� ������ ��!"���/ ���0"�$ ����� ��

� 4�� ��� �� � �������� �� � ��)� ��� ��� �����/� �!$0�� �� �$$�)����! ��� �� �� � ������ ��) � � $��!�� �� ��� �$�"�3��� �� ��� ��� �*)�� � ��������.

� 4�� ��� ���� ���� � �2 � � �� ��)� ��� ��� �����/� ��� ����/� �� ���!� �

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 14: A branch-and-bound algorithm for the resource-constrained project scheduling problem

��5!���) �� ��� � �� � ������. '� ��7� � ��"!� �� � �� ����� � ������ ��5!�������� ���!� �.

� 4�� ��� ���� ���� �) �� � � �� )� ��0� ��� �����/� ��/���� �� ��� ��*�!� � ��������. ( ���!� � ����/�� �� ��)� ��� $�3�$�" ��/�����2�� � ��!"� ���$ ��� $���$�" ����0"� ���!� � ����"�0�"���� �.�. � !��"��5!�" �� ��� $�3�$!$ ��5!���$��� �� ��� ��/"� � ������. ��� � ���!� �����/�� �� �� ��� ���"��� ���� ��)!"� )�� ��� ������ ��� ���!� � ��L� �.

4�0"� � ��2 ��� )����"�) ���� ������ �� ��� ��� ��� 2�� � ��� �""� ��)�� ��� ���1� � ��)!"��/ ���0"�$ "�0���� :;:&'� �>�"� � ��) ;��� �������DF >�"� � �� �".� �����. 4�� �!$0�� �� � �������� ���� )�� ��� �� "!)� ���@ �����! ���� ��) ��) � �������. ("" ��� ���/ ��$� ��) ���!� � ��5!���*$��� 2��� ���)�$"� )��2� ���$ ��� �� ��� � � � � � �. 4�� @�� ����� ��� ��2��� � � D � ��) � � ������� ��� ���0"�$ ������ ��� ����� � ��� �� � �$0������� �� ��� ����� �����" ����$���� ��"!� ��2� �� ��� ����� ��/��*$�� �"!$� ��) ��!� ���*$�� ��2 �� ��� ��0"�� "��)��/ �� � ����" �!$0���� �= ����� �. 4�� "�� ��� ��� 2�� � ������ ���0"�$ 2��� �� � ���������� 0��� /�������) 2��� )�E������ $��� )�9 !"� ���!� � ����/�� ��"!�F�/���� ��� �� ������ � ���0"�$ ����� � ��� �� � �$0������� �� ��������0"� ����$���� ��2� �� ��� "�� � ��2 �� ��� ��0"�� ��!"���/ �� � ����"�!$0�� �� D ���0"�$.

0'. ��������� �� ����

%��� �����/ �� �"�� � /���� ���0"�$ ����� �� 2� ���"� �!� �"/�����$ �����2��) ��) 0� 72��) )��� ���� ���������� �� ���� �. ( ���0"�$ �� 0��"��) �� 0� 72��) ������ 0� �$�"� �������/ ��� ���1� � ���2��7 ��) ��*�"���/ ��� �"/�����$ �� ��� ��!"���/ $�����*���2��7. ���2��) ��) 0� 72��) ��)!"��/ $����) ���� ��� ����� � 0��� )� !�) 0� &� ��) %�""� ��������) >"��� ����=�. %��"� �� ��)!"��/ )��� ���� � !�����$"� !������ ��� �""��� ���0"�$ �$� ����� � ��� ����� �� �"�� �� ��� )��� ���� ���� �� ��������. '��!�����"�� � 0��� �*��)*0�!�) �"/�����$ 2��7 0�� �� ��� )�9 !"����� �� ��� ���0"�$ �0���"��� 7� � ���)"�) �� ��� 0�/�����/ �� ��� ��� ���� � �����2�� � �"!���� ��� ��� )�9 !"� !0���0"�$ �� �� 0� ��)� �����)$��� ��$� �� )�E����� 0��� �� �� ��� ��� � ����. 4�� $��� ���� �� ���

����� "� 6���� ������ �� ��� ��� ��

4�� ;�8� ��3�) ����$���� G����0"� ����$������

��� ��� �� ��� � �2 ��

1� �= � � �� � � � � � �� � � � � � �.� .�� .�1D �= D � �� � � � � � �� � � � � � �.= .� .�1� �= � � �� � � � � � �� � � � � � �.� .?� .?

�. �. 1�� D �� � �� � � � � � �� � � � � � �.� .�� .�

�.= .� .��.� .?� .�

�. .� .�

��D �. +���)��� �� �".

Page 15: A branch-and-bound algorithm for the resource-constrained project scheduling problem

0���"��� 7 � ��2��) ��� 0�/�����/ �� ��� ���1� � ���� ���2��) �"�����/ ��)�����/��!F �����2��� �� ��� 0���"��� 7 � �� ��� ��) ���� 0� 72��) �"��*���/ 2��7 0��. ;�� � �� � ���) �� ���)� � ��� "� ����� �� ��� 0���"��� 7 ����)�� �� ���� � ����!��0"� �"�����/ )��� ����� 2� �$�"� ��� ��) � ��"*"�2. %� �""� ��� ��"� �� ��� �!�*��$� �� �"�� ��� ���0"�$ �� ���2��) )��� *����F �� ��� ���0"�$ ��$��� ���� ����� ��� ��$� ���� 2� ���"� ��� �"/�����$�� ��� $����� ���0"�$� ��2 !��/ ��� $�7���� �� ��� 0�� ��)!"� ��!�) ����� �� ���� � ������" !���� 0�!�).

0'& �������

4�0"� � ��2 ��� ��!"� �0�����) 2��� ��� ��$�*�������) 0��� �*��)*0�!�)�"/�����$ ��� ��� $�""�� ��� �� 2��� � � ������� ��� ���0"�$. ��� � /�����!� ��$� "�$�� �$�3 ��� ��0"� ��2 ��� �����/� �!� ��$� ���/� ��� ��� ����/� �����0"�$ �"��) �� ����$�"��� 2����� ��� ��$� "�$��� ��) ��� ��$�����/ ����*�/� ��) $�3�$!$ )�������� ���$ ��� ����$�" �"!���� ��"" ����$�" �"!������� ��� ��� �� ��� 7��2��. ��� �3�$�"�� ��� ��0"� ��2 ���� 2����� � ��$�"�$�� �� � � ��) ��.�M �� ��= ���0"�$ ����� � �� 0� �"��) �� ����*$�"��� 2����� �� �����/� �!� ��$� �� ��.� � ��) ��) � ��$�����/ �����/�)�������� ���$ ��� ����$�" �"!���� �� . �M. %����� ��� $�3�$!$ �""�2�)�!� ��$� �� �= � ��)� �?.�M �� ��� ���0"�$ ��� �"��). %� ��!�) ������� )�9 !"�� �� ��� ���0"�$ ����� � ��� ��� ��$�*�������) �"/�����$ ����/"�)����) �� ��� ���!� � ����/��. %��"� �"" ����� � 2��� � ���!� � ����/��/������ ���� .� �� 0� �"��) 2����� "� ���� � � ��)� ��� ���0"�$ 2��� ����!� � ����/�� �� .� ��� ���)���0"� $��� )�9 !"�.

%� $!� $������ ���� ��� !�����"� $�� �E� ���� �"/�����$ ��� ������0"�$ ��� 2�� � ���� 0��� )���"���) 0� >"��� ��) ; ��"" �������� +�*$�!"�$����� ��) <�����"�� ����?�� ;��� ��� �� � ��) ���/�88� �� �".����=�� ������$ 0����� �� ��� ���0"�$ �� ��) �� �"�� $��� ����� � 2����������� ��$�. ��� �3�$�"�� >"��� ������ ������ ���� ��� ����� ��� � �"/�*����$ �� >"��� ��) ; ��"" �� �"�� �"" ���0"�$ 2����� � $�3�$!$ ��$� ���D� � ��) �� � :����!$H�DD �$�!���.

4�0"� � ��2 ��� ��!"� �� �!� �"/�����$ �4*� �N�� ��� ��� "��/�� ����� 2��� D � ������� ��� ���0"�$ ����� � ��) �$���� ���$ �� ��� ��!"� ����� ��� �)!�� �� ��! 7�� �� �". ����=�� ;��� ��� �� �� ��) >"��� ��) ; ��""�������� 2�� � ���� 0��� ����) �� ��� �$� ���0"�$ ��. 4�� ��0"� ��2 ����"/�����$ �� ������ ������ �" ��)��. ��� � /���� ��$� "�$��� ��� ��0"� ��������� �����/� �!� ��$�� ��� ��� ����/� �� ���0"�$ �"��) �� ����$�"���� ��) ���

����� $� �!"� �� �3� � �"/�����$ ��� ��� �� 1�

:�� �)!�� �$�3 ���/ ���. )������

��/. $�3�� � �� � �M�

�M� �M�

4�$�*�������) �N� � .� = .� .�? � .�� �.D ==.� .�� =.�D D. ��.? .� D.

� ��.� ��.� . � D. �= DD.� �?.� . � �.�

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ��?

Page 16: A branch-and-bound algorithm for the resource-constrained project scheduling problem

�����/� ��) $�3�$!$ )�������� ���$ �����" "�2�� 0�!�) � 2�"" � ��������/� )�������� ���$ ��� 0�� 7��2� �"!���� �""� ��) �� ��� �������)*��/ 0�� �$��7 @"� �� ��� ���1� � ��)!"��/ ���0"�$ "�0���� :;:&'�. +�����)� ��� ���� ��� �������)��/ �����$����� 2� ��� ����"�0"�. %��� �$*�����/ ��� ��!"� �� )�E����� �"/�����$� ��� )�E����� �$�!��� �"�����$�2�� � ��� )� ��0�) �� ��� ��0"� ��������� $!� 0� ��7�� ���� � �!��F �0*���� ���� 2� ���� � �"�) ��� �!� ��$� ��"!�.

4�� )���"��$��� �� ��/�� "�2�� 0�!�) ��� ��� ���0"�$ ���������$�3 � ������ �� � ���� ����� � ��� �./. >"��� ��) ; ��""� ����0F ��! 7�� ��) >�!������F ��O����/ �� �".� ���=F <��"$��� ��) ; �2��)�� ���?�. '� 4�0"� � ��) ����� ��""�2��/ ��0"� 2� ��2 ��� )�������� �� �!� �"/�����$ 2��� ���� � ����� 0�� "�2�� 0�!�) ���� ��� !�����"� ����"�0"� �� ��� �������)��/:;:&'� 0�� �$��7 @"�. ( �$������ �� ��� ������$�� � �� )�E����� �"/�*����$ 2��� ���� � �� )�������� ���$ "�2�� 0�!�) �� �� �!��� ��"�$�����/�!" �� ��� )�������� ��� 0��) �� ��� �$� 0�!�). 4�0"� � ��) 4�0"�� 0�"�2 ��������� �"� �� "!)� )�������� ���$ ��� "�2�� 0�!�) �� ��! 7���� �". ����=�� 2�� � ���� 0��� !�) �� ��� ����� �!)��. ��� ��� �����)! �*0�"��� 2� �"� /��� ��� )�������� 2��� ���� � �� ��� ��� �)�� � 0��) "�2��0�!�) �� 2�� � �������) �� ��� ����$�" �"!���� �� ��� ���!� � ��"�3*����� �� ��� ���0"�$.

4�0"� � ��2 ���� ��� ��$�*�������) �"/�����$ � �$�������� 2��� �������� ��� �)!�� ��) ����� ��� $�"" �!� ��$�� �� � ����� ��� ��/��� ���* ����/� �� ����$�""� �"��) ���0"�$. ��� "��/� �!� ��$�� ��� �"/�����$ ��>"��� ��) ; ��"" ��$ �� ������$ "�/��"� 0����� ���� �!� �"/�����$.

4�0"� � �$���� ��� ��!"� �� ��� ��$�*�������) �"/�����$ ��� ��� ��� ��

����� %� �!"� �� �3� � �"/�����$ ��� ��� �� 1D

:�� �)!�� �$�3 ���/ ���. )������ )������ )����� )������

��/. $�3 ��/. $�3��/. ��/.�� � �� � �M�

�M� �M� �M� �M��M� �M�

4*� �N�� � .� ?�.� �.� ��. �.= ��.= ��.? �.�� �.? ?�.� �.D ��.= �.� ��.� ��.= �.�D ��.? ?D.� �.� ��.� �.= ��.� ��.� �.�

� D�.� ?=.� �.� ��.� �.D ��.� ��.� .��= �=D. = . �. ��.D �.� � .� ��. .=

>"��� ��) ; ��""� � �.? D�.D � � �.� ��.� � �D �?.= ?�.� � � �.= ��.� � �

� ??.? ?D. � � �.D ��.? � ��= ��D.? = .� � � �.� ��.? � ��D ?�D.� =�.� � � �.� ��. � �

;��� ���� � ==.� ?�.? � � �.? ��.= ��.D ��= �?�.? ?�.= � � �.� � .? ��. �

��! 7�� �� �".� �D � D?.� � � �.= � .= � �

� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.� ���) �� ��� "�2�� 0�!�) �� ��! 7�� �� �". ����=�.� ���) �� ��� 0�� 7��2� �"!���� �""� ��) �� ��� :;:&'�.� '$�". �� 6��� ��!"� �0�����) �� :����!$ :��H� 2��� %��)�2 K4.� '$�". �� 6��� ��!"� �0�����) �� :����!$H�DD 2��� %��)�2 ��.� '$�". �� 6��� ��!"� �0�����) �� :����!$H�DD 2��� &��!3.� '$�". �� 6� ��!"� �0�����) �� ;�KH;��� � H= � �= �<8� 2��� ;�"��� �.�.

��= �. +���)��� �� �".

Page 17: A branch-and-bound algorithm for the resource-constrained project scheduling problem

1� �� ���� �� ��� ��� �)!�� �� ;��� ��� �� �� 2�� � � ��� ��"� �"/�����$��� 2�� � ��!"� �� ��� ��� �� ���� 0��� �!0"���). 4�� ���$�� �� ��� ��0"�� ��� �$� � �� 4�0"� �.

4�0"� � ��2 ��� ��!"� �� �!� �"/�����$ ��� ��� "��/�� ��� �� 2��� �� � ������� ��� ���0"�$ ����� �. � �"" ���� ��� ���0"�$ �� �� 0��� /��*�����) 2��� $��� )�9 !"� ���!� � ����/�� ��"!� ���� ��� ����� $�""�� ��.( 2� 2�"" �� �� 4�0"� D 0�"�2� ��� ������ �� 0� ��� $��� ����� ��� �������/ )� ���� �� ��� ��� ����/� �� ���0"�$ �"��) �� ����$�"��� 2��� �$����) �� ��� $�""�� ��� ��. %� �� �"� �0���� ���� ��� �����/� )���*����� ���$ ��� "�2�� 0�!�) ��� ��!/�"� ����� ��$� � ��/� � ��� ���$�""�� ��) ����� ��� �� 2��� D ��) � � ������� ��� ����� �. ( 0��������� ��� ����/� �� ���0"�$ �"��) �� ����$�"��� /��2 ��"� "�2"� 2��� ����!� ��$� � �� ����).

+��� �� ��� ������$�� � �� ����� �3� � ��� �)!�� ��� ��� ���0"�$ ���� ��� 0��� �!0"���). %� ���� �$����) �!� ��!"� 2��� ���� � �� ��������/� )�������� ���$ ��� ��� �)�� � 0��) "�2�� 0�!�) �� �� ���� �������" ���� �� ��� ��� ��!���� �������) 0� >�"� � ��) <���$��� �������2�� ���� ���"��) ��� ������$�� � �� ��/�� ��!���� 2����� � $�3�$!$�!$0�� �� � ��) � ���������F �� ��������� �������) �� ��� ���"� �*���� �� � ����" �� ����""�" ��)!"� /��������� ��$�. 4�� $���$�" )���������0�����) 0� ��� 0�� ��!���� 2����� � ��������� � ��.�M. %����� ���

����� '� �!"� �� �3� � �"/�����$ ��� ��� �� 1�

:�� �)!�� �$�3 ���/ ���. )������ )������ )��.�� )��.���

��/. $�3 ��/. $�3��/. ��/.�� � �� � �M�

�M� �M� �M� �M��M� �M�

4*� �N�� �� .D ?�.� �.? ��.� D.� ��.� ��.� �.�� �. ?�.� �. �=.= �.� �?. ��.� �.�D ��.� ?�. �.= �D.� �.� �?. ��.� �.�

� ?D.� ?D. �.? �D.� �.� �D.� ��.� �.�;��� ���� � �� .� D�.� � � =.� �=.? ��.? �

� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.� ���) �� ��� "�2�� 0�!�) �� ��! 7�� �� �". ����=�.� ���) �� ��� 0�� 7��2� �"!���� �""� ��) �� ��� :;:&'�.� '$�". �� 6��� ��!"� �0�����) �� :����!$ :��H� 2��� %��)�2 K4.� ���) ��"� �� ���2��) �"�����/.� '$�". �� 6��� ��!"� �0�����) �� :����!$H�DD 2��� &��!3.

����� *� �!"� ��� ��� �� 1��

:�� �)!�� �$�3 ���/ ���. )������ )��.�� )��.���

��/. $�3��/. ��/.�� � �� � �M�

�M� �M��M� �M�

4�$�*�������) �N� � ?.� ��. �.� � .D �=. �.DD ��.� ��.� �.� � .D �?.� �.�

� � �.� ��.� �.� � .D �?.� �.

� ���) �� ��� 0�� 7��2� �"!���� �""� ��) �� ��� :;:&'�.� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 18: A branch-and-bound algorithm for the resource-constrained project scheduling problem

$�3�$!$ �!$0�� �� ���������� ��"� ��� 0�� �� ��� ��/�� ��!���� � ��� /�*���� �"/�����$ �� <���$��� ����=�� � ����� � "�2�� )�������� ��D.?M� �����!� �"/�����$ 2����� ��� $�3�$!$ �""�2�) ��$�.

4�0"� D ���"�� ��� ��L!�� � �� ��� ���!� � ����/�� ��� ��� ���!� ��� ��� �2 � ��) ��� ���2��7 �$�"�3��� � �� ��� )�9 !"�� �� ��� ���0"�$ ��*��� �. ��� ��� ��!� ��� ��� ��� ��0"� /��� ��� ��� ����/� �� ���0"�$ 2���� ����� !"�� ���� ������ ���� �!") 0� �"��) �� ����$�"��� ��) ��� �����/�)�������� ���$ ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� �������)��/:;:&'� 0�� �$��7 @"�. ��� �3�$�"�� "��� @�� �� ��� ��0"� ��2 ���� = .=M�� ��� ���0"�$ ����� � 2��� �� � ������� ���� 2��� /�������) 2��� � ��*�!� � ����/�� �� .� �!") 0� �"��) �� ����$�"���� ��) ��� ��$�����/ ����*�/� )�������� ���$ ��� "�2�� 0�!�) ��� ���� ���0"�$ 2� .=M. 4�� )�����2� �� 4�0"� D ��@�$ ��� ��!"� �� ���"��� �!)��� �� �./. >�"� � ���������/��)��/ ��� ��L!�� � �� ��� ���0"�$ ���� ������ .

4�� ��0"� ��2 ���� ��� ���)�� ���0"�$ ��� ���� 2��� � "�2 ���!� �����/��. ��� � ���!� � ����/�� �� .�� ��� ��� ����/� �� ���0"�$ ���� �!")0� �"��) �� ����$�"��� ����"� )� ���� 2��� /��2��/ ���0"�$ �8�F ��� ���"�2�� ���!� � ����/�� ��"!� �� .�� ��"� ����� �� ��� ���0"�$ 2��� �� � *������� �!") 0� �"��) �� ����$�"���. :��0"�$ 2��� ��� �? ������ �� 0���� ��)����)��� �� ���0"�$ �8�� ��) ��� 0�� �$��7 "�2�� 0�!�) ��� ��������� � ��� �"2�� ��/��. ��� �� � ��� 2� �� �0���� ���� ��� ��� ����/��� ���0"�$ ���� �� 0� �"��) ��$��� ��!/�"� ������ 2��� ��� ���0"�$�8� /��2 ���$ D �� �� � �������� �"���!/� ��� ��$� "�$�� � ��� �� ����).

4�� ��L!�� � �� ��� ���!� � �� ��� � �"� "���"� ���0"�� ���0"�$ 0� �$����)�� � ��� �����/� �!$0�� �� ���!� � ���� ��5!���) 0� �� � ������ ��* ����. ��� �3�$�"�� ��� ��� $���$�" ���!� � �� ��� �� .��� 2�� � $������� �� �����/� �� � � ������ ��5!��� ��"� � ��/"� ���!� � ����� ��� �"/�*����$ �� �"�� =�.�M �� ��� ���0"�$ 2��� �� � �������. ( ��� ���!� ��� ��� /��2� ��� ��"!� )��� �� ��.�M.

����� +� '�L!�� � �� ���0"�$ ���� ������

:���$. G�"!� ����$�"� )������

1� 1D 1� 1�� 1� 1D 1� 1�� �M� �M� �M� �M� �M� �M� �M� �M�

�� .� � � � �.� � � � ��.� .� =�.? � .= � . �.� .� ��.D ��. ��.� .� � � � ��. � � � =.� .� � � � ��.� � � � �.� .� � . =�.� =�.� = .= . �.� .= .= .? � . � . � . � . . . ��. � . � . � . � . . . �

�2 .�� � . � . ��. =�.� . .� .� �.� .� � . = .= ?�.� �=.� . �.� �.D ��.� .?� ��.� ?�.? D?.� ��. . �.? �.� ��.��. ==.� D�.? D=.� ��.� .� �.� �.� ��.�

� �.� ��. = . ?=.= �D.� .� �. �.� ��.��.= ��.� ?=.= ?�.� ��.� .� �.� �. ��.?�.� �D.? ?D.� ?�. ��.� . �.� �.D �=.�

� %����� � ��$� "�$�� �� � � ��).� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.

�� �. +���)��� �� �".

Page 19: A branch-and-bound algorithm for the resource-constrained project scheduling problem

4�� ��L!�� � �� ��� ���2��7 �$�"�3��� � ��� � �/��@ ��� � ���� �� �������� �2� �����" ����$����. %��"� ��� ��!"� ��� ��� �� 1�� ��)� ��� ������� ���0"�$ 0� �$� $��� )�9 !"� 2��� �� �����/ ���2��7 �$�"�3���� ���)��� ��� ��� $�""�� ��� �� � �� �� "!���.

( �� 0� �3�� ��) ����� �3�$����/ 4�0"� D� ��� ���)�� ���0"�$ � !�2��� � "�2 ���!� � ����/�� � �$0���) 2��� � ��/� ���!� � �� ���. ����3�$�"�� ��!/�"� ���7��/� ��� � .=M �� ��� ���0"�$ 2��� D � ������� ��) ����!� � ����/�� �� .� ���� �� 0� �"��) �� ����$�"��� �� "!)� �"" ���� ��*��� � ��� 2�� � ��� ���!� � �� ��� ��7� � ��"!� �� .�� ��) � ��2 ����� �2��� � ���!� � �� ��� �� .�F ��� ��0"� �� (����)�3 � ��2 )����"�) ��!"���� �� � �$0������� �� ��� ����� �����" ����$����. '��!�����"�� � "�2 ��*�!� � ����/�� �!� $��� � ������ ���� �� 0� )�1!� ���� ��) ��! "��) �� "�5!� �� ����2�� )�1!� ���� � ������� �� ���)���0"� �8�. ())������""�� ����� �����/� �!$0�� �� ���!� � ���� ��5!���) 0� �� � ������ � ��/�� ������$�"� ���7��/� ����� ��� $��� II"��7JJ 0��2��� ��� "�5!� ��)! �) 0� �� ����!� � ����. 4�� �$0���) �E� � "��) �� "��/� ��) )�9 !"� )�1!� ����!0*���0"�$.

%� �"� ���"��) �� ��2 $��� �� �!� �"/�����$ �!") @�) ��"!�$�� ���/ � 0�� 7��2� "�2�� 0�!�) 2����!� 0���/ �0"� �� ����� ����$�"���2����� ��� $�3�$!$ �""�2�) �!� ��$�. %� ��!�) ���� ��� � !� ��� ���� ����� ����� � �� ��� ��� �� 1D ��) 1� ��) ��� ��"� � ��/"� ����� � �� ������ �� 1�� . 4�� $��� ���� ���� ��� 0�� 7��2� "�2�� 0�!�)� �� �" !"���)�� ��� ���� �� ��� ��� � ����� 2�!") ��"� $��/���""� �$����� ��� ��!"� �� �!��"/�����$. ("�� �� ��$ 5!������0"� �� � ��* �" !"����� �� 0�!�) )!���/ ������ � 2�!") ��� �E �� ���$ �� �����"" �$�!������ ��$�. ��� �3�$�"��>"��� ������ �� ��!�) ���� ��� �� 0��� �*��)*0�!�) �"/�����$ ��� ��!���/��2�� �� ��� 0�!�) )� ��0�) 0� >"��� ��) ; ��"" �����0� )�� ����� ����!�2��/� ��� �� ����) �$�!�������" �E��� ��) )�� �� /�����" ��� "��) �� ���)! ���� �� �$�!������ ��$�.

%� �"� �3����$����) 2��� � )�$���� � �!"� 0��) �� �����/ ������" ��)!"�� 2�� � � �$�"�� �� ��� 2�"" 7��2� !��� �!"� )� ��0�) 0� +�*$�!"�$����� ��) <�����"�� ������. %��"� ��� !� �� ��� �!"� "�) �� �$��$�����$���� ��� �����"" �E� � ��� ��� "��/�� ��� �� 2� ������ $�""F ����3�$�"�� 2��� !��/ ��� �!"�� ��"� � ��/"� �))������" ����� � �� ��� ����� 1D �!") 0� �"��) 2����� ��� $�3�$!$ ��$� "�$�� �� �= � ��). ;�� ���� ������$�� � �� ��� �!"� 2����� �!� �"/�����$ 2� )����������/ ��) 0�* �!� ��� �!"� ����� ���"� 0� �)����) ��� /�����"������ �� ��� ���0"�$���������$�3 2��� ��0������ $���$�" ��) $�3�$�" ��$� "�/ 0��2��� � ���*����� 2� )�) ��� �!����� ���)�� �� �� �!� �!)�.

+ &��������

%� ���� )� ��0�) � 0��� �*��)*0�!�) �"/�����$ ��� ��� ���0"�$���������$�3. 4�� �"/�����$ � 0��) �� �� �"�$������ ��$�*�������)0��� ���/ ��$� ��) !� �������� �����/����� �� ���5!� ��� ��)! ��/ ����8� �� ��� ��� � �� �. 4�� ��� � �� � � �!����� ����� ��) 0� ����� ��/�� ���� ��)����� ��� � ���� ��)!"� ��) ����!/� � �$�"� "���*���� ���.

6�$�!�������" �3����$��� 2��� ��!� "��/�� ���$��� �""� /�������) ���� 0�� �$��7 ���0"�$� ���/��/ �� �8� ���$ � �� �� � ������� ��� ���0"�$����� �� ��)� ��� ���� ��� �"/�����$ �"� 2�"" ��)� ��� ��""� ��� "��/�� ��*

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 20: A branch-and-bound algorithm for the resource-constrained project scheduling problem

��� �� � �$�������� �� ����� �3� � ��� �)!�� ��� ��� ���0"�$. 4�� ��!"���� ��� "��/�� ��� �� ��2 ���� ��� ��$� ��!� ���) ������ �� ��� �"/�����$$�� 0� � !��!" ��!���� ��� �"���/ "��/� ���" 2��") ���1� � ��)!"��/���0"�$. ;!������/"�� $��� �3� � �"/�����$ ��� ��� ���0"�$ ���������$�3

���� $���"� 0��� ���"!���) �� ��� $�""�� �� ��� ��!� ��� ��. 4�� /��)������$�� � �� ��� ��$�*�������) �"/�����$ �� ��� "��/�� ��� �� � �"� ��*�������/ 0� �!� ��� �"/�����$ )�� ��� �� "!)� ����!�� ! � � ������" ��)!"� 0��) )�$���� � ��!���/ �� �3�"� �� "�2�� 0�!�) ���*� �$�!������F2��"� ���� ����!�� ����� $�7� �3� � �"/�����$ ������$ 2�"" �� ��� $�""��� ��� ���� ���� ��� )��)�����/� ���� ���� ��� !!�""� ��� ��� �� �3���) ���� �)��� ��� /�����"��) �� $�)�@�) ������ �� ��� ���0"�$ ���������$�3.%� ���� �"� ��!�) ����� ��� ��� "��/�� ��� ��� ���� ��� !� �� ��� 0��7��2� "�2�� 0�!�) ��"!� ����"�0"� �� ��� 0�� �$��7 @"� �� ��� ���1� � ��)!"��/ "�0���� :;:&'� 2�!") ��"� $��/���""� �$����� ��� ��!"� �� ����"/�����$ 2��� ���� � �� ��� �!$0�� �� ����$�""� �"��) ���0"�$.

4�� �$�!�������" ���"�� �� ��2� ���� ��� )�9 !"�� �� ��� ���0"�$����� � ��� ��� �"/�����$ )����) ���$���"� �� ��� ���0"�$ ���� ������ ��� ����� !"�� �� ��� �$0������� �� ���!� � !��"� ��) )�$��) � $��!��)0� ��� ���!� � ����/�� ��) ���!� � �� ���� ��) ���� ��� ���0"�$ �8� � ������ $�� �$������� �� ���. ( ��� ���)�� ���0"�$ ��� ���� �����) 0� ���/� ���� �� )�1!� ���� � �������� 2� �3�� � ���� ��� /������ �!����� �$*�����$��� $�� 0� � �����) 0� �� ��������/ �� ��� )�1!� ���� ��� � ����� ���0"�$.

"�� ���� �����' 4�� ����� � �� 0��� !������) 0� ��� +�!� �� ��� �!�//�$��� �����+�,� !�)�� /���� :� ���H?*� ��) 0� ��� ����)�� � #0��� ;����!�/.

������, �

�� � 3�� � � ����� (4' &�� � 0� �� � ���� ��)!"� 2�� � � )�$��� ���*�0"� �� �. %� ���� �� ����� ���� ����� �3�� �� � ������ � � � � ��� �������/������ � ������. ;�� � �� �������� ������� 2� ��"� ���� �� ��2 ���� ����$� � � � � ��� ��� �)������ �� � ������ ��").

;!���� ���� �� � ������ ��� �"" � � � � ���. '� � �"2�� ���0"� �� ������ � ������ � � � � ��� 2��� $���$�" ���� ��$� �� �. 4�� ��� � �� � �$�"�� �����"" �� ���)� ��� ���� 0��� ��)!"�) �� �� � ���� �0���!"�

������ � $�3� ��

��� � �� � ��� �� � �� � $�3� �� ����

��� � �� � ��� �� � �� � �������

( � � � ���� 2� 7��2 ���$ #5!����� ��� ���� �� � ������� � ���� 2� �� �� "!)� ������ � ������. ;�� � ������ � ������� ��� "�� ���5!����� �� ��"���") �� ����� � �� � ������ � � � � ��� ���� @���� �� ��$� �� ��) ��!$� ��*�!� � ��5!���) 0� �� 2�� � �$�"�� ���� �� � �� . 4��� ��2����� �����)� ���� �� � ���� ��� ���� �� � � $���$�" �$��/ �"" ���� � �������.

������, (! ������� ����������� �������

4�0"� ?� =� �� ��) � ��2 ��� )����"�) ��!"� �� ��� ��$�*�������) �"/�����$��� ��� ���0"�$ �� 2��� � � D � � � ��) �� � �������� ���� ����"�. ��� �� �

��� �. +���)��� �� �".

Page 21: A branch-and-bound algorithm for the resource-constrained project scheduling problem

����� -� �!"� ��� ���0"�$ /��!� ��� ��� �� 1�

,��!� :���$���� ����$�"� )��.��� �M�

� �2 ��

� �.� .�� .� � . � �.� .�� .� � . � �.� .�� .? � . � �.� .�� �. � . � �.� .� .� � . D �.� .� .� � . ? �.� .� .? � . = �.� .� �. � . � �.� .?� .� = .

� �.� .?� .� � . �� �.� .?� .? � . �� �.� .?� �. � . �� �.� �. .� � �.��� �.� �. .� � . �� �.� �. .? � . �D �.� �. �. � . �? �.= .�� .� � . �= �.= .�� .� � . �� �.= .�� .? � . � �.= .�� �. � . �� �.= .� .� � . �� �.= .� .� � . �� �.= .� .? � . �� �.= .� �. � . �� �.= .?� .� D .��D �.= .?� .� � . �? �.= .?� .? � . �= �.= .?� �. � . �� �.= �. .� � .?� �.= �. .� � . �� �.= �. .? � . �� �.= �. �. � . �� �.� .�� .� � . �� �.� .�� .� � . �� �.� .�� .? � . �D �.� .�� �. � . �? �.� .� .� � . �= �.� .� .� � . �� �.� .� .? � . � �.� .� �. � . �� �.� .?� .� = .��� �.� .?� .� � . �� �.� .?� .? � . �� �.� .?� �. � . �� �.� �. .� ? . �D �.� �. .� � . �? �.� �. .? � . �= �.� �. �. � .

� %����� � ��$� "�$�� �� � � ��).

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 22: A branch-and-bound algorithm for the resource-constrained project scheduling problem

����� .� �!"� ��� ���0"�$ /��!� ��� ��� �� 1D

,��!� :���$���� ����$�"� )��.��� �M�

� �2 ��

� �.� .�� .� � .�� �.� .�� .� � . � �.� .�� .? � .�� �.� .�� �. � . � �.� .� .� � ��.�D �.� .� .� � .�? �.� .� .? � . = �.� .� �. � . � �.� .?� .� �?.=

� �.� .?� .� � . �� �.� .?� .? � . �� �.� .?� �. � . �� �.� �. .� ��.��� �.� �. .� D �.��� �.� �. .? � . �D �.� �. �. � . �? �.= .�� .� � .��= �.= .�� .� � . �� �.= .�� .? � . � �.= .�� �. � . �� �.= .� .� � ��.��� �.= .� .� � .��� �.= .� .? � . �� �.= .� �. � . �� �.= .?� .� ��.��D �.= .?� .� = �.��? �.= .?� .? � . �= �.= .?� �. � . �� �.= �. .� �D.�� �.= �. .� D �.��� �.= �. .? � . �� �.= �. �. � . �� �.� .�� .� � .��� �.� .�� .� � . �� �.� .�� .? � . �D �.� .�� �. � . �? �.� .� .� � � .��= �.� .� .� � �. �� �.� .� .? � . � �.� .� �. � . �� �.� .?� .� �D.��� �.� .?� .� = �.��� �.� .?� .? � . �� �.� .?� �. � . �� �.� �. .� �=.��D �.� �. .� � �.��? �.� �. .? � . �= �.� �. �. � .

� %����� � ��$� "�$�� �� � � ��).� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.

��� �. +���)��� �� �".

Page 23: A branch-and-bound algorithm for the resource-constrained project scheduling problem

����� /� �!"� ��� ���0"�$ /��!� ��� ��� �� 1�

,��!� :���$���� ����$�"� )��.��� �M�

� �2 ��

� �.� .�� .� ? �.�� �.� .�� .� � . � �.� .�� .? � . � �.� .�� �. � . � �.� .� .� ��.DD �.� .� .� � .�? �.� .� .? � . = �.� .� �. � . � �.� .?� .� �=.�

� �.� .?� .� � . �� �.� .?� .? � . �� �.� .?� �. � . �� �.� �. .� ��.��� �.� �. .� � . �� �.� �. .? � . �D �.� �. �. � . �? �.= .�� .� = �. �= �.= .�� .� � . �� �.= .�� .? � . � �.= .�� �. � . �� �.= .� .� ��.=�� �.= .� .� � .��� �.= .� .? � . �� �.= .� �. � . �� �.= .?� .� ��. �D �.= .?� .� � �.��? �.= .?� .? � . �= �.= .?� �. � . �� �.= �. .� ��.D� �.= �. .� ? �.��� �.= �. .? � . �� �.= �. �. � . �� �.� .�� .� � �.��� �.� .�� .� � .��� �.� .�� .? � . �D �.� .�� �. � . �? �.� .� .� ��.?�= �.� .� .� � .��� �.� .� .? � . � �.� .� �. � . �� �.� .?� .� ��.��� �.� .?� .� D �.?�� �.� .?� .? � . �� �.� .?� �. � . �� �.� �. .� �=.��D �.� �. .� � �.?�? �.� �. .? � . �= �.� �. �. � .

� %����� � ��$� "�$�� �� � � ��).� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���

Page 24: A branch-and-bound algorithm for the resource-constrained project scheduling problem

����� "0� �!"� ��� ���0"�$ /��!� ��� ��� �� 1��

,��!� :���$���� ����$�"� )������ �M�

� �2 ��

� �.� .�� .� � ?.�� �.� .�� .� � �. � �.� .�� .� � .�� �.� .�� .� � . � �.� .�� .� � . D �.� .� .� ��.�? �.� .� .� �?.�= �.� .� .� � .�� �.� .� .� � �.

� �.� .� .� � . �� �.� .?� .� ��.?�� �.� .?� .� ��.��� �.� .?� .� � .��� �.� .?� .� � �.��� �.� .?� .� � . �D �.� �. .� �=.��? �.� �. .� �.?�= �.� �. .� �.��� �.� �. .� � �.�� �.� �. .� ? .��� �.= .�� .� � =.��� �.= .�� .� � �.D�� �.= .�� .� � . �� �.= .�� .� � .��� �.= .�� .� � .��D �.= .� .� �?.��? �.= .� .� �D.��= �.= .� .� � =.��� �.= .� .� ? �.�� �.= .� .� = �. �� �.= .?� .� ��.=�� �.= .?� .� �D. �� �.= .?� .� ��.��� �.= .?� .� � �.��� �.= .?� .� D .?�D �.= �. .� � .��? �.= �. .� ��.��= �.= �. .� =.��� �.= �. .� � D.�� �.= �. .� = .D�� �.� .�� .� � ?.��� �.� .�� .� � �.��� �.� .�� .� � �. �� �.� .�� .� � .��� �.� .�� .� � .��D �.� .� .� �=.��? �.� .� .� ��.��= �.� .� .� ��.?�� �.� .� .� � D.�� �.� .� .� = .��� �.� .?� .� �=.D�� �.� .?� .� ��.��� �.� .?� .� ��.=

��D �. +���)��� �� �".

Page 25: A branch-and-bound algorithm for the resource-constrained project scheduling problem

/��!� �� ��� ���0"�$ ����� � ���� 2��� /�������) 2��� ��� �$� ����$���������/� ��� ��0"� ��2 ��� �!$0�� �� ���0"�$ �"��) �� ����$�"��� 2����� �/���� ��$� "�$�� ��) ��� �����/� )�������� ���$ ��� 0�� 7��2� "�2�� 0�!�)��7�� ���$ ��� �������)��/ :;:&'� 0�� �$��7 @"�.

1���������

������� :� &� :��� 6� K!�1��� %: ������ ;���@�0�"��� ��� ��) ��$�*0�!�) �)1!�$��� ��� !$!"����� ��)!"��/ ���0"�$. (���" �� ��������� ���� � ���� �����

�A�8B�2� 8 C� &����� C>� ������ >�� ( ���=�� ; ��)!"��/ !01� � �� ���!� � ���������6"��@ ����� ��) �$�"�3���. +� ���� (��"��) �����$��� �������

���� 6� >��0� � C ���?�� ("/�����$ ��?� ���)��/ �"" "�5!� �� �� !�)��� �) /����. 6�$$!��* ����� �� ��� (6� �D��?���??

��! 7�� :� +��3" (� ��O����/ � K�!$��� >� :� � # ������ ��!� �* ��������) ���1� � ��)!"��/� K�������� "��@ ������ $�)�"� ��) $����). #!������ C�!���" �� ����������"���� � ��������

��! 7�� :� >�!� ; ������ ( "����� ���/��$$��/ ��) �������� �����/����� 0��) "�2�� 0�!�)��� ��� 6:;:. 4� �. ���.� ��������� �� ���0�!O 7

��! 7�� :� >�!� ;� ; ��� (� 4���"� � ����=� ( 0��� � ��) 0�!�) �"/�����$ ��� ��� ���!� �* ��������) ���1� � ��)!"��/ ���0"�$. #!������ C�!���" �� ����������" ���� � � ?��?���==

6��"��� C� &������ � ������ ��� $�P���)� ��0��� ���� ��!� ��P�!)�� "� ���0"�Q$� !$!"����.('� � ��� �� ���P�������""� ���������

6��"��� C� :���� # ���=�� (� �"/�����$ ��� �"���/ ��� 1�0*��� ���0"�$. ����/�$��� ; ��� �����D���?D

6���! R� &�0!���� � ����D� 6!$!"����� ��)!"��/ 2��� ��7 �������". '� :�� ��)��/ �� ���C���� '�����������" 6������� � �� &�/� :��/��$$��/. �'4*:��

+�$�!"�$����� #&� <�����"�� %; ������ ( 0��� �*��)*0�!�) ��� �)!�� ��� ��� $!"���"����!� �* ��������) ���1� � ��)!"��/ ���0"�$. ����/�$��� ; ��� � �=��= ���=�=

+�$�!"�$����� #&� <�����"�� %; ����?� K�2 0�� �$��7 ��!"� ��� ��� ���!� �* ��������)���1� � ��)!"��/ ���0"�$. ����/�$��� ; ��� � �����=������

+���)��� �� :� � #� :���*<!� 4 �� � 6�������� �����/����� �� ���5!� ��� ��� )�1!� ���� ��)!"��/ ���0"�$. (���@ ��" '���""�/�� � �����=����

+���)��� �� :���*<!� 4� :� � # ������ ( !���� �� �������" ��� ��� ������ � ��� ��� ��$�*��) ���!� �* ��������) ��)!"��/. '� :��1� � ; ��)!"��/ � � ��� ��)�"� ("/�����$ ��)(��"� ������ C. %�S/"��8� �). >"!2�� ( �)�$� :!0"����� ������ ��/� ������=

#"$�/���0� ; ���??� ( ������ ���2��7� :��1� � �"�����/ ��) �����" 0� ���2��7 $�)�". %�"���K�2 R��7

����� "0 �6�����!�)�

,��!� :���$���� ����$�"� )������ �M�

� �2 ��

�� �.� .?� .� � ?.D�� �.� .?� .� ? �.��D �.� �. .� ��.��? �.� �. .� �?.��= �.� �. .� ��.��� �.� �. .� ?.�D �.� �. .� � �.�

� %����� � ��$� "�$�� �� � � ��).� ���) �� ��� 0�� 7��2� "�2�� 0�!�) �""� ��) �� ��� :;:&'�.

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ��?

Page 26: A branch-and-bound algorithm for the resource-constrained project scheduling problem

#"$�/���0� ; ������ ( ������ ���� ( /!�)�) ��!� ����!/� �$� �� ��� )���"��$���. #!������C�!���" �� ����������" ���� � =���?�����

<���$��� ; ����=� ( �$�������� /����� �"/�����$ ��� ���!� �* ��������) ���1� � ��)!"��/.K���" ���� � &�/��� ���?���?�

<��"$��� � ; �2��)� 6 ����?� &�2�� 0�!�) ��� 6:;:H$�3. 4� �. ��. %'�*���� ���*������ �� >��"�!��

<��� 7� ;� 6�"�$0��� R ����?� ( ��2 �������� ���/��$$��/ ������ � �� "��/� �"� ���!� � ��������) ��)!"��/. '� 4���) %��7��� �� ��)�" ��) ("/�����$ ��� :"�����/ ��); ��)!"��/ :��0"�$� 6�$0��)/�� �>

<�����"�� %� +�$�!"�$����� #� +� �� 7 � ����=� ��!� �* ��������) ���1� � ��)!"��/�( !���� �� �� ��� )���"��$���. 6�$�!��� N ��������� ���� � ����?��� �

<�����"�� %� +�$�!"�$����� #� +� �� 7 � ������ ( "��@ ����� ��$� ��� ���1� � ��)*!"��/ ���0"�$. '� :��1� � ; ��)!"��/ � � ��� ��)�"� ("/�����$ ��) (��"� ������C. %�S/"��8� �). >"!2�� ( �)�$� :!0"����� ������ ��/� ���D

C����� 4 ���D?� (� �"/�����$ ��� ��� ���!� �* ��������) ���1� � ��)!"��/ ���0"�$. :�.+.����� ��� �!�� '����!�� �� 4� ���"�/�

>"��� ����=� ��)��� �����" �"�����/� '$������/ �������� �!"� 0��) ��!���� ��� ��)!"��/���!� �* ��������) ���1� �. 4� �. ���.� 4� ��� �" ��������� �� +��$��)�

>"��� ������ ; ��)!"��/ �� ���!� �* ��������) ���1� �. :�.+. ����� 4� ��� �" ��������� ��+��$��)�

>"��� � ; ��"" ( ����=� ����$�""� �"���/ ��� /�����"�8�) ���!� �* ��������) ���1� � ��)!"*��/ ���0"�$. 4� �. ���.� 4� ��� �" ��������� �� +��$��)�

>"��� � ; ��"" ( ������� ; ������) 0��� � ��) 0�!�) � �� �)������ ��� � �����/� ���"��) �����!� �* ��������) ���1� � ��)!"��/. 6�����" #!������ C�!���" �� ��������� ���� �?��??�� �

>"��� � ; ��"" ( �����0� 6�$�!���/ "�2�� 0�!�) 0� )���! ���� �$�����$��� � �� ���"� ������� ���!� �* ��������) ���1� � ��)!"��/. #!������ C�!���" �� ����������" ���� �����������D

>�"� � ������ :��1� � ��)!"��/ !�)�� ���!� � ��������� #9 ���� ��!���� ��� �����"���0"�$ "��. :��� �*G��"�/� <��)�"0��/

>�"� � � <���$��� ; ������ <�!���� �"/�����$ ��� ��� ���!� �* ��������) ���1� � ��)!"*��/ ���0"�$� 6"��@ ����� ��) �$�!�������" ���"��. '� :��1� � ; ��)!"��/ � � �����)�"� ("/�����$ ��) (��"� ������ C. %�S/"��8� �). >"!2�� ( �)�$� :!0"����� ��������/� ��?��?=

>�"� � � :�)$�� ����?� (� ����/����) !���� �� ���1� � ��)!"��/. 4� �. ��. �D�� ���*������ �� >��"

>�"� � � ; �2��)� 6� ;��� ��� ( ������ ��� �$��7 ����� � ��� ���1� � ��)!"��/ ���0"�$.'� :��1� � ; ��)!"��/ � � ��� ��)�"� ("/�����$ ��) (��"� ������ C. %�S/"��8� �). >"!2��( �)�$� :!0"����� ������ ��/� ��?����

>�"� � � ;��� ��� ( ����D� :;:&'� � � ���1� � ��)!"��/ ���0"�$ "�0����. #!������ C�!���"�� ����������" ���� � �D�� ����D

>�"� � � ;��� ��� (� +��3" ( ������ 6���� ����8����� ��) /��������� �� � /�����" "� �����!� �* ��������) ���1� � ��)!"��/ ���0"�$. ����/�$��� ; ��� � ����D����? �

>!$��G ������("/�����$ ��� ��������*����� ���� ���0"�$�( !����.(.'.��/�8��� ��������&� :��� 6 ������ '$�"�$�������� �� ���!� � �������� �� '&�, ;6<#+�&#� ( "�0���� ���

��� )���"��$��� �� ��������*0��) ��)!"��/ ���$. '���""�/��� ;���$ #�/�������/�����DD

&� *R� %�""� C ������ (� ��������� ��)!"��/ �� ���5!� ��� ���!� �* ���������) ���1� � ��)!"��/. #!������ C�!���" �� ����������" ���� � �D��? ��?�

&���8 :� #� �"�� C� #5!���" : ������ ��)����� �$��� )� ��T �� �! ���������� !�� ����� ���P���/�P��5!�. ('� (!��$���5!�� :��)! ��5!�� '����$���5!� '�)!����""� �D������=�

������ :� ;�$�� +� ����D� ( ��2 ������ � �� �$�!���/ ����$�" ��)!"� ��� ��� 1�0*��� ��)!"��/ ���0"�$. '� :�� ��)��/ �� ��� ��� '�����������" ':6� 6������� �

���/�88� (� �����88� G� � ���)�""� ;� ���� � & ����=� (� �3� � �"/�����$ ��� ��� ���!� � ��������) ���1� � ��)!"��/ ���0"�$ 0��) �� � ��2 $����$��� �" ���$!"�����. ����/�*$��� ; ��� � ���?���?��

��O����/ <� ; �!"8 (� ;���7 �� ���8 � ����=� ��!� � ��������) ���1� � ��)!"��/� 6�$*�!���/ "�2�� 0�!�) 0� �"���/ $���$!$ !� ���0"�$. 4� �. ��. D� � 4� ��� �" ����������� ���"��

��= �. +���)��� �� �".

Page 27: A branch-and-bound algorithm for the resource-constrained project scheduling problem

K!�1��� %: ������ 4�$� ��) ���!� � ��������) ��)!"��/� ( �������� ����� ���� ������ �.:�.+. ����� #��)����� ��������� �� 4� ���"�/�

:��� <!� 4 ������ 6�������� �����/����� �� L�3�0"� $��!�� �!���/. :�.+. ����� ��������� ������

;��� ��� ( �� � ; ��)!"��/ ���!� �* ��������) ���1� � �$��������"� �� $�)�� $�$��� ��*5!���$���. ����/�$��� ; ��� � �D�?� �?��

4�"0�� ��� :������� C< ���?=� (� �9 ���� ����/�� ���/��$$��/ �"/�����$ 2��� ���2��7 !� ����"���/ ���!� �* ��������) ��)!"��/ ���0"�$. ����/�$��� ; ��� � �����D����?�

4��/ # ������ ��!�)����� �� �������� ����� ����. ( �)�$� :��� &��)��G�� <������� 7 :� +���""� R� 4��/ 6 ������ ( /����� �� * ������ � �"/�����$ ��) �� ��*

��"�8�����. (���@ ��" '���""�/�� � �?��������%�"�8 +& ���?�� ��)�����)��/ "��� )��2��/ �� ��� 2��� ��)�2. '� 4�� :� ��"�/� ��

6�$�!��� G����� :. <. %������ �). � ,��2*<�""� ��/� �����

���� �*��)*0�!�) �"/�����$ ��� ��� 6:;: ���