ANT COLONY OPTIMIZATION ALGORITHM FOR RESOURCE LEVELING PROBLEM OF CONSTRUCTION PROJECT
Ying XIONG1, Ya Ping KUANG2
1. School of Economics and Management, Beijing Jiaotong Univ., Beijing, China.
2. College of Civil Engineering and Architecture, Zhejiang Univ., Hangzhou, China.
Abstract: Resource leveling is one of the most crucial aspects of construction project planning.
Early attempts to solve resource leveling problem of construction project can be categorized into three areas: mathematical programming models, heuristic models and global search algorithms. The primary disadvantage of mathematical programming models is that they cannot solve large and complex networks effectively. Heuristic models provide good solutions but do not guarantee optimality. Therefore, some global search algorithms such as genetic algorithms and neural networks have been applied for this problem by many researchers. This paper introduces a hybrid model combining serial schedule generation scheme (SSGS) with ant colony optimization (ACO) algorithm to deal with the resource leveling problem of construction project. This model uses SSGS to generate a feasible schedule and employs ant algorithm to search the optimal schedule from solution space. To verify the efficiency and performance of the proposed model, an example was conducted and the results were compared with that of the exhaustive enumeration. The results of the example show that the proposed model based on ACO algorithm can produce the global optimal solution by searching only a small fraction of the total search space. That means the proposed model in this paper is an attractive alternative to solving resource leveling problem of construction project and is useful and beneficial for decision-making during the project planning.
Keywords: resource leveling; ant colony optimization (ACO); serial schedule generation scheme (SSGS); construction project
1 Introduction
Resource leveling is one of the most crucial aspects of construction project planning. The objective of resource leveling problem is to minimize the peak demand and fluctuations in the pattern of resource usage.
The peak demand and fluctuations of resource are undesirable for the contractor because they can cause the following problems (Stevens 1990; Martinez and Ioannou 1993; Son and Skibniewski 1999):
It is expensive to hire and fire labor on a short-term basis to satisfy fluctuating resource requirements.
Resources cannot be managed efficiently, if the schedule demands more output per day than possible with available resources.
Existing methods for resource leveling problem can be categorized into three areas: mathematical programming models, heuristic models and global search algorithms. Little research has been done to solve the resource leveling problem using mathematical programming models (e.g. Bandelloni et al. 1994; Mattila and Abraham 1998), since the models are only suitable for small networks. Heuristic models are non-computer approaches that rely on the rules of thumb of decision-makers. Common heuristic models for resource leveling problem include minimum moment method (Harris 1978), packing method (Harris 1990), and local optimizer (Son and Skibniewski 1999). Although the heuristic models can handle very large projects, the solutions they provide still need improvement in the areas of efficiency and optimality.
To overcome the weaknesses of both the mathematical programming models and heuristic models, some evolutionary methods characterized by global search capability have been introduced for resource leveling problem. For instance, Chan et al. (1996) proposed a model for allocating resources using genetic algorithms.
Son and Skibniewski (1999) developed a multi-heuristic model called hybrid model combining the local optimizer with simulated annealing for resource leveling. Savin et al. (1996) used neural networks for resource leveling.
In this paper, we propose a hybrid model incorporating serial schedule generation scheme (SSGS) with ant colony optimization (ACO) algorithm for resource leveling problem. The ACO algorithm was proposed as a global search algorithm for the solution of combinatorial optimization problems in the early nineties (Dorigo
et al., 1991; Dorigo, 1992; Dorigo et al., 1996). As its name suggests, ACO has been inspired by the real ant’s foraging behavior. In ACO, several generations of artificial ants search for good solutions. Every ant of a generation builds a solution step by step going through several probabilistic decisions. In general, ants that find a good solution mark their paths through the decision space by putting some amount of pheromone on the edges of the path. The following ants of the next generations are attracted by the pheromone so that they search in the solution space near previous good solutions. In addition to the pheromone information, the ants will usually be guided by some problem-specific heuristic information for evaluating the possible decisions.
2 Description of Resource Leveling Problem
Resource leveling problem is the optimization problem to scheduling the activities of a project so that the fluctuation in day-to-day resource requirement is minimized while given precedence constrains between the activities are satisfied.
Formally, J= {0, 1, …, n+1} denotes the set of activities of a project. We assume that a precedence relation is given between the activities. An activity list is a permutation of the activities such that every activity comes in the list before all activities that are its successors in the precedence relation. Every activity j∈J has a duration dj. The resource requirement per time unit when activity j is scheduled is rj.
Let Pj be the set of direct predecessors of activity j∈J. Activity 0 is the only start activity that has no predecessor and activity n+1 is the only end activity. Both the start activity and end activity have no resource requirement and have duration zero.
A schedule for the project is represented by the vector (s0, s1, …, sn+1), where sj is the start time of activity j
∈J. A schedule is feasible if it satisfies the following constrains:
max( )
j k k j j j
k P s d s LF d
! + " " # (1)
where LFj is the latest finish time of activity j. The left-hand side of inequation (1) means that activity j J must not be started before all its predecessors are finished, and the right-hand side of inequation (1) means that the start time of activity j J must not be later than (LFj-dj) since the project should be finished in the due date.
The lower bound of start time for every activity j is the earliest start time ESj. So the start time sj can be determined by the following equation:
j j
s =ES +i (2)
where i is the time interval between the actual start time and the earliest start time of activity j. Obviously, i should satisfy the following inequation:
max( )
j k k j j j j j
k P s d ES i LF d ES TF
! + " # # " " = (3) where TFj is the total float time of activity j.
The objective of resource leveling problem is to minimize the fluctuation in day-to-day resource requirement which can be defined as follows (Son and Skibniewski 1999):
2
1( )
T t t
Z y
=!= (4)
where T is the project duration obtained from the critical path method (CPM) or given according to the construction contract; yt is the sum of resource requirements of the activities performed at time unit t. Let
{ | }
t j j j
A = j s < !t s +d be the set of activities which are being processed at day t, then yt is computed according to Eq.(5).
t j At j
y r
=" ! (5)
3 Serial Schedule Generation Scheme (SSGS)
We used serial schedule generation scheme (SSGS) for the generation of a schedule. SSGS is one of standard
heuristic methods for the resource leveling problem (cf. Son and Skibniewski 1999). The SSGS starts with a partial schedule that contains only the start activity 0 at time 0. Then, SSGS constructs the complete schedule in n stages, where at each stage one activity is added to the partial schedule constructed so far. In every stage g, one activity j is selected from the set of available activities!( )g , i.e. activities that have not been scheduled so far and where each predecessor has already been scheduled. The SSGS can be supplied with an activity list, i.e. an ordered list of all activities. In this case, SSGS always choose the first activity in the list that is feasible. The start time of the activities must satisfy the inequation (1). The procedure of SSGS is shown as follows:
Procedure SSGS
( )g
! : all activities which can be started precedence-feasible in stage g.
1: for g = 0 to n+1 do
2: calculate the eligible set !( )g
3: select one activity j∈!( )g
4: schedule j at the start time sj =ESj+i, [max( ) , ]
j k k j j
i k P s d ES TF
! ! + "
5: end for
In order to obtain an optimal solution, in each stage of procedure SSGS, the selected activity j chooses the start time according to the probability derived from ACO algorithm.
4 ACO Algorithm
The general idea of our ACO approach is to apply the ant algorithm for determining the start time of selected activity j in stage g when used by SSGS. In every generation, each of m ants constructs one solution by selecting start time for all activities of the project. For the selection of start time for selected activity j in stage g, the ant uses heuristic information as well as pheromone information. The heuristic information, denoted by
!ij, and the pheromone information, denoted by !ij, are indicators of how good it seems to perform activity j at time unit (ESj +i) ( i = 0,1,…,TFj). The heuristic information is generated by some problem-dependent heuristic and the pheromone information stems from former ants that have found good solutions. The main steps of ACO algorithm for resource leveling problem are described as follows.
Step 1: Generate initial solutions.
Initially, all artificial ants have a partial schedule that contains only the start activity 0 at time 0. Then the SSGS is used to randomly construct the complete schedule for every ant, which means randomly selecting start time of each activity for every ant which must satisfy the inequation (3).
Step 2: Compute the objective value of resource leveling problem.
Computing the objective value of resource leveling problem explored by each ant according to Eq. (4) and Eq. (5).
Step 3: Establish the solution pool, and find out the best solution found so far.
There are two main purposes of establishing the solution pool. The first is to reduce unnecessary repeated computation during running the algorithm. When a new solution is generated, first search the solution pool. If current solution is already existed in the solution pool, then output the corresponding objective value, otherwise calculate them according to Eq.(4)-(5). The second is to find out the best solution found so far which will be used to update the pheromone information.
Step 4: Update the pheromone information.
The best solution found so far is used to update the pheromone information. However, before that, some portion of pheromone is evaporated according to
(1 )
ij ij
! = #" !$ (6)
where ! is the evaporation rate. The parameter ! is used to avoid unlimited accumulation of the pheromone information and it enables the algorithm to “forget” previously done bad decisions. Then, for every activity j∈J,
some amount of pheromone is added to element !ij of the pheromone matrix, where (ESj +i) is the start time of activity j of the best solution found so far. This is an elitist strategy that leads ants to search near the best-found solution. The amount of pheromone added is Q Z/ *, where Z* is the objective function value of the best-found schedule; and Q is a constant, representing the amount of pheromone an ant put on the path after an exploitaion. So the pheromone information can be calculated according to
(1 ) / *
ij ij Q Z
! = #" !$ + (7)
Step 5: Compute the selection probability of start time for each activity.
The activity j determines the start time according to the probability as follows:
[max( ) , ]
[ ] [ ]
if max( )
[ ] [ ]
0 otherwise
j
k k j j
k Pj
ij ij
k k j j
hj hj k P
ij h s d ES TF
s d ES i TF p
! "
! "
# $
# $
%
%
% + &
' + & < (
))
= *) )+
, (8)
where а, β are control parameters that control the relative importance of the pheromone information and the heuristic information respectively.
In our ACO algorithm, heuristic information is defined as the relative improvement of objective function value between the current schedule and initial schedule. The initial schedule S0 is the schedule that all activities are scheduled at the earliest start time, i.e. S0 = (0, ES1, …, ESn+1). The current schedule Sij is the schedule that only activity j is scheduled at time unit (ESj+i) while other activities are scheduled at the earliest start time. Therefore the improvement of objective function value ΔZij between S0 and Sij is calculated as Eq.
(9):
( )0 ( )
ij ij
Z Z S Z S
! = " (9)
Considering the influence of negative value and the dimension of ΔZij, we define the heuristic information as follows:
max( )
if 0
max( )
0 if 0
ij ij
i
j
ij ij
ij i i
j
Z Z
Z Z TF
TF
!
" # "
$ >
%% " # "
= &
% =
%'
( (i = 0, 1, …, TFj ; j = 0, 1, …, n+1) (10)
Step 6: Construct a schedule for every ant.
In our ACO an artificial ant k chooses the start time for all activities to construct a schedule by applying the following probabilistic formula:
( ) ( ) 0
[max( ) , ]
arg max if
otherwise
k k j j
k Pj
hj hj
h s d ES TF q q
i I
! "
# $
%
% + &
' ( * ) <
+ ,. -/
= 0+ 1
! (11)
where q is a value chosen randomly with uniformly probability in [0,1]; q0 (0≤q0≤1) is a parameter and I is a random variable selected according to the probability distribution derived from Eq. (8).
In this selection mode, in fact two selections should be done. First generate a random number q uniformly distributed between 0 and 1, and comparing q with q0 that is a predetermined parameter. If q<q0, then the selection of i is done according to the first means, i.e. selecting the value of h that maximizing the value in the bracket of Eq. (11). On the contrary, if q≥q0, then i is selected according to the probability distribution derived from Eq. (8).
Step 7. Add the new solution from exploitation to the solution pool, and find out the best solution found so far. Repeat Step 4 to Step 7, till the end condition is satisfied.
5 Examples and Results
To verify the accuracy of the algorithm, a 13-activity CPM network derived from Son and Skibniewski (1999) was fitted into the prototype model. Figure 1 shows the precedence relationship of the network and Table 1 shows the relevant activity information.
In accordance with the above-mentioned steps, a computer program to implementing the searching for satisfactory solutions is designed. To reduce computation and fully make use of the convenience and performance of existing software, the writers used Microsoft Visual Basic Application for Excel as a tool to program. The network modeling, basic data input, and statistical analysis of results are implemented in Microsoft Excel, while the developed program aims to implement the ACO algorithm for resource leveling.
Parameters of the algorithm were tuned by trial and error. For each set of parameters, 10 trials were done.
The parameters were determined mainly based on the average objective value of optimal solutions found by the 10 trials, and secondly take the size of the solution pool into account. To explain the determination of the parameters, we use q0, а and β as the example, for they have great influence on the results of the trials. Table 2 shows the test results of different values of q0, meanwhile other parameters are set as follows: а = 1, β = 1, m
= 40, Q = 105, iteration number = 30, ρ = 0.1. It is obvious that the performance of the algorithm is better when the value of q0 is 0.7. Table 3 shows the test results of different combination of а and β, meanwhile other parameters are set as follows: m = 40,Q = 105,iteration number = 30,ρ = 0.1,q0 = 0.7. Obviously, the performance of the algorithm is better when (а, β) = (0, 1) and (1, 1). However, although the algorithm can always obtain the best solution from the solution pool when (а, β) = (0, 1), it won’t converge to the global optimum. Hence we recommend (а, β) = (1, 1) as the best combination of а and β.
Figure 1 The network of example Table 1 Relevant activity information of example
ACT DUR ES EF LS LF TF RES
A 5 1 5 6 10 5 6
B 10 1 10 1 10 0 3
C 10 6 15 11 20 5 5
D 5 11 15 11 15 0 4
E 5 11 15 16 20 5 6
F 10 16 25 21 30 5 4
G 5 16 20 21 25 5 7
H 10 16 25 16 25 0 0
I 5 16 20 21 25 5 5
J 10 16 25 26 35 10 6
K 5 26 30 31 35 5 8
L 10 26 35 26 35 0 8
M 5 36 40 36 40 0 9
0 0 Start
5 6 A 10 3
B 5 4
D 10 5
C
5 6
E 10 6
J 5 5
I 10 0
H 5 7
G 10 4
F
5 9 10 8 M
L 5 8
K DU
R Act. RES Name
DUR: Duration
RES: Requirement of resource
Act. Name: Activity Name Critical Path
Table 2 Test results of different values of q0
q0 0 0.1 0.3 0.5 0.7 0.9
Average objective values of
optimal solutions 6291 6328 6268 6252 6233 6249
Average size of the solution
pool 774 819 682 506 299 135
Table 3 Test results of different combination of а and β
(а, β) (1,0) (0,1) (1,1) (1,2) (2,1)
Average objective values of optimal
solutions 6269 6225 6233 6271 6276
Average size of the solution pool 417 427 299 246 217
Final parameters are set as follows: m = 40, Q = 105, ρ = 0.1, а = 1, β = 1, q0 = 0.7, iteration number = 30.
The bar chart of the initial schedule and the optimal schedule are shown in Figure 2 and Figure 3. The resource profile of the initial schedule and the optimal schedule are shown in Figure 4 and Figure 5. As it can be seen, compared with the resource profile of the initial schedule, the fluctuation in day-to-day resource requirement of the optimal schedule is improved distinctly. The optimal schedule obtained from the ACO algorithm is equal to that of the exhaustive enumeration. In addition, the average size of the solution pool is 299, which means the ACO algorithm can find the optimal schedule through searching 229 feasible schedules.
In contrast, 98,784 feasible schedules should be tested to obtain the optimal schedules by the exhaustive enumeration. Figure 6 shows the means of Z for every iteration. It can be seen that a significant convergence occurs without much fluctuation.
Days ACT DUR RES
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 A 5 6 B 10 3 C 10 5 D 5 4 E 5 6 F 10 4 G 5 7 H 10 0 I 5 5 J 10 6 K 5 8 L 10 8 M 5 9
Figure 2 Bar chart of initial schedule 6 Conclusion
Resource leveling problem of construction project is a large scale optimization problem. The existing techniques using heuristic and mathematical programming are not efficient or accurate enough for solving resource leveling problem of real-life construction projects. This paper has presented a model which can be used for resource leveling problem in construction management to improve the utilization of the resources related to the construction project. This model uses the SSGS to generate a feasible schedule and employs ant algorithm to search the optimal schedule from solution space. To verify the efficiency and performance of the
proposed model, an example derived from Son and Skibniewski (1999) was conducted and the results were compared with that of the exhaustive enumeration. The results of the example show that the proposed model based on ACO algorithm can produce the global optimal solution by searching only a small fraction of the total search space.
Days ACT DUR RES
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 A 5 6 B 10 3 C 10 5 D 5 4 E 5 6 F 10 4 G 5 7 H 10 0 I 5 5 J 10 6 K 5 8 L 10 8 M 5 9
Figure 3 Bar chart of the optimal schedule
0 5 10 15 20 25
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
Proj ect days
Resource units
Figure 4 Resource profile of initial schedule
0 5 10 15 20 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Proj ect days
Resource units
Figure 5 Resource profile of the optimal schedule
6100 6200 6300 6400 6500 6600 6700 6800 6900 7000 7100
0 5 10 15 20 25 30 35
Number of iteration
Mean of Z
Figure 6 Relationship between mean of Z and iteration
References
Bandelloni, M., Tucci, M., and Rinaldi, R. (1994). Optimal resource leveling using non-serial dynamic programming, Eur. J. Operation Res., 78(2), 162–177.
Chan, W., Chua, D. K. H., and Kannan, G. (1996). Construction resource scheduling with genetic algorithms, J.
Constr. Engrg. and Mgmt., ASCE, 122(2), 125–132.
Dorigo, M. (1992). Optimization, Learning and Natural Algorithms, Ph.D. thesis, Dipartimento di Elettronica, Politecnico di Milano, Italy.
Dorigo, M., Maniezzo, V., and Colorni, A. (1991). Positive feedback as a search strategy, Tech.. rep. 91-016.
Dipartimento di Elettronica, Politecnico di Milano, Italy
Dorigo, M., Maniezzo, V., and Colorni, A. (1996). The ant system: Optimization by a colony of cooperating agents, IEEE Transactions on system, Man, and Cybernetics Part B, 26 (1), 29-41.
Harris, R. B. (1990). Packing method for resource leveling (PACK), J. Constr. Engrg. and Mgmt., ASCE, 116(2), 331–350.
Harris, R. B. (1978). Precedence and arrow networking techniques for construction, Wiley, New York.
Martinez, J., and Ioannou, P. (1993). Resource leveling based on the modified minimum moment heuristic, Proc.,5th Int. Conf., Computing in Civ. And Bulid. Engrg., ASCE, Reston, Va.,287-294.
Mattila, K. G., and Abraham, D. M. (1998). Resource leveling of linear schedules using integer linear programming, J. Constr. Engrg. and Mgmt., ASCE, 124(3), 232–244.
Savin, D., Alkass, S., and Fazio, P. (1996). Construction resource leveling using neural networks, Can. J. Civ.
Engrg., Ottawa, 23(4), 917–925.
Son, J. and Skibniewski, M. J. (1999). Multiheuristic approach for resource leveling problem in construction engineering: hybrid approach, Journal of construction engineering and management, 125(1), 23-31.
Stevens, J. D. (1990). Techniques for construction network scheduling. McGraw-Hill, New York.