# A Survey of Advances in Landscape Analysis for Optimisation
## 4 Applications of Landscape Analysis
### Understanding Complex Problems  
Landscape analysis has become popular as an approach to understanding complex optimisation problems by characterising problems using measured landscape features. When using landscape analysis to characterise problems, one of the aims is to group problems into classes based on these features. This is based on the premise that algorithms may behave similarly on problems that are similar. A vast array of complex classic and real-world problems have been studied using landscape analysis. Some examples in the last ten years are listed under three categories: (1) benchmarks or random instances of classic optimisation problems, (2) real-world applications and (3) machine learning applications.  
Many real-world problems can be reduced to variants of classic problems, such as the quadratic assignment problem or the travelling salesman problem. Studying large benchmarks or random instances of these classic problems using landscape analysis is useful as general insights gained should be applicable to scenarios containing these problems as subcomponents. Examples of the application of landscape analysis to the study of classic problems include: the quadratic assignment problem [69; 70; 71]; the maximum satisfiability problem [72; 73]; permutation flow-shop scheduling [74; 75; 76]; packing problems [77; 78]; travelling salesman problems [79; 80; 81; 82]; the dense graph-colouring problem [83]; number partitioning problem [84]; vehicle routing problems [85]; and the travelling thief problem [86].  
Landscape analysis has also been used to understand real-world problems. Examples include: the design of wind turbines [87]; university course timetabling [88]; genetic improvement of software [89; 90; 91]; automated test case generation for software testing [92; 93]; computational protein design [94]; design of substitution boxes in cryptography [95]; hyper-parameter optimisation for metaheuristics [96]; and building energy optimisation [97].  
Since 2017 a new trend has emerged of landscape analysis applied in the context of machine learning. Examples include: analysis of weight search spaces in the context of neural network training for classification [98]; analysis of the feature selection problem for classification [99; 100]; analysis of policy search spaces in reinforcement learning [101]; analysis of machine learning pipeline configuration search spaces [102]; and analysis of neural architecture search spaces for image classification [103; 104].  
In each of the studies listed above, landscape analysis provided different insights into problem classes and the nature of the difficulty for search algorithms. To illustrate the kind of benefits that landscape analysis can provide, one study is described in more detail. In the field of genetic engineering, [PERSON] et al. [94] analysed a computational protein design problem. The most popular software program used for solving these problems performed well on some instances but poorly on others. Landscape analysis revealed structural differences between the landscapes of an instance that was successfully solved by the software and one on which the software failed. It was observed that the algorithm performed poorly on a landscape that consisted of several suboptimal funnels that were disconnected from the global funnel. In this way, landscape analysis could explain why some problem instances were harder to solve than others. With this kind of understanding, algorithms can be adapted to be more effective on particular classes of problems.