Genetic Programming as a Hyper-Heuristic for Solving Combinatorial Optimisation Problems
Description
Combinatorial optimization problems occur in many real-world situations and scenarios. Often these problems are NP-hard, meaning that they cannot be solved optimally, but have to be solved using various heuristic methods, most commonly improvement-based metaheuristics. However, in many real-world cases, the improvement-based methods cannot be applied because the problems are stochastic or dynamic and therefore not all information about the problem is available in advance, or the problems are simply too large to search the solution space efficiently, even if this is done heuristically. In these cases, constructive heuristics are usually the method of choice to solve such problems. Constructive heuristics build the solution step by step by simply determining the next decision that needs to be made. Therefore, they can easily adapt to changes in the problem. The main problem with constructive heuristics is that they are difficult to design manually for the different problems that arise. For this reason, researchers have turned to the use of hyper-heuristic methods, i.e., methods that are not designed to solve the problem itself, but to generate a heuristic that can be used to solve any new problem instance of the type for which it was designed. Although many hyper-heuristic methods have been proposed in the literature, genetic programming has become the most popular method for this purpose. Over the years, genetic programming has been used to generate heuristics for various combinatorial optimization problems, including various scheduling, routing and similar problems. Especially in recent years, research in this area has gained attention, with many different research directions being investigated, which illustrates the importance of this topic.
The aim of this tutorial is to give a brief introduction to the topic of automated heuristic design using generic programming. To this end, the tutorial will introduce genetic programming as an evolutionary computation method. It will then describe the application of genetic programming to the automated design of heuristics. This part will focus on how genetic programming is used as a hyper-heuristic method. Here it is outlined how the method needs to be adapted and how this problem is approached, i.e. what steps are required to successfully apply genetic programming to create a heuristic for a selected combinatorial optimization problem. All this will be illustrated using a simple combinatorial optimization problem as a showcase. The tutorial will also present several applications of genetic programming to generate heuristics for various combinatorial optimization problems from the literature to illustrate the broad applicability of the method, but also to highlight the differences and challenges that arise in different problems. The tutorial will cover some recent developments in the automatic generation of dispatching rules and outline several new research directions in this area, such as the generation of multi-objective heuristics, the application of ensemble learning methods, the construction of surrogate models, etc. Finally, the current limitations and open questions of the approach will be outlined. The tutorial will help interested researchers to get a good overview of this research area as well as the main ideas and challenges for future studies. Thus, the audience should gain knowledge that will help them to successfully apply genetic programming to a given combinatorial optimization problem.
Organizers