# Application of Evolutionary Algorithms in Project Management

Christos Kyriklidis, Georgios Dounias

► To cite this version:

Christos Kyriklidis, Georgios Dounias. Application of Evolutionary Algorithms in Project Management. 10th IFIP International Conference on Artificial Intelligence Applications and Innovations (AIAI), Sep 2014, Rhodes, Greece. pp.335-343, 10.1007/978-3-662-44654-6_33. hal-01391332

HAL Id: hal-01391332

https://inria.hal.science/hal-01391332

Submitted on 3 Nov 2016

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Application of Evolutionary Algorithms in Project Management

Kyriklidis Christos, Dounias Georgios

Management and Decision Engineering Laboratory, Department of Financial and Management
Engineering, University of the Aegean, 41 Kountouriotou Str. GR-82100, Greece,

c.kiriklidis@gmail.com, g.dounias@aegean.gr

**Abstract.** The paper deals with “resource leveling optimization problems”, a class of problems that are often met in modern project management. The problems of this kind refer to the optimal handling of available resources in a candidate project and have emerged, as the result of the even increasing needs of project managers in facing project complexity, controlling related budgeting and finances and managing the construction production line. For the effective resource leveling optimization in problem analysis, evolutionary intelligent methodologies are proposed. Traditional approaches, such as exhaustive or greedy search methodologies, often fail to provide near-optimum solutions in a short amount of time, whereas the proposed intelligent approaches manage to quickly reach high quality near-optimal solutions. In this paper, a new genetic algorithm is proposed for the investigation of the start time of the non-critical activities of a project, in order to optimally allocate its resources. Experiments with small and medium size benchmark problems taken from publicly available project data resources, produce highly accurate resource profiles. The proposed methodology proves capable of coping with larger size project management problems, where conventional techniques like complete enumeration is impossible, obtaining near-optimal solutions.

**Keywords:** Time Constraint Project Scheduling, Resource Levelling, Project Management, Genetic Algorithms
# 1 Introduction

Operation research and artificial intelligence have evolved along parallel lines in the last three decades, often by attempting to competitively solve the same class of real-world optimization problems and in other circumstances to show how the integration of techniques from different fields can lead to interesting results on large and complex problems [1]. Computational intelligence methods and algorithms such as evolutionary or neural programming, and more recently also nature inspired intelligent techniques, have succeed to obtain high quality near-optimal solutions to hard optimization problems, thus becoming competitive approaches in OR fields. Nature inspired intelligent methods such as ant colony optimization, memetic algorithms and hybrid particle swarm optimization, have been successfully dealt with various other optimization problems such as the quadratic multiple container packing problem [2], the dynamic strategic planning for electric distribution systems [3], the bandwidth minimization problem [4], etc. The current work proposes the use of genetic algorithms for solving effectively the well-known optimization problem of resource leveling.

The Resource Leveling Problem (RLP), also known as time-constrained project scheduling problem (TCPSP) is an NP-hard optimization problem [5, 6]. The aim of this paper is to highlight the advantages of evolutionary intelligent algorithms in resource leveling problems. More specifically, an intelligent metaheuristic is proposed based in a new genetic algorithm, in order to produce an optimal resource management profile. An important contribution of this work is the way that the proposed approach investigates the various different feasible start-time values of non-critical activities of a project, thus leading to improved resource profiles and contributing to optimal resource allocation. The paper is organized as follows:

In Section 1, introductory comments are made. In Section 2, a literature review regarding both, the resource leveling problem and the proposed intelligent metaheuristic, is provided. In Section 3, the main methodological issues are presented in order to get a better understanding of the underlying mechanisms of the algorithm. In Section 4, the mathematical formulation of the resource leveling problem is analyzed, and complexity issues are discussed. Finally, the last Section concludes to remarks and interesting points which are summarized in an intuitive manner.

# 2 Literature review

In the literature some selected studies regarding the application of several conventional and intelligent optimization algorithms and techniques on the resource leveling problem, are presented. Research work dealing with the resource leveling problem is quite extensive, as it is shown in Table 1. The given collection of papers contains a variety of methodologies ranging from dynamic programming and relaxation methods, to a number of intelligent approaches such as fuzzy optimal models, neural networks,
works, genetic optimization based multicriteria techniques, Petri nets, ant colonies and memetic algorithms.

Analytical methods such as exhaustive search (complete enumeration approaches) [7], integer programming [8], dynamic programming [9] and branch-and-bound methods have been used to search for an accurate solution. However most of these methods have many limitations. Their major drawback is that they cannot be used to solve large and complex problems effectively [6, 9], as they are either computationally infeasible and lead to combinatorial explosion in cases of large and/or complicated projects [10].

For the effective management of large projects, researchers prefer to apply heuris-
tic methods, which are successful in solving large and complex problems compara-
tively to analytical methods, although their effectiveness highly depends on the prob-
lem. Several efforts in the direction of developing heuristic rules for resource level-
ing, aiming at producing high-quality feasible solutions, have been made [11-17]. The
models also presented by Neumann and Zimmermann [5,18] are indicative examples
of a polynomial heuristic procedure for various types of resource leveling problems,
where general temporal constraints are given by minimum and maximum time lags
among activities.

In recent years, advanced computational methods like Genetic Algorithms (GAs) [6, 9, 19-26] and particle swarm optimization approaches [27, 28] have been used for solving resource leveling problems. Also, Kartam and Tongthong [29] introduced a methodology for solving resource leveling problems using Artificial Neural Networks (ANN). Also, Geng et al. [10] improved an ant colony optimization (ACO) approach, another nature-inspired algorithm, for non-linear resource leveling problems. However, potential drawbacks of these methods, such as premature convergence and poor exploitation, have attracted increasing attention from researchers and engineers, whose main aim is to upgrade their efficiency.

Finally, a few other interesting approaches to the resource leveling problem can be found, that do not fall in any of the above mentioned categories. Research by Jeetendra et al. [30] described the use of Petri nets (PNs), whereas Raja et al. [31] proposed the use of a Petri net in combination with a memetic algorithm.

Findings from the literature survey indicate the effectiveness of intelligent tech-
niques such as genetic algorithms and neural networks, in solving resource leveling
problems. Especially, in the case where new formulations of the problem at-hand are
considered, these algorithms have proven their ability to yield high-quality, if not the
optimal, solution. Literature shows the evolution of applied methodologies for the
resource leveling problem, progressing from naïve techniques to more sophisticated
ones. However, based on their weak points, ground for further development exists.

3 Resource Leveling

The project network production in the initial phase displays many peaks (maximum
resource uses) and valleys (minimum resource uses) in resource profiling diagrams.
This fact emanates from the non-uniform resource requirement when the project exe-
cution begins [32]. Two basic Resource Leveling versions are used in several studies. The fixed project duration restriction is common in both of them:

1. Reduction of the minimum and maximum resource uses, [20, 29, 32-35].

2. Reduction of resource use fluctuation from period t to period t+1 [10, 20, 24, 29, 30, 35-38].

A usual problem formulation is the following:

Let A = {1,2,...,n} be the set of the project's activities to be scheduled, where activities 1 and n are dummy activities that represent the starting and ending phase, respectively. Duration and resource requirements for these activities equal to zero. The duration of each activity i ∈ A is denoted by di. T denotes the total duration of the project. Also T is computed by CPM method, where the project network is designed as A.O.N. (Activity On Node). Precedence relations among the activities in A exist. These relations indicate which activities should be completed before a specific activity can start. The underlying assumption is that the type of relationships among activities is finish-to-start with zero lag.

Each activity i requires ri units of k (k=1,...,K) resource types per time period. If a type of resource is used in resource leveling process, then ck=1 else ck=0.

$$r(i) = \sum_{k \in \{1,...,K\}} i \in \{1,2,...,n\} c_k r_{ki} \quad (1)$$

The most often used multi-objective function in literature for the resource leveling problem uses one or blends more than one of the following seven objectives:

1. min Gf (minimization of the maximum resource usage for the project)

2. min RLI (difference between actual and desirable resource usage)

3. min StD (minimization of the standard deviation)

4. min Step (minimization of uniform resource use from period to period)

5. min R² (minimization of the squared resource usage)

6. min RIC (relates variation of a selected resource histogram to an ideal one)

7. min EV (minimum entropy)

The present GA is able to use each of the above mathematical measurements for the resource profiles evaluation.

## 4 Algorithmic Framework

The paper applies an evolutionary algorithmic approach (GA) for solving the resource leveling problem. In particular, optimization problems can be tackled efficiently intelligent and evolutionary methodologies and algorithms. In the scope of this paper, the resource leveling problem corresponds to a typical optimization task.

The standard genetic algorithm was initially proposed by Holland [39]. The main characteristics of the algorithm lie in the concept of evolutionary process. Genetic
algorithms apply the mechanisms of selection, crossover and mutation in order to evolve the members of a population, through a number of generations. The ultimate goal is to reach a population of good-quality solutions, approaching the 'optimum' region. In order to assess the quality of each member of the population, the concept of fitness value is introduced. In the case of the resource leveling problem, each solution represents a chromosome in the GA.

In Figure 1, the GA for the resource leveling problem is presented. Below, the main terms and processes mentioned in Figure 1 are explained.

<figure><img src="image_2.png" /><figcaption>Fig. 1. GA operation.</figcaption></figure>

## 4.1 Construction of the Next Generation

The first generation is formed by randomly creating feasible resource profiles. To produce the subsequent generations, the top 10% (best chromosomes) of each generation is transported directly to the next generation, 70% of the descendant generation is produced by applying the two-point crossover operator on parents' chromosomes. Finally, the last 20% chromosomes of the offspring will occur from mutation generated in the same way by which the initial population was formed. Resource profiles are generated by taking the start-time of non-critical activities contained in each chromosome and the start-times of critical activities that always remain unchanged. Then, the fitness function (e.g. RLI) is used to evaluate each resource profile.

It is important to be mentioned that the crossover and mutation processes produce the sequence for the non-critical activities start-time production. The solution feasibility depends on the non-critical activity ES-LS as well as on the correlations that has each non-critical activity with the other non-critical activities. All possible different start-time values of all non-critical activities of a project are explored and are combined on the basis of the ES-LS value restrictions and on non-critical activities correlations. In other words only
efficient solutions are produced and no efficient solution is excluded by the solution search process.

Let's denote as S: start-time (day), SP: time step (in days), SS₁: new early start value and SS₂: new late start value. After the initial population, a new restriction applies, which is a frame ± SP from the best chromosome start-times for the non-critical activities. GA applies local search around the previous generation best chromosome using this frame. SP also defines how close to the best chromosome the searching takes place, by receiving values between: {min SP = 1 : max SP = LS - (ES + 1)}.

When SP is defined by the decision maker, two new limits are set which satisfy the ES, LS restrictions:

$$ \text{for the } SS_1: SS_1 \geq ES \text{ and for the } SS_2: SS_2 \leq LS $$

These new bounds $SS_1, SS_2$ obtained from the above described process, as well as the correlations between non-critical activities, are the restrictions for the new start-time production taking place in Crossover process (Fig. 2).

The proposed technique for the investigation of the start time of the non-critical activities of a project has the following three advantages which contribute to the GA effectiveness in optimal solution finding:

* Maintenance of the optimal solutions (TOP) from the previous generation in order to be compared with the newly produced solutions.

* The restriction ± SP from the optimal solution start-time in previous generation offers the possibility for faster convergence to an optimal solution.

* The BOT chromosomes receive randomly a start-time value according to a uniform distribution in corresponding interval ES - LS for each gene. This fact releases the GA algorithm from a premature convergence in a semi-optimal solution.

<figure><img src="image_3.png" /></figure>
<caption>Fig. 2. New generation start-time production.</caption>

## 4.2 Benchmark experiments

The parameter settings of the GA approach used during the experimentation were (a) size of population set to 40, (b) number of generations set to 50, (c) best 10% chromosomes of each generation transferred directly to the next generation, (d) 70% of the current population subjected to crossover, (e) mutation in the remaining 20% of chromosomes, and (f) number of independent simulations set to 50 per criterion (parameters' values have been selected after extensive experimentation).

Firstly the proposed GA was compared with similar studies existing in literature. Exhaustive enumeration was also applied for small size problem and the proposed GA approach could identify the optimal solution for those problems. Specifically, 50 repeated runs of the algorithm were made, and in almost all cases the GA-approach provided excellent results identifying the global minimum of the benchmark projects (excluding the RLI criterion for the problem posed by [24], where the optimal solution was identified in 37 out of 50 repeated experiments, Table 1). Results in Table 1 show that in most cases the proposed approach is superior to the existing ones. The implementation of the algorithm was made in Matlab programming language. Experiments were conducted on a Pentium(R) Dual-Core CPU E5400 at 2,70 GHz and RAM 2,00 GB.

<table><caption>Table 1. Experimental results for benchmark problems existing in literature.</caption><thead><tr><td>Research Paper</td><td>Function</td><td>Optimal result</td><td>Result of Paper</td><td>GA best result</td><td>times found optimal in experiments</td></tr></thead><tbody><tr><td>[10] Geng et al. (2011)</td><td>STD</td><td>5,2034</td><td>5,6151</td><td>5,2034</td><td>100%</td></tr><tr><td>[29] Katram & Tongthong (1998)</td><td>R<sup>2</sup></td><td>885</td><td>885</td><td>885</td><td>100%</td></tr><tr><td>[40] Kim et al (2005)</td><td>R<sup>2</sup></td><td>448</td><td>448</td><td>448</td><td>100%</td></tr><tr><td>[24] Leu et al (2000)</td><td>RLI</td><td>25</td><td>25</td><td>25</td><td>74%</td></tr><tr><td>[20] Leu and Hung (2002)</td><td>RLI</td><td>11</td><td>13,09</td><td>11</td><td>100%</td></tr></tbody></table>
<table><caption>**Table 2.** Results of experiments for 5 benchmark PSPlib projects.</caption><thead><tr><th rowspan="2">PROJECT</th><th rowspan="2"></th><th colspan="3">GA</th><th rowspan="2">PROJECT</th><th colspan="3">GA</th></tr><tr><th>Gf</th><th>RLI</th><th>StD</th><th>Gf</th><th>RLI</th><th>StD</th></tr></thead><tbody><tr><td rowspan="3">P 1</td><td>mean</td><td>65,26</td><td>829,2</td><td>15,34</td><td rowspan="3">P 4</td><td>mean</td><td>61,38</td><td>1084,8</td><td>17,05</td></tr><tr><td>std</td><td>2,63</td><td>106,45</td><td>1,74</td><td>std</td><td>3,17</td><td>125,08</td><td>1,62</td></tr><tr><td>min</td><td>59</td><td>657</td><td>12,78</td><td>min</td><td>54</td><td>839</td><td>14,15</td></tr><tr><td rowspan="3">P 2</td><td>mean</td><td>44,44</td><td>697,72</td><td>9,94</td><td rowspan="3">P 5</td><td>mean</td><td>50,32</td><td>973,12</td><td>13,50</td></tr><tr><td>std</td><td>1,16</td><td>53,49</td><td>0,64</td><td>std</td><td>1,66</td><td>86,05</td><td>0,91</td></tr><tr><td>min</td><td>42</td><td>552</td><td>7,89</td><td>min</td><td>46</td><td>765</td><td>11,75</td></tr><tr><td rowspan="3">P 3</td><td>mean</td><td>62,78</td><td>877,76</td><td>17,08</td><td></td><td></td><td></td><td></td></tr><tr><td>std</td><td>2,61</td><td>70,7</td><td>1,16</td><td></td><td></td><td></td><td></td></tr><tr><td>min</td><td>56</td><td>744</td><td>14,91</td><td></td><td></td><td></td><td></td></tr></tbody></table>

# 5 Concluding Remarks

In this paper, the application of evolutionary algorithms for solving resource leveling problems was studied. The basic idea behind this work is the way that the proposed approach investigates the various different feasible start-time values of non-critical activities of a project, thus leading to improved resource profiles and contributing to optimal resource allocation. This mechanism (SP) assists the decision maker in searching efficiently the area surrounding the optimal start-time values. The proposed mutation process also assists in avoiding premature convergence in a semi-optimal solution. Experimental results are considered as near-optimal because mathematically the optimal solution cannot be found. With repeated runs one can conclude about the approximate area where the optimum lies.

In conclusion, evolutionary intelligence (GAs) proves capable of solving adequately complex optimization problems and can be proposed as an efficient and effective method for coping with large real-world projects. It is our firm belief that the optimal resource profile could be achieved through even more extensive experimentation and simulations, e.g. in a ship construction project consisting of more than 1000 activities, which is currently tested on its effectiveness. Research is also underway around the implementation of other competitive nature-inspired and hybrid intelligent methodologies on the same application domain.

# 6 References

1. Holsapple C.W., Jacob V.S. and Whinston A.B., "Operations Research and Artificial Intelligence", Ablex Publishing Corporation, 1994.
2. Soak S-M. and Lee, S.-W. "A memetic algorithm for the quadratic multiple container packing problem", Applied Intelligence, vol. 36, pp. 119–135, 2012.

3. Ippolito M.G., Morana G., Riva Sanseverino E. and Vuinovich F., "Ant Colony Search Algorithm for Optimal Strategical Planning of Electrical Distribution Systems Expansion", Applied Intelligence, vol. 23, pp. 139–152, 2005.

4. Lim A., Lin J. and Xiao F., "Particle Swarm Optimization and Hill Climbing for the band-width minimization problem", Applied Intelligence, vol. 26, pp. 175–182, 2007.

5. Neumann K. and Zimmermann J., "Resource levelling for projects with schedule-dependent time windows", European Journal of Operational Research, vol. 117, pp. 591-605, 1999.

6. Hegazy T., "Optimization of Resource Allocation and Leveling using Genetic Algorithm", Journal of Construction Engineering and Management, vol. 125, No. 3, pp. 167-175, 1999.

7. Younis M. A. and Saad, B., "Optimal resource leveling of multi-resource projects", Computers and Industrial Engineering, vol. 31, pp. 1-4, 1996.

8. Elwany, M., H., Korish, I., E, Barakat, M., A. and Hafez, S., M., "Resource smoothening in repetitive projects", Computers and Industrial Engineering, vol. 35, pp. 415-418, 1998.

9. Chan, W., T., Chua, D., K., H. and Kannan, G., "Construction resource scheduling with genetic algorithms", Journal of Construction Engineering and Management, vol. 122, pp. 125-132, 1996.

10. Geng, J., Q., Weng L., P. and Liu S., H., "An improved ant colony optimization algorithm for nonlinear resource-leveling problems", Computers and Mathematics with Applications, vol. 61, pp. 2300-2305, 2011.

11. Burges, A. and Killebrew J., "Variation in activity level in a cyclical arrow diagram", Journal of Industrial Engineering, vol. 13, No. 2, pp. 76-83, 1962.

12. Galbreath, R., "Computer program for leveling resource usage", J. Constr. Div., ASCE vol. 91, No. 1, pp. 107-124, 1965.

13. Shaffer, L., Ritter. J. and Mayer, W., "The critical path method", McGraw- Hill Book C, NY, USA, 1965,

14. Wiest, J., D. and Levy, F., K., "A Management Guide to PERT/CPM", Prentice-Hall, NJ, USA, 1977.

15. Harris, R., B., "Packing method for resource leveling _PACK", Journal of Construction Engineering and Management, ASCE, vol. 116, No. 2, pp. 331–350, 1990.

16. Antill, J., M. and Woodhead R.,W., "Critical Path Methods in Construction Practice", 3rd ed, Wiley, 1982.

17. Moder, J., J., Philips, C., R. and Davis E.W., "Project Management with CPM, PERT and Precedence Diagramming" 3rd edition, Van Nostrand-Reinhold, New York, 1983.

18. Neumann, K. and Zimmermann, J., "Procedures for resource leveling and net present value problems in project scheduling with general temporal and resource constraints", European Journal of Operational Research, vol. 127, pp. 425-443, 2000.

19. Leu, S., S. and Yang, C., H., "GA-based multicriteria optimal model for construction scheduling", Journal of Construction Engineering & Management 125, pp. 420-427, 1999.

20. Leu, S., S. and Hung, T., H., "An optimal construction resource leveling scheduling simulation model", Canadian Journal of Civil Engineering, vol. 29, pp. 267-275, 2002.

21. Huang, J., W., Wang, X., X. and Chen, R., "Genetic algorithms for optimization of resource Allocation in Large Scale Construction Project Management", Journal of Computers, vol. 5, pp. 1916-1924, 2010.

22. Li, J., H., "Combination of genetic & ant colony algorithms for multi-project resource leveling problem", Jisuanji Jicheng Zhizao Xitong/Computer Integrated Manufacturing Systems, CIMS vol. 16, pp. 643-649, 2010.
23. Zhou, L., Peng, W. and Zhang, Z., "An ant colony system for solving resource leveling problem", International Conference on Intelligent Computation Technology & Automation (ICICTA), China, pp. 489-492, 2010.

24. Leu, S., S., Yang, C., H. and Huang, J., C., "Resource leveling in construction by genetic algorithm-based optimization and its decision support system application", Automation in construction, vol. 10, pp. 27-41, 2000.

25. Liu, S., X. and Wang, M., G., "Genetic algorithm for resource leveling problem in project scheduling", Xitong Gongcheng Lilun yu Shijian/System Engineering Theory and Practice, vol. 21, pp. 24, 2001.

26. Senouci, A., B. and Eldin, N., N., "Use of genetic algorithms in resource scheduling of construction projects", Journal of Construction Engineering and Management, vol. 130, pp. 869-877, 2004.

27. Chen, Z.Y., Du, Z., D. and Zhou, H., "Research on the unlimited resource leveling optimization with PSO", Tumu Gongcheng Xuebao/China Civil Engineering Journal, vol. 40, pp. 93-96, 2007.

28. Guo, X., Li, N., Li, X., S., "Multi-resource leveling in multiple projects and vector evaluated particle swarm optimization based on Pareto", Kongzhi yu Juece/Control and Decision, vol. 25, pp. 789-793, 2010.

29. Kartam, N. and Tongthong, T., "An artificial neural network for resource leveling problems", Artificial Intelligence for Engineering Design, Analysis and Manufacturing: AIEDAM, vol. 12, pp. 273-287, 1998.

30. Jeetendra, V., A., Krishnaiah, C., O., V. and Prashanth, R., "Petri nets for project management and resource levelling", International Journal of Advanced Manufacturing Technology, vol. 16, pp. 516-520, 2000.

31. Raja, K. and Kumanan, S., "Resource leveling using Petrinet and memetic approach", American Journal of Applied Sciences, vol. 4, pp. 317-322, 2007.

32. Pang, N., Shi, Y. and You, Y., "Resource Leveling Optimization of Network Schedule Based on Particle Swarm Optimization with Constriction Factor", International Conference on Advanced Computer Theory and Engineering, 652-656, 2008.

33. Leachman, R., C., "Multiple Resource Leveling in Construction Systems Through Variation of Activity Intensities", Naval Research Logistic Quarterly, vol. 30, pp.187-198, 1983.

34. Akpan, E., O., P., "Resource smoothing: A cost minimization approach," Production Planning and Control, vol. 11, No. 8, pp. 775-780, 2000.

35. Zhao, S.-L., Liu, Y., Zhao, H.-M. and Zhou, R.-L., "GA based resource leveling optimization for construction project", Proceedings of the Fifth International Conference on Machine Learning and Cybernetics, Dalian, pp. 2363-2367, 2006.

36. Xiong, Y. and Kuang, Y., P., "Ant colony optimization algorithm for resource leveling problem of construction problem", The CRIOCM 2006 International Symposium on: "Advancement of Construction Management and Real Estate", 2006.

37. Roca, J., Pugnaghi, E. and Libert, G., "Solving an Extended Resource Leveling Problem with Multiobjective Evolutionary Algorithms," International Journal of Computational Intelligence, vol. 4, pp. 289-300, 2008.

38. Anagnostopoulos, K., P. and Kouklinas, G., "A simulated annealing hyperheuristic for construction resource leveling", Construction Management and Economics, vol. 28, pp. 163-175, 2010.

39. Holland, J., H., Genetic Algorithms, Scientific American, vol. 267, No. 1, pp. 66-72, 1992.

40. Kim, J., Kim, K., Jee., N. and Yoon, Y., "Enhanced Resource Leveling Technique for Resource Scheduling", Journal of Asian Architecture and Building Engineering, vol. 4, No 2, pp. 461-466, 2005.