Hyper-heuristics is an emergent technology that has proven to be effective at solving real-world problems. The two main categories of hyper-heuristics are selection and generation. Selection hyper-heuristics select existing low-level heuristics while generation hyper-heuristics create new heuristics. At the inception of the field single point searches were essentially employed by selection hyper-heuristics, however as the field progressed evolutionary algorithms are becoming more prominent. Evolutionary algorithms, namely, genetic programming, have chiefly been used for generation hyper-heuristics. Implementing evolutionary algorithm hyper-heuristics can be quite a time-consuming task which is daunting for first time researchers and practitioners who want to rather focus on the application domain the hyper-heuristic will be applied to which can be quite complex. This paper presents a Java toolkit for the implementation of evolutionary algorithm hyper-heuristics, namely, EvoHyp. EvoHyp includes libraries for a genetic algorithm selection hyper-heuristic (GenAlg), a genetic programming generation hyper-heuristic (GenProg), a distributed version of GenAlg (DistrGenAlg) and a distributed version of GenProg (DistrGenProg). The paper describes the libraries and illustrates how they can be used. The ultimate aim is to provide a toolkit which a non-expert in evolutionary algorithm hyper-heuristics can use. The paper concludes with an overview of future extensions of the toolkit.
[1]
J. Miller,et al.
A Review of Hyper-Heuristic Frameworks
,
2014
.
[2]
David E. Goldberg,et al.
Genetic Algorithms in Search Optimization and Machine Learning
,
1988
.
[3]
Michel Gendreau,et al.
Hyper-heuristics: a survey of the state of the art
,
2013,
J. Oper. Res. Soc..
[4]
Nelishia Pillay,et al.
Evolving hyper-heuristics for the uncapacitated examination timetabling problem
,
2012,
J. Oper. Res. Soc..
[5]
Nelishia Pillay,et al.
A review of hyper-heuristics for educational timetabling
,
2016,
Ann. Oper. Res..
[6]
John R. Koza,et al.
Genetic programming - on the programming of computers by means of natural selection
,
1993,
Complex adaptive systems.
[7]
Sanja Petrovic,et al.
A graph-based hyper-heuristic for educational timetabling problems
,
2007,
Eur. J. Oper. Res..