An Evolutionary Hyper-heuristic for the Software Project Scheduling Problem

Software project scheduling plays an important role in reducing the cost and duration of software projects. It is an NP-hard combinatorial optimization problem that has been addressed based on single and multi-objective algorithms. However, such algorithms have always used fixed genetic operators, and it is unclear which operators would be more appropriate across the search process. In this paper, we propose an evolutionary hyper-heuristic to solve the software project scheduling problem. Our novelties include the following: (1) this is the first work to adopt an evolutionary hyper-heuristic for the software project scheduling problem; (2) this is the first work for adaptive selection of both crossover and mutation operators; (3) we design different credit assignment methods for mutation and crossover; and (4) we use a sliding multi-armed bandit strategy to adaptively choose both crossover and mutation operators. The experimental results show that the proposed algorithm can solve the software project scheduling problem effectively.

[1]  Enrique Alba,et al.  Software project management with GAs , 2007, Inf. Sci..

[2]  Leon J. Osterweil,et al.  Dynamic Resource Scheduling in Disruption-Prone Software Development Environments , 2010, FASE.

[3]  Broderick Crawford,et al.  A Max-Min Ant System algorithm to solve the Software Project Scheduling Problem , 2014, Expert Syst. Appl..

[4]  Carl K. Chang,et al.  Time-line based model for software project scheduling with genetic algorithms , 2008, Inf. Softw. Technol..

[5]  Xin Yao,et al.  Dynamic Selection of Evolutionary Algorithm Operators Based on Online Learning and Fitness Landscape Metrics , 2014, SEAL.

[6]  Carlos Montoya,et al.  Branch-and-price approach for the multi-skill project scheduling problem , 2011, Optim. Lett..

[7]  Edmund K. Burke,et al.  Effective learning hyper-heuristics for the course timetabling problem , 2014, Eur. J. Oper. Res..

[8]  Qingfu Zhang,et al.  Adaptive Operator Selection With Bandits for a Multiobjective Evolutionary Algorithm Based on Decomposition , 2014, IEEE Transactions on Evolutionary Computation.

[9]  Analía Amandi,et al.  A knowledge-based evolutionary assistant to software development project scheduling , 2011, Expert Syst. Appl..

[10]  Xin Yao,et al.  Dynamic Software Project Scheduling through a Proactive-Rescheduling Method , 2016, IEEE Transactions on Software Engineering.

[11]  Jan Karel Lenstra,et al.  Scheduling subject to resource constraints: classification and complexity , 1983, Discret. Appl. Math..

[12]  Dirk Sudholt,et al.  Improved Evolutionary Algorithm Design for the Project Scheduling Problem Based on Runtime Analysis , 2014, IEEE Transactions on Software Engineering.

[13]  Yong Tang,et al.  Solving software project scheduling problems with ant colony optimization , 2013, Comput. Oper. Res..

[14]  Jun Zhang,et al.  Ant Colony Optimization for Software Project Scheduling and Staffing with an Event-Based Scheduler , 2013, IEEE Transactions on Software Engineering.

[15]  Graham Kendall,et al.  A Classification of Hyper-heuristic Approaches , 2010 .

[16]  Giuliano Antoniol,et al.  The use of search‐based optimization techniques to schedule and staff software projects: an approach and an empirical study , 2011, Softw. Pract. Exp..