An Adapted Firefly Algorithm for Product Development Project Scheduling with Fuzzy Activity Duration

Efficient scheduling plays an important role in product development project management, especially for the product development project with fuzzy activity times. In this research a trapezoidal fuzzy number is used to represent fuzzy activity duration, and an improved magnitude of the trapezoidal fuzzy number is adopted for fuzzy time comparison. Firstly, a mathematical model for the scheduling problem with minimizing the project completion time for the product development project is established. Then, an adapted fuzzy firefly algorithm is developed to solve the model. The priority value based coding method is used; the fuzzy parallel schedule generation scheme is adopted to generate feasible solutions, and the brightness comparisons are made before updating fireflies’ locations in the proposed algorithm. Finally, the performance of the proposed algorithm is presented by computational experiments based on PSPLIB benchmarks. An example of resource allocation of an electronic product development project is also used to illustrate the effectiveness and efficiency of the proposed algorithm.


Introduction
Product development has become a source of competitive advantage for many industries in recent years [1].In order to bring the new product to the market as early as possible, it is essential to schedule product development project efficiently with the constraints of time, resources, and cost.Because of the uniqueness of new product development project and the influence of uncertainty, the precise prediction of activity duration is difficult.Thus the activity duration is always estimated by experts' experiences and is usually imprecise.In resource constrained project scheduling problems (RCPSP), time parameters are considered to be deterministic.Thus traditional approaches for RCPSP cannot accommodate product development project in uncertain environment.
Some research has been performed on fuzzy resource constrained project scheduling problems.The methods in the literature can be grouped into two categories: the heuristic methods and the artificial intelligence based methods.(1) For heuristic methods, traditional critical path method (CPM), plan evaluation, and review technique (PERT) were adopted to solve project scheduling problems with uncertain times without resource constraints [2,3].Hapke and Slowinski [4] extended the known priority heuristic method for solving RCPSP with fuzzy time parameters.Bhaskar et al. [5] proposed a heuristic method for resource constrained project scheduling problem with fuzzy activity times.The heuristic method was based on priority rule for parallel schedule generation scheme, and the proposed priority rule was called Schedule Performance Index (SPI).(2) For artificial intelligence based methods, Wang [1] proposed the fuzzy beam search algorithm to determine a schedule with the minimum schedule risk, and the start time of each activity was selected to maximize the minimum satisfaction degrees of all temporal constraints.Wang [6] developed a genetic algorithm based on fuzzy set theory for uncertain product development projects.Ke and Liu [7] built three types of fuzzy models to solve the project scheduling problem with fuzzy activity duration and developed a hybrid intelligent algorithm to solve the fuzzy models.
The metaheuristics firefly algorithm (FA) inspired from intelligent social behavior of fireflies was recently presented by Yang [8].Firefly algorithm is one of the biology-derived algorithms and it was proved by Yang [9] that FA is more efficient than particle swarm algorithms when dealing with multimodal functions.The FA has also been applied successfully to nonlinear design problems [10], constrained continuous optimization tasks [11], permutation flowshop scheduling problems [12], and resource constrained project scheduling problems [13,14].Yuan [15] proposed a modified firefly algorithm to solve multiobjective constraint optimization problem, and the proposed method was applied to the optimization design of motor product family.Yang [16] developed a multiobjective firefly algorithm (MOFA) for continuous optimization, and Luna et al. [17] applied MOFA to the software project scheduling problem.
The objective of this research is to develop an effective method by adapting firefly algorithm to handle product development project scheduling problem with fuzzy activity duration times.The paper is organized as follows.In Section 2 fuzzy set theory is used to represent uncertain activity duration; the magnitude of trapezoidal fuzzy number is employed to rank the fuzzy time parameters, and then the mathematical model for the problem is described.Section 3 proposes the fuzzy firefly algorithm, which is based on priority value coding and parallel schedule generation scheme, and an example is used to illustrate the algorithm.Computational experiments on 30 benchmark datasets and an electronic product development project are conducted in Section 4. Finally, Section 5 concludes the paper, and the future research directions are proposed.

Definition on Fuzzy Activity Duration.
For most product development projects, it is difficult to precisely give activity durations.Activity durations are often estimated by human experts and confronted with vague and imprecise judgmental statements [6].Therefore, fuzzy set theory can be used for estimating the activity times.A trapezoidal membership function can represent the most general form of a fuzzy number.We represent the activity duration with a trapezoidal fuzzy number in this paper.
Various definitions for the concept of fuzzy numbers are presented in literature.In this paper two of them are used for fuzzy activity duration.
The fuzzy trapezoidal number can be represented as Ã = ( 0 ,  0 , , ), with left fuzziness  > 0 and right fuzziness  > 0, and the membership function is presented as follows: and its parametric form is described as follows: and if  0 =  0 then Ã is a triangular fuzzy number, denoted by Ã = ( 0 , , ).
In this paper, Definition 1 is used to express fuzzy activity duration, while in scheduling procedure the fuzzy activity duration is transformed into parametric form by Definition 2 in order to compare the fuzzy times.

Comparison of Fuzzy Times.
While solving product development project scheduling problems, it is required to compare fuzzy times to generate a feasible solution.For example, the start time of an activity must be greater than or equal to the maximum finish time of its predecessors.Many methods have been developed to rank fuzzy numbers.For example, Asady and Zendehnam [20] developed a method based on distance minimization.Abbasbandy and Hajjari [21] proposed a method for ranking the trapezoidal fuzzy numbers that can overcome some drawbacks of distance minimization, while there still exit shortcomings in their methods.In this paper an improved magnitude of the trapezoidal fuzzy number proposed by Ezzati et al. [22] is adopted, which is easy to handle and will overcome the above drawbacks.
For any two trapezoidal fuzzy times t and t , the improved magnitude of the trapezoidal fuzzy time t compared with t is defined as where And the improved magnitude of the trapezoidal fuzzy time t compared with t is defined as The ranking of these two fuzzy numbers can be defined as (1)   ( t ,   ) >   ( t ,   ), if and only if t ≻ t ; (2)   ( t ,   ) <   ( t ,   ), if and only if t ≺ t ; (3)   ( t ,   ) =   ( t ,   ), if and only if t ∼ t .
Then we formulate: t ⪰ t , if and only if t ≻ t or t ∼ t ; t ⪯ t , if and only if t ≺ t or t ∼ t .

Problem Formulation.
The product development project scheduling problem can be described as follows.A project can be split into  activities.Because of the technological constraints, there are precedence constraints in activities.Different kinds of resources are required when performing activities.The resources are limited, so the project is resource constrained.We assume in this paper that activities in product development project are single modes; activity durations are represented by trapezoidal fuzzy numbers; preemption is not allowed; only renewable resources are considered.The objective is to minimize the project completion time (makespan).Notation section gives some notations which are used in this paper.
The product development project scheduling problem with fuzzy activity duration can be described as follows: s ⪰ max In the formulation, the objective function ( 11) minimizes the project fuzzy makespan.Equation (12) shows that the first activity must start at the project fuzzy ready time.Equation (13) calculates the fuzzy finish time for each activity .Constraint (14) represents that activity must follow the precedence relationships; that is, the fuzzy start time of activity  should be greater than or equal to the fuzzy finish times of all its predecessors.Constraint (15) forces the total units of resource utilized to be no greater than the available resource capacity for every time period.Equation ( 16) represents that the fuzzy completion time (makespan) of product development project is the fuzzy start time of the dummy end activity.

Fuzzy Firefly Algorithm for Product Development Project Scheduling with Fuzzy Activity Duration
3.1.Coding.In the paper a firefly algorithm is adapted to solve the project scheduling problem.The classic firefly algorithm was developed by Yang [8][9][10], and it was based on the idealized behavior of the flashing characteristics of fireflies.
The flashing characteristics can be idealized as follows.
(1) All fireflies are unisex so that one firefly is attracted to other fireflies regardless of their sex.
(2) Attractiveness is proportional to their brightness; thus for any two flashing fireflies, the less bright one will move towards the brighter one.The attractiveness and brightness of two fireflies decrease as distance between them increases.If no one is brighter than a particular firefly, it moves randomly.
(3) The brightness or light intensity of a firefly is affected or determined by the landscape of the objective function to be optimized.
Let X = (  ) pop× = (X 1 , X 2 , . . ., X pop )  denote pop fireflies in the searching space.Vector X  denotes the location of firefly  ( = 1, 2, . . ., pop) in the population, and X  can be translated to a possible solution of the scheduling problem.In order to provide an activity sequence satisfying precedence relationships, priority value based real number coding method is employed to represent the firefly location.A firefly location X  is a priority value list with  entries written as X  = ( 1 ,  2 , . . .,   ), where   is the priority of activity  ( = 1, 2, . . ., ).An example of priority value representation is shown in Table 1.Consider a project with six activities numbered from 1 to 6; the number in the position  of the list represents the priority of activity .For example, the priority of activity 4 is 0.2.When decoding, the activity with greater priority value will be considered first.

Decoding.
Many researchers have concluded that the parallel schedule generation scheme gives generally better results than the serial schedule generation scheme [4].So in this paper parallel schedule generation scheme is adopted to generate feasible schedule from priority value list.For each firefly at location X  , the fuzzy parallel schedule generation scheme is described as follows.
Step 1 (initialization).The current fuzzy moment t is set to b, the set SA of activities scheduled by time t is set to , and the temporal set T that stores fuzzy time is set to .
Step 2. Compose a set ( t) of activities which have not been scheduled yet and whose immediate predecessors have been completed by time t.
Step 3. Find activity  who has the greatest priority value in the priority list X  , and for each time period from  Step 5.If the number of activities in set SA < , go to Step 2; else a feasible schedule is obtained and fuzzy completion time for the project (X  ) = C, stop.
Note that because the finish times of activities in T are all fuzzy numbers, the fuzzy ranking method called improved magnitude of the trapezoidal fuzzy number described in Section 2.2 is used to select the smallest activity finish time in Step 4.

Brightness and Attractiveness.
There are two important issues in the firefly algorithm about brightness and attractiveness.The attractiveness of a firefly is determined by its brightness.As for project scheduling, the objective is to minimize the project completion time.For a firefly at a particular location X  , if the objective function (X  ) for the project decoded by fuzzy parallel schedule generation scheme described in Section 3.2 is greater than others, then the firefly is less bright.The brightness (X  ) of a firefly at a particular location X  can be chosen as (X  ) ∝ 1/(X  ).Because the completion time is a fuzzy number, the magnitude of trapezoidal fuzzy number is used to represent the light intensity of firefly  compared with firefly ; that is The attractiveness varies depending on the distance   between firefly  and firefly .Light intensity decreases when the distance increases from its source, and light is also absorbed in the media.As a firefly's attractiveness is proportional to the light intensity seen by adjacent fireflies, attractiveness function (  ) of a firefly can be a monotonically decreasing function presented as where   is the distance between firefly  and firefly ,  is the light absorption coefficient, and  0 is the attractiveness at   = 0. We take  0 = 1,  = 1.

Distance and Movement.
Two fireflies  and  at X  and X  can be decoded to two schedules with two fuzzy project completion times.The distance between these two fireflies cannot be represented directly by the Cartesian distance.We use the difference between the improved magnitudes of these two fuzzy completion times as the distance   ; that is If   (X  ) <   (X  ), firefly  will be attracted by , the movement is determined by where vector X   = (  1 ,   2 , . . .,    ) is the new location after moving, the second term is determined by the attractiveness, the third term is randomization with the randomization parameter  and a random number rand drawn uniformly from (0, 1).
If firefly  at X  is the brightest in the population, then it will move randomly by 3.5.Algorithm Procedure.The procedure of fuzzy firefly algorithm for product development project with fuzzy activity duration is given in Figure 2, and described as follows.
Step 2 (decoding).For each firefly at location X  , use fuzzy parallel schedule generation scheme to generate a feasible schedule.
Step 3 (brightness computation).For each firefly at location X  , calculate Mag((X  )) and Mag  ((X  )) by ( 8), which will be used in (17) to calculate the firefly's brightness compared with other fireflies.
Step 4 (choosing the optimal solution).For the brightest firefly in the th generation, move randomly by (21).

Generate initial population
Obtain feasible solutions by decoding

Firefly moving by pairwise comparison
Choosing the current optimal solution t ≤ max iteration?(0, 0, 0, 0) 0 Select the brighter position from X  and X   as the optimal solution of the present generation.
If  ≤ maxiteration, go to Step 6. Else go to Step 7.
Go to Step 2.  Step 7. The optimal solution is found; output the result and stop.

An
Example.An example is used to illustrate the method developed in this paper.We consider a project which consists of nine activities and is represented by AON shown in Figure 3.The first and the last activities are dummy start and dummy end activities, respectively.Only one kind of resource is considered in this example.The total availability of the resource is 5 units in every moment.The fuzzy project ready time is set to b = (0, 0, 0, 0).The corresponding activity information is listed in Table 2.
There are three possible paths from the dummy start to the dummy end node.The paths and their lengths without resource constraints, respectively, are   Figure 4 shows the lengths of the paths.It is clear that Path 1 is the shortest.By the fuzzy ranking method proposed by Abbasbandy and Hajjari [21], the lengths of Path 2 and Path 3 are equal.However, it is evident from Figure 4 that the result is not reasonable.We use the improved magnitude of the trapezoidal fuzzy number, the magnitude of the two paths are the improved magnitude of path 2: 37 + 13 = 50; the improved magnitude to path 3: 37 + 12 = 49.
When resource constraints are considered, the fuzzy firefly algorithm is used to solve this problem.The population of fireflies is pop = 4, set maxiteration = 2, the randomization parameter in (20) and ( 21) is set to  = 0.1.The fuzzy start times and finish times of each activity are listed in Table 3.It shows the project completion time is (31, 42, 52, 64). Figure 5 presents the fuzzy Gantt chart without dummy start and end activities.The resource usage profile for all lower bounds (optimistic case) of -level activity durations at  = 1 is calculated and presented in Figure 6.

Computational Experiments
Two experiments are conducted.In the first experiment, we use the proposed method to solve benchmark problems and discuss the results.In the second experiment an electronic product development project scheduling problem proposed by Wang [1] is studied.The algorithm is coded in MAT-LAB7.8.(0, 0, 0, 0) 0 0 0 0 -In this paper the parameters for performing fuzzy firefly algorithm were set as follows: population size pop = 10, maximum iteration maxiteration = 10, and the randomization parameter  = 0.1.The computational results are shown in Table 4.
The numbers in column two show the optimal solutions for j30 problems and lower bounds for j60 problems with deterministic activity duration.The third column represents the critical path lower bounds for the problems with trapezoidal fuzzy activity duration.The fourth column represents the best solutions obtained by the proposed fuzzy firefly algorithm.It shows that the third number of the best solution for eleven problems (1,4,10,11,12,13,14,15,16,17,26) is the same as the optimal solution.For problems 7, 8, 13, 15, 16, 17, and 21, the third number of the critical path lower bounds is the same as optimal solution, which means the resource constraints for these problems are not binding [5].Our method gains the optimal solutions for problems 13, 15, 16, 17.The fifth column represents the deviations of the best solution from the critical path lower bound.The deviations of the 4 problems discussed above are zeros.The deviations for other problems vary between 1.0833 and 17.3333.It also indicates that the deviation is greater when there are more activities in a project, because the difficulty of solving j60 is greater than that of j30.

The Experiment on Electronic Product Development
Project.Wang [1] provides an electronic product development project, which consists of 7 phases and is divided into 51 activities.We add dummy start and end activities to the project, and the information of this project is shown in Table 5.The project ready time is b = (0, 0, 0, 0).There are 4 types of resources: system engineers, software engineers, hardware engineers, and supporting engineers.The resource availability of each type of resource is 5, 4, 5, 4, respectively.
The proposed fuzzy firefly algorithm is used to solve the electronic product development project.The project makespan obtained by the proposed method is (178, 235, 235, 288), and the fuzzy finish times for the solutions are shown in Table 6. Figure 7 shows the resource usage for every type of resource.The utilization rates for system engineers, software engineers, hardware engineers, and supporting engineers are 69.4%,41.1%, 56.3%, and 51.7%, respectively.Wang's results  show that the project makespan is (180, 239, 239, 294), and the resource utilization rates are 0.69, 0.33, 0.56, and 0.51 [1].The comparison shows that our method can improve the resource utilization rate of software engineers and finish the project earlier.When considering the allocation of more resources to help complete the project earlier, Wang [1] provides 12 schedules under distinct resource availability.Table 7 shows that our results have the same effect with 3 of the schedules proposed by Wang, which illustrates that our method can allocate resource more effectively, and shorten the makespan without adding more resources to the project.

Conclusion
This paper concentrates on the problem of product development project scheduling with fuzzy activity duration.Trapezoidal fuzzy numbers are used to represent the uncertain time parameters; mathematical model for the problem is established, and the fuzzy firefly algorithm is proposed.For the proposed method the improved magnitude of the trapezoidal fuzzy number is adopted in 4 circumstances: deciding the fuzzy start times of activities, representing firefly brightness, calculating the distances between fireflies, and comparing optimal solutions.Computational experiment results indicate that the proposed fuzzy firefly algorithm is helpful for managers to effectively allocate resources with the objective of minimizing project makespan.The future research will extend the fuzzy firefly algorithm to handle multiobjective product development project scheduling problems in an uncertain environment.

Figure 1 :
Figure 1: Activity duration represented by trapezoidal fuzzy number.

Step 4 .
If ( t) ̸ = , go to Step 3; else t = min( T), remove t from T, and go to Step 5.

Figure 5 :
Figure 5: Fuzzy Gantt chart for the example project.

Figure 6 :
Figure 6: The resource usage profile at  = 1 in the optimistic case.

Notations𝑗:
Activity number of the product development project,  = 1, 2, . . ., , where the first activity and the last activity are the dummy start and dummy end activities, respectively   : The set of successors of activity    : The set of predecessors of activity  t : Fuzzy duration of activity  represented by a trapezoidal fuzzy number Resource usage for supporting engineers

Figure 7 :
Figure 7: The resource usage profile for every resource type at  = 1 in the optimistic case.

Table 1 :
An example of priority value representation.
to t ⊕ t , if the available renewable resources satisfy the requirements of activity , activity 's fuzzy start time: s = t, activity 's fuzzy finish time: c = t ⊕ t ; allocate required resources to activity , update resource availabilities; insert c into set T; remove  from ( t); insert  into SA; else, if resource availabilities cannot satisfy the requirements of , remove  from ( t).

Table 3 :
Activities' start times and finish times.

Table 6 :
Solutions for the electronic product development project.

Table 7 :
Comparison of solutions under different resource availabilities.