Instruction-Level Design of Local Optimisers using Push GP
This is an incremental approach for researchers in optimization and evolutionary computation, focusing on automated algorithm design.
The paper tackles the problem of designing local optimization algorithms by using genetic programming with the Push language to evolve optimisers on continuous landscapes, resulting in evolved optimisers that often reach optima using relatively short paths.
This work uses genetic programming to explore the design space of local optimisation algorithms. Optimisers are expressed in the Push programming language, a stack-based language with a wide range of typed primitive instructions. The evolutionary framework provides the evolving optimisers with an outer loop and information about whether a solution has improved, but otherwise they are relatively unconstrained in how they explore optimisation landscapes. To test the utility of this approach, optimisers were evolved on four different types of continuous landscape, and the search behaviours of the evolved optimisers analysed. By making use of mathematical functions such as tangents and logarithms to explore different neighbourhoods, and also by learning features of the landscapes, it was observed that the evolved optimisers were often able to reach the optima using relatively short paths.