Content uploaded by Abdullateef Oluwagbemiga Balogun
Author content
All content in this area was uploaded by Abdullateef Oluwagbemiga Balogun on May 10, 2021
Content may be subject to copyright.
Application of Shuffled Frog-Leaping Algorithm
for Optimal Software Project Scheduling
and Staffing
Ahmed O. Ameen1(B), Hammed A. Mojeed1, Abdulazeez T. Bolariwa1,
Abdullateef O. Balogun1,2, Modinat A. Mabayoje1, Fatima E. Usman-Hamzah1,
and Muyideen Abdulraheem1
1Department of Computer Science, University of Ilorin, PMB 1515, Ilorin, Nigeria
{aminamed,mojeed.ha,balogun.ao1,mabayoje.ma,usman-hamza.fa,
muyideen}@unilorin.edu.ng, abdullateef_16005851@utp.edu.my
2Department of Computer and Information Sciences, Universiti Teknologi PETRONAS,
32610 Bandar Seri Iskandar, Perak, Malaysia
Abstract. Software Project Scheduling Problem is one of the most crucial issues
in software development because it includes resources planning; cost estimates,
staffing and cost control which if not properly planned affect the timely completion
of the software project. Software project scheduling is a problem of scheduling
the tasks (work packages) and employees in such a way that the overall project
completion time is minimized without violating dependency constraints (tasks
dependencies) and being consistent with resource constraints. This study adopts
a Search Based Software Engineering approach that focuses on multi-objective
optimization for a software project planning using the Shuffled Frog Leaping
Algorithm, a memetic meta-heuristic algorithm. The objectives are optimal order-
ing of work packages without dependency violation and allocation of staff to the
work packages such that only employee(s) with required competence(s) are allot-
ted to a given work package. The study was carried out in four stages, namely:
frog (solution) representation, definition of the fitness function, implementation
of Shuffled Frog Leaping Algorithm and evaluation with a randomly generated
Software Project Scheduling Problem. The study concludes that it is possible
to find an efficient solution to a Software Project Scheduling Problem by imple-
menting the SFLA than any other traditional computing means which are tedious,
error prone and costly.
Keywords: Shuffled Frog-Leaping Algorithm ·Software Project Scheduling
Problem ·Software project planning ·Search Based Software Engineering
1 Introduction
Software development for organizations is a very complex task as it deals with manag-
ing people, technologies and business processes [1]. In software development process,
effective planning is important because failure to plan and/or poor planning can result in
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2021
F. Saeed et al. (Eds.): IRICT 2020, LNDECT 72, pp. 293–303, 2021.
https://doi.org/10.1007/978-3-030-70713-2_28
294 A. O. Ameen et al.
unnecessary delays and overhead costs [2]. Due to this uncertainty incurred in planning
software project, given timing and budget constraints are often unacceptable; which in
turn leads to business critical failures. Software development companies often struggle
to deliver projects timely, within budget and with required quality. Possible causes of
this problem are poor project scheduling and ineffective team staffing [3]. Therefore,
software engineering projects require good software project management techniques
to ensure that projects are completed on schedule and within budget [4]. In order to
achieve proper planning and management of software project, tasks need to be optimally
scheduled and resources be effectively allocated.
Scheduling is setting a sequence of time-dependent functions to execute a set of
dependent tasks that constitute a project [5]. Dependency of tasks in terms of priority and
precedence is very crucial to software project scheduling. There are priorities constraints
between tasks in projects, but in addition to these constraints there may be another kind
of constraints between tasks based on resource allocation [5]. Apart from considering
priority and precedence limitations, scheduling should be carried out in a way to be
consistent with resource constraints. Good allocations (team staffing) are very crucial
for software projects, since humans are their main resources [8,20]. The importance
of effective software project scheduling cannot be overemphasized when managing the
development of medium to large scale projects as it is required to carry out projects that
can meet the deadline and budget [8].
Software Project Scheduling Problem (SPSP) is a kind of optimization problem that
seeks to find optimal schedule for a software project so that the precedence and resource
constraints are satisfied and ensuring that project cost and duration are minimized [3].
This problem has been found to be Non-deterministic Polynomial (NP)-hard [9,19].
To solve this problem, meta-heuristic evolutionary algorithms such as Genetic Algo-
rithm [10], Ant Colony Optimization [9], Shuffled Frog Leaping (SFL) algorithm [4]
and Differential Evolutionary Algorithm [5,6] have been successfully applied. Major-
ity of these studies however, consider only task scheduling for the formulation of the
problem [21–23]. There is a need for studies that combines tasks scheduling and staffing
(allocation of jobs to developers) in software development project planning problem. In
this work, a memetic approach based on Shuffled Frog-Leaping Algorithm (SFLA) is
presented for optimal project scheduling and staffing when the objectives are combined.
1.1 The SFLA Algorithm
Shuffled Frog Leaping Algorithm (SFLA) is a novel memetic meta-heuristic first pro-
posed by Eusuff and Lansey [11] for solving combinatorial optimization problems and it
was first used to solve problem of water resource in network distribution [12]. The SFLA
has been designed as a meta-heuristic to perform an informed search using a heuristic
function [13]. The SFLA is a fusion of deterministic and random approaches. The deter-
ministic strategy allows the algorithm to use response surface information effectively
to guide the heuristic search as in Particle Swarm Optimization (PSO). The random
approach ensures the flexibility and robustness of the search pattern. The SFLA does
not specify the individuals belonging to it population rather, it uses an abstract model,
called a virtual population [13].
Application of Shuffled Frog-Leaping Algorithm 295
The search begins with a randomly selected population of P frogs (i.e. solutions).
The population is partitioned into several m memeplexes (parallel communities) that can
evolve independently to search the solution space in different directions. The individual
frogs contain ideas (memes) that can be influenced by the ideas of other frogs within each
memeplex and evolve through an optimization process refeered to as memetic evolution
[14]. Memetic evolution enhance the quality of worst frog Xw and guide its performance
towards a goal. To ensure that the evolution process is competitive, it is required that
frogs with better memes (ideas) contribute more to the development of new ideas than
frogs with poor ideas. During thi evolution step, the frogs may change their memes using
the information from the memeplex best frog Xb or the global best frog Xg of the entire
population [13]. Accordingly, the position of the frog with the worst fitness is adjusted
using Eqs. 1–2.
Change in Frog position:
Di=rand () . (Xb−Xw)(1)
New position:
Xnew =Xw+Di;(Dmax >=Di>=−Dmax)(2)
Where rand() is a random number between 0 and 1; and Dmax is the maximum
allowed change in a frog’s position. If this process yields a better frog (solution), it
replaces the worst frog. Elsewise, the calculations in Eqs. (1) and (2) are repeated with
respect to the global best frog (that is Xg replaces Xb). If no improvement becomes
possible in this latter case, then a new solution (frog) with any arbitrary fitness is randomly
generated to replace the worst frog [14]. The calculations then continue for a specific
number of evolutionary iterations within each memeplex.
After a number of memetic evolutionary steps, ideas are pass among memeplexes
in a shuffling process (global search). The local search and the shuffling processes
continue until convergence criteria are satisfied. The algorithm has been tested on several
combinatorial problems and found to be efficient in finding global solutions [14]. The
core parameters of SFLA are: population size, P, number of memeplexes, m, and number
of evolutionary iterations in each memeplex, q [3].
2 Related Works
Considering the application of SFLA, Elbeltagi, Hegazy and Grierson [14] compared
the searching mechanism of the Genetic Algorithm (GA) with that of the SFLA and the
experimental results of the comparison show that the SFLA have better performance than
the GA in solving some problems of continuous functions. Their work also proposed an
improved SFLA, introduced a new parameter called search-acceleration factor (C) to the
original formulation of the SFLA, analyzed the positive role of the new parameter and
solved discrete and continuous optimization problems. Nejad, Jahani and Sarlak [15]
applied SFLA to Economic Load Dispatch (ELD) problem in power system. Their objec-
tive was to find the optimal combination of power generations that minimizes the total
generation cost while satisfying an equality constraint and inequality constraints. Two
296 A. O. Ameen et al.
representative systems (IEEE 30 bus and 57 bus) were used to test their proposed SFLA
algorithm in comparison with the GA based method for the solution of the ELD prob-
lem. The result proved that the SFLA technique was faster than the GA technique. Also,
Liping, Weiwei, Yefeng and Yixian [16] introduced the SFLA to solve an uncapacitated
Single Level Lot Sizing (SLLS) problem and gained ideal results.
Gerasimou et al. [17] investigated the application of a Particle Swarm Optimization
(PSO) algorithm to software project scheduling and effective team staffing. The study
aims to create optimal project schedules by specifying the best sequence for executing
a project’s tasks to minimize the total project duration and seeks to form skillful and
productive working teams with the best utilization of developer skills. A combination
of Constriction-PSO and Binary-PSO variations were employed to solve the problem.
Results from empirical experiments showed that PSO was able to generate feasible
solutions with feasibility rate of approximately 100% and hit rate of virtually 100% in
all of considered problems. However, as the complexity and size of the problems increase
a progressive decrease in these percentages is observed reaching as low as 30%. This
shows that the employed algorithm still encounters difficulties in producing optimal
solution as project complexity increases.
Chen and Zhang [18] developed an approach based on an event-based scheduler
(EBS) and an ant colony optimization (ACO) algorithm for optimal project scheduling
and staffing. The model employed the event-based scheduler to simplify the restricted
flexibility of human resource allocation. The project plan was model as task list and
employee allocation matrix, then Ant Colony Optimization (ACO) algorithm was applied
to solve the problem. Experimental results showed that the representation scheme with
the EBS is effective, and the proposed algorithm manages to yield better plans with lower
costs and more stable workload assignments compared with other existing approaches
such as the Tabu Search (TS) algorithm for the multiskill scheduling Problem, the
knowledge-based GA (KGA) and the time-line-based GA. The study however considered
not the employee experience in the formulation. Stylianou and Andreou [7] proposed a
procedure for software project managers to support their project scheduling and team
staffing activities by adopting a genetic algorithm approach as an optimisation technique
in order to construct a project’s optimal schedule and to assign the most experienced
employees to tasks. Experimental results obtained revealed that the genetic algorithm
is capable of finding optimal solutions for projects of varying sizes when using either
one of the objective functions. However, when the objective functions were combined,
the genetic algorithm presents difficulties in reaching optimal solutions especially when
having preference to assign the most experienced employees over the project’s dura-
tion. This study presents SFLA as a memetic meta-hueristic algorithm to tackle this
shortcoming.
Recent works have focused on combining task scheduling and team allocation/
resource assigning based on multiple skills (as also adopted in this study) using differ-
ent optimization approaches. Lin, Zhu, and Gao [24] proposed a genetic programming
hyper-heuristic algorithm for minimizing makespan in multi-skill resource constrained
project scheduling problem (MS–RCPSP). Comparisons with existing algorithms such
Application of Shuffled Frog-Leaping Algorithm 297
as HACO, GRASP and DEGR showed that the proposed algorithm performed consid-
erably better with regards to solution quality and convergence rate. The same multi-
skill formulation was also employed by Li et al. [25] with focus on skill evolution and
cooperation effectiveness in project scheduling.
Van Den Eeckhout, Maenhout and Vanhoucke [26] applied a heuristic procedures
based on iterated local search to an integrated personnel staffing problem and the project
scheduling problem formulation such that the demand for staff and the scheduling of
the resources is determined simultaneously as proposed in this study. However, their
objective is to determine the personnel budget that minimizes project cost rather than
combining minimized completion time and cost objectives. Recently, an optimization
procedure for large scale resource constrained multi-objective project scheduling prob-
lem based on cooperative coevolution was proposed by Shen, Guo and Li [27]. Duration
and cost are considered together as objectives with employees’ satisfaction. Experimental
results on 15 randomly generated large-scale instances with up to 2048 decision vari-
ables indicated the high scalability of the proposed approach with regards to convergence
ability.
3 Methodology
To model the problem, Design Structure Matrix (DSM) which enforces the dependencies
among tasks was used. It is represented as a jagged array of two-dimension where row
indices represent WP ids. Using an hypothetical software project consisting of seven
WPs, an example of a modeled DSM is shown in Fig. 1.The DSM indicates that WP1
does not depend on any task before it can actually start, WP1 must finish before WP2
can start, WP1 and WP2 must finish before WP3 and WP4 can start, WP1, WP2, WP3
and WP4 must finish before WP5 can start, WP4 and WP5 must finish before WP6 can
finish and WP5 must finish before WP7 can start. For a software project scheduling
problem, the number of WPs is usually less than or equal to 2n – 1, with n representing
the number of employees required to complete the project.
WP 1
WP 21
WP 312
WP 412
WP 51234
WP 645
WP 75
Fig. 1. DSM model representation of dependencies constraints
The staff allocation is modeled using binary representation of an integer number
×having a value in the interval 1 to 2n – 1, where n equals the employee involved
in the project. The value of each bit in the binary equivalence denotes an employee
involvement in the current task. A value of 1 means the corresponding employee is
298 A. O. Ameen et al.
allocated for the given WP and 0 means the employee is not allocated. Starting from
the left, the first bit denotes employee1s involvement in the task, the next bit represents
employee2s involvement and so on. Assuming that four employees are available for the
project represent by the DSM in Fig. 1, the employee assignment of any of the WPs is the
binary equivalence of a number between 1 and 15. An example of employee assignment
under this representation is presented in Table 1. Associated with each employee is
skill set represented as a linear array of skill types. Also, for each WP, the required
competence(s) is defined which is represented as an n-array of skill types. The total
required competence of a WP is the sum of all the inherent skill set possessed by the
team of employees assigned to the WP.
Tabl e 1. Employee assignment representation
Work package Employee assignment Binary equivalence Remarks
1 2 0010 Task assigned to only employee
3
211 1011 Task assigned to employees 1, 3
and 4
315 1111 Task assigned to employees 1, 2,
3and4
4 5 0101 Task assigned to employees 2
and 4
5 4 0100 Task assigned to only employee2
613 1101 Task assigned to employees 1, 2
and 4
7 7 0111 Task assigned to employees 2, 3
and 4
3.1 Frog Representation
A frog represents a feasible solution to project scheduling and staffing problem. It is
encoded as an n ×2 array where each row consists of a WP id and an integer number
representing employee assignment. The row index indicates the position of the WP in the
WPs ordering. For example, row index 0 indicates position (POS) 1, and the associated
WP start first before any other WP. A typical frog schema is shown in Fig. 2.
3.2 SFLA Design
Shuffled Frog Leaping Algorithm (SFLA) works generally as follows: At first, a virtual or
random population of frogs is created (where p is the population size). Subsequently, the
fitness of the individual frogs is evaluated. Afterwards, the frogs are sorted in descending
order of their fitness (that is the fittest to the worst). Thereafter, the frogs are partitioned
into m memeplexes. Then, a local search is performed within each memeplex. During
Application of Shuffled Frog-Leaping Algorithm 299
11
25
46
37
52
73
67
Fig. 2. A frog representation
each intra-memeplex local search, the best frog and the worst frog are identified as Xb
and Xw respectively and the global best frog is identified as Xg. Then, a process is
applied to improve only the worst frog, excluding other frogs. Consequently, in this
approach the position of the worst frog (Xw) is adjusted using Eqs. 3–7.
chunkLength =0.5×frog_size (3)
Start =rand() ×(frog_size −chunkLength (4)
I=chunkLength +start;start <=I<frog_size (5)
Di=Swap(Xb(start,I),Xw(start,I)) (6)
Xnew =Xw+Di(7)
Where rand() is a random number between 0 and 1; and I is index of the last memotype
in a chunk (to make improvement with). This evolutionary step is illustrated in Fig. 3.
If this process yields a better frog (solution), it replaces the worst frog. Elsewise, the
calculations in Eqs. (6) and (7) are repeated with respect to the global best frog (that
is Xg replaces Xb). If no improvement becomes possible in this latter case, then a new
solution (frog) with any arbitrary fitness is randomly generated to replace the worst frog.
The calculations then continue for a specific number of evolutionary iterations within
each memeplex [11]. There is no generally accepted number of evolutionary iterations
for local search during memetic evolution of SFLA, researchers have diverse opinions.
This study adopts the one used in [4], as it proved efficient in their study. The study put
the number of evolutionary iterations, q to be dependent on the problem size with the
value q =2n, where n is the number of frogs in a memeplex.
3.3 Fitness Function
This study adopts a penalty-based fitness calculation. The fitness of a solution is com-
puted as the sum of dependency violations and skill mismatches for each WP. Depen-
dency violation is measured by checking if all other WPs a given WP depends on as
represented in the DSM precede the WP in the solution or not. For each of the WPs it
300 A. O. Ameen et al.
depends on that does not precede it in the solution, dependency violation (V) is incre-
mented by 1, otherwise no increment. Skill mismatch for a WP is computed by checking
if for each employee eiassigned to wpi, none of the WP’s required competences or
competence(wpi) is a subset of the set of the total competences of the team of employ-
ees assigned to wpi. In otherwords, skill-set(ei) ∩competence(wpi) equals F.The number
of the skill mismatches (M) is incremented by 1 for every mismatch that occurs within a
solution. So, consequently the lower the fitness value the better the solution (frog). The
fitness of a frog is measured based on Eq. 8.
Fig. 3. Worst frog improvement
Fit(A)=n
k=1(V+M);Fit(A)>=0(8)
Where: V =number of dependency violations, M =number of skill mismatches
and n =number of WPs for frog A.
4 Results and Discussion
The modified SFLA was tested on a randomly generated software project scheduling
and staffing problem consisting of seven (7) WPs, twelve (12) dependencies, five (5)
employees. The population size is varied as 100, 150, 200 and 300. The number of
memeplexes is also varied as 5, 10 for each cases of the population size. This variation of
population size and memeplex size is necessary because there are no generally acceptable
criteria for choosing population size and number of memeplexes for a given problem.
These parameters together with the number of evolutionary iterations greatly influence
the performance of the algorithm. The number of evolutionary iterations per memeplex is
set to 2N, where N is the number of frogs in each memeplex as proposed [4]. Owing to the
fact that SFLA works on a virtual or randomly generated population and tries to improve
the frogs based on the convergence criteria set, its result and how well the improvement
of frogs is done is always time varied. Hence, there is need to run the algorithm a number
of instances and then average the results to have a better evaluation of the performance
of the algorithm on a given problem and how well the feasible solutions to the problem
(frog) are improved before finally selecting the best solution.
Table 2presents the results of experiments carried out on the random problem using
SFLA with varied population size and number of memeplexes, and pure random search.
Application of Shuffled Frog-Leaping Algorithm 301
A total of twenty (20) independent runs as proposed in [28] were performed on each
case of the variation and the results were averaged. The same experiments were also
carried out with pure random search and for a comparison with the proposed approach.
All algorithms are implemented in Java.
Tabl e 2. Experimental results of SFLA and random search
Population size Number of memeplex
(es)
Average fitness (SFLA) Average fitness
(random)
100 50.27 4.12
10 0.49
150 50.23 5.11
10 0.32
200 50.16 4.79
10 0.28
300 50.15 5.14
10 0.22
It can be deduced that the algorithm worked better on a larger population size and for
the same population size when the number of memeplex was varied, the lower the number
of memeplex, the better the improvement of the whole population, the average fitness of
the individual frogs in the population and the selected best solution. The SFLA approach
was also compared with a pure random approach of generating feasible solutions (frog)
based on a set threshold (maximum of 3 dependency violation can be made) and the
proposed SFLA proved better when compared with the results of the random search
approach. Figure 4presents this comparison in a line graph.
0
1
2
3
4
5
6
100 150 200 300
Average Fitness
Populaon size
Ramdom Search
SFLA
Fig. 4. Average fitness comparison of SFLA and random search
302 A. O. Ameen et al.
From Fig. 4it is observed that SFLA significantly outperformed random search in
all population sizes with difference of up to 4.92 average fitness. This result revealed the
effectiveness of SFLA in handling project scheduling and staffing problem under our
formulation.
5 Conclusion
In this work, a good data structure that enforces dependency constraints among Work
Packages (WPs) was successfully adopted. The study was able to find a mathematical
representation with easy implementation for staff allocation. This enables the adoption
of a good data structure in representing a frog (solution) that will cater for both work
package ordering and staff allocation. The study adopts the power of SFLA to find
the near-optimal solution for randomly generated Software Project Scheduling Problem
(SPSP) and a comparison was made with a purely random approach. The SFLA approach
in project planning provides a new, effective and efficient perspective to recent software
projects scheduling. The result analysis of the study shows that it performs reasonably
well in project scheduling. In the future, we plan to include more objectives, carry out
empirical studies with real world project scheduling standard problem instances and
compare results with existing studies.
References
1. Kang, K., Hahn, J.: Learning and forgetting curves in software development: does type of
knowledge matter? In: ICIS 2009 Proceedings, p. 194 (2009)
2. Mojeed, H.A., Bajeh, A.O., Balogun, A.O., Adeleke, H.O.: Memetic approach for multi-
objective overtime planning in software engineering projects. J. Eng. Sci. Technol. 14(6),
3213–3233 (2019)
3. Patil, N., Sawanti, K., Warade, P., Shinde, Y.: Survey paper for software project scheduling
and staffing problem. Int. J. Adv. Res. Comput. Commun. Eng. 7, 5675–5677 (2014)
4. Oladele, R.O., Mojeed, H.A.: A shuffled frog-leaping algorithm for optimal software project
planning! Afr. J. Comput. ICT 7(1), 147–152 (2014)
5. Amiri, M., Barbin, J.P.: New approach for solving software project scheduling problem using
differential evolution algorithm! Int. J. Found. Comput. Sci. Technol. 5(1), 1–5 (2015)
6. Eshraghi, A.: A new approach for solving resource constrained project scheduling problems
using differential evolution algorithm. Int. J. Ind. Eng. Comput. 7(2), 205–216 (2016)
7. Stylianou, C.S., Andreou, A.S.: Intelligent software project scheduling and team staffing
with genetic algorithm. In: IFIP Advances in Information and Communication Technology
(IFIPAICT), vol. 364. Springer, Heidelberg (2011)
8. Shen, X., Minku, L.L., Bahsoon, R., Yao, X.: Dynamic software project scheduling through
a proactive-rescheduling method. IEE Trans. Softw. Eng. 42(7), 658–686 (2016)
9. Vitekar, K.N., Dhanawe, S.A., Hanchate, D.B.: Review of solving software project scheduling
problem with ant colony optimization. Int. J. Adv. Res. Electr. Electron. Instrum. Eng. 2(4),
1177–1186 (2013)
10. Karova, M., Petkova, J., Smarkov, V.: A genetic algorithm for project planning problem. In:
Proceedings International Scientific Conference Computer Science 2008, pp. 647–651 (2008)
11. Eusuff, M.M., Lansey, K.E.: Optimization of water distribution network design using the
shuffled frog leaping algorithm. J. Water Resour. Plan. Manag. 129(3), 210–225 (2003)
Application of Shuffled Frog-Leaping Algorithm 303
12. Mai, G., Li, Y.: An improved shuffled frog leaping algorithm and its application. In: Pro-
ceedings of International Conference on Advances in Mechanical Engineering and Industrial
Informatics, China (2015)
13. Eusuff, M., Lansey, K., Pasha, F.: Shuffled frog leaping algorithm: a memetic meta-heuristic
for discrete optimization. Eng. Optim. 38(2), 129–154 (2006)
14. Elbeltagi, E., Hegazy, T., Grierson, D.: A modified shuffled frog-leaping optimization
algorithm: applications to project management. Struct. Infrastruct. Eng. 3(1), 53–60 (2007)
15. Nejad, H.C., Jahani, R., Sarlak, G.: Applying shuffled frog-leaping algorithm for economic
load dispatch of power system. Am. J. Sci. Res. 20, 82–89 (2011)
16. Liping, Z., Weiwei, W., Yefeng, X., Yixian, C.: Application of shuffled frog leaping algorithm
to uncapacitated SLLS problem. AASRI Procedia 1, 226–231 (2012)
17. Gerasimou, S., Stylianou, C., Andreou, A.S.: An investigation of optimal project scheduling
and team staffing in software development using particle swarm optimization. ICEIS 2, 168–
171 (2012)
18. Chen, W.N., Zhang, J.: Ant colony optimization for software project scheduling and staffing
with an event-based scheduler. IEEE Trans. Softw. Eng. 39(1), 1–17 (2013)
19. Weisstein, E.W.: NP-Hard Problem (2017). https://mathworld.wolfram.com/NP-HardPr
oblem.html
20. Wysocki, R.K.: Effective Project Management: Traditional,Agile, Extreme, 5th edn., pp. 167–
171. Wiley Publishing, Indianapolis (2009)
21. Marler, R.T., Arora, J.S.: Survey of multi-objective optimization methods for engineering.
Struct. Multidiscip. Optim. 26, 369–395 (2004)
22. Krasnogor, N., Aragon, A., Pacheco, J.: Metaheuristic procedures for training neural networks.
Operations Research/Computer Science Interfaces Series, vol. 36, pp. 225–248 (2006)
23. Rezende, A.V., Silva, L., Britto, A., Amaral, R.: Software project scheduling problem in the
context of search-based software engineering: a systematic review. J. Syst. Softw. 155, 43–56
(2019)
24. Lin, J., Zhu, L., Gao, K.: A genetic programming hyper-heuristic approach for the multi-skill
resource constrained project scheduling problem. Expert Syst. Appl. 140, 112915 (2020)
25. Li, Q., Sun, Q., Tao, S., Gao, X.: Multi-skill project scheduling with skill evolution and
cooperation effectiveness. Eng. Constr. Archit. Manag. 27, 2023–2045 (2019)
26. Van Den Eeckhout, M., Maenhout, B., Vanhoucke, M.: A heuristic procedure to solve the
project staffing problem with discrete time/resource trade-offs and personnel scheduling
constraints. Comput. Oper. Res. 101, 144–161 (2019)
27. Shen, X., Guo, Y., Li, A.: Cooperative coevolution with an improved resource allocation
for large-scale multi-objective software project scheduling. Appl. Soft Comput. 88, 106059
(2020)
28. Harman, M., Mansouri, S.A., Zhang, Y.: Search based software engineering. A comprehen-
sive analysis and review of trends techniques and applications. Technical report TR-09-03.
Department of computer science, King’s College, London (2009)