# A Literature Survey on Offline Automatic Algorithm Configuration
## 1 Introduction  
In recent years, due to the progress in modern sciences and technologies, there has been a fast increase in the size and difficulty of real-world continuous optimization problems (i.e., resource allocation, facility location, scheduling, vehicle routing, etc.). In many situations, these optimization problems must be considered a black-box problem, because there is not an obvious mathematical description of the problem, or in other words, because these problems are regarded as NP-hard; for obtaining optimal solutions using efficient algorithms, a lot of computing effort is required [1]. A metaheuristic can be defined as \"a generic algorithmic template that can be used for finding high-quality solutions for a wide range of hard combinatorial optimization problems\" by [PERSON] and [PERSON] [2] and can be described as \"higher level\" heuristics. This topic is well studied and studies proved that metaheuristics (such as memetic algorithm, particle swarm optimization, or artificial bee colonies) offer near-optimal solutions to many types of optimization problems. The main differences between these algorithms are sourced from their searching patterns [3]. They can be used in a large number of research domains such as: telecommunications, machine learning, vehicle routing, etc. Nevertheless, these metaheuristics have numerous specific parameters and design alternatives that considerably affect the efficiency and effectiveness of their performance. Additionally, these parameters need to be tuned to achieve the best performance of the algorithms. Although the selection of the best performing values for free algorithm parameters (we refer to this problem as \"parameter tuning\" or \"algorithm configuration\") is a challenging and tedious task, it can lead to an effective and good performing version of these algorithms. These algorithmic parameters are classified into two categories: categorical parameters (e.g., crossover operators in genetic algorithms) and numerical parameters (e.g., number of ants for ant colony optimization) [4]. Offline parameter tuning and online parameter tuning (or parameter control) approaches for choosing the best parameter values for optimization algorithms are suggested in the literature [5]. Parameter control approaches (which can be deterministic, adaptive, or self-adaptive [5]), first fix the initial parameter values and change them during the tuning process. However, in offline parameter tuning, parameter values are settled before the run of the algorithm and do not change during the process. In the scope of this study, we will use the terms \"offline parameter tuning\" and \"algorithm configuration\" with the same meaning. There is a considerable amount of research about offline parameter tuning methods that have been successfully applied to metaheuristics. In this study, we will focus on techniques for offline parameter tuning. A parameter tuning problem can be defined in a simpler way, that is, given a parameterized target algorithm A, a space C of configurations, where each configuration \(c\in C\) specifies values for A's parameters, a distribution of problem instances I, and a performance m that measures the performance of A, the aim is to find a parameter configuration of A that provides optimal performance of A on I according to performance measure m [6]. Generally, the performance metric is based on the solution quality achieved within a given time budget or algorithm speed or variations and combinations of these two [6]. [PERSON] and [PERSON] [4] stated that \"algorithm robustness\" can be used in conjunction with \"performance measure\" to assess algorithm quality. Algorithm robustness demonstrates the variance of algorithm performance across such factors: parameter values, problem instances, and random seeds [4]. For a formal and detailed definition of the algorithm configuration process, we refer to [2]. Until recently, the configuration of the parameters of these algorithms was carried out by the algorithm designer or end-user [7].