Thèse de doctorat
Résumé : Technology has a major role in today’s world. The development and massive access to information technology has enabled the use of computers to provide assistance on a wide range of tasks, from the most trivial daily ones to the most complex challenges we face as human kind. In particular, optimisation algorithms assist us in taking decisions, improving processes, designing solutions and they are successfully applied in several contexts such as industry, health, entertainment, and so on. The design and development of effective and efficient computational algorithms is, thus, a need in modern society.Developing effective and efficient optimisation algorithms is an arduous task that includes designing and testing of several algorithmic components and schemes, and requires considerable expertise. During the design of an algorithm, the developer defines parameters, that can be used to further adjust the algorithm behaviour depending on the particular application. Setting appropriate values for the parameters of an algorithm can greatly improve its performance. This way, most high-performing algorithms define parameter settings that are “finely tuned”, typically by experts, for a particular problem or execution condition.The process of finding high-performing parameter settings, called algorithm configuration, is commonly a challenging, tedious, time consuming and computationally expensive task that hinders the application and design of algorithms. Nevertheless, the algorithm configuration process can be modelled as an optimisation problem itself and optimisation techniques can be applied to provide high-performing configurations. The use of automated algorithm configuration procedures, called configurators, allows obtaining high-performing algorithms without requiring expert knowledge and it enables the design of more flexible algorithms by easing the definition of design choices as parameters to be set. Ultimately, automated algorithm configuration could be used to fully automatise the algorithm development process, providing algorithms tailored to the problem to be solved.The aim of the work presented in this thesis is to study the automated configuration of algorithms. To do so, we formally define the algorithm configuration problem and analyse its characteristics. We study the most prominent algorithm configuration procedures and identify relevant configuration techniques and their applicability. We contribute to the field by proposing and analysing several configuration procedures, being the most prominent of these the irace configurator. This work presents and studies several modifications of the configuration process implemented by irace, which considerably improve the performance of irace and broaden its applicability. In a general context, we provide insights about the characteristics of the algorithm configuration process and techniques by performing several analyses configuring different types of algorithms under varied situations. And, finally, we provide practical examples of the usage of automated configuration techniques showing its benefits and further uses for the application and design of efficient and effective algorithms.