42 research outputs found
MAGPIE: Machine Automated General Performance Improvement via Evolution of Software
Performance is one of the most important qualities of software. Several
techniques have thus been proposed to improve it, such as program
transformations, optimisation of software parameters, or compiler flags. Many
automated software improvement approaches use similar search strategies to
explore the space of possible improvements, yet available tooling only focuses
on one approach at a time. This makes comparisons and exploration of
interactions of the various types of improvement impractical.
We propose MAGPIE, a unified software improvement framework. It provides a
common edit sequence based representation that isolates the search process from
the specific improvement technique, enabling a much simplified synergistic
workflow. We provide a case study using a basic local search to compare
compiler optimisation, algorithm configuration, and genetic improvement. We
chose running time as our efficiency measure and evaluated our approach on four
real-world software, written in C, C++, and Java.
Our results show that, used independently, all techniques find significant
running time improvements: up to 25% for compiler optimisation, 97% for
algorithm configuration, and 61% for evolving source code using genetic
improvement. We also show that up to 10% further increase in performance can be
obtained with partial combinations of the variants found by the different
techniques. Furthermore, the common representation also enables simultaneous
exploration of all techniques, providing a competitive alternative to using
each technique individually.Comment: 19 page
Réagir et s’adapter à son environnement: Concevoir des méthodes autonomes pour l’optimisation combinatoire à plusieurs objectifs
Large-scale optimisation problems are usually hard to solve optimally. Approximation algorithms such as metaheuristics, able to quickly find sub-optimal solutions, are often preferred. This thesis focuses on multi-objective local search (MOLS) algorithms, metaheuristics able to deal with the simultaneous optimisation of multiple criteria. As many algorithms, metaheuristics expose many parameters that significantly impact their performance. These parameters can be either predicted and set before the execution of the algorithm, or dynamically modified during the execution itself.While in the last decade many advances have been made on the automatic design of algorithms, the great majority of them only deal with single-objective algorithms and the optimisation of a single performance indicator such as the algorithm running time or the final solution quality. In this thesis, we investigate the relations between automatic algorithm design and multi-objective optimisation, with an application on MOLS algorithms.We first review possible MOLS strategies ans parameters and present a general, highly configurable, MOLS framework. We also propose MO-ParamILS, an automatic configurator specifically designed to deal with multiple performance indicators. Then, we conduct several studies on the automatic offline design of MOLS algorithms on multiple combinatorial bi-objective problems. Finally, we discuss two online extensions of classical algorithm configuration: first the integration of parameter control mechanisms, to benefit from having multiple configuration predictions; then the use of configuration schedules, to sequentially use multiple configurations.Les problèmes d’optimisation à grande échelle sont généralement difficiles à résoudre de façon optimale. Des algorithmes d’approximation tels que les métaheuristiques, capables de trouver rapidement des solutions sous-optimales, sont souvent préférés. Cette thèse porte sur les algorithmes de recherche locale multi-objectif (MOLS), des métaheuristiques capables de traiter l’optimisation simultanée de plusieurs critères. Comme de nombreux algorithmes, les MOLS exposent de nombreux paramètres qui ont un impact important sur leurs performances. Ces paramètres peuvent être soit prédits et définis avant l’exécution de l’algorithme, soit ensuite modifiés dynamiquement.Alors que de nombreux progrès ont récemment été réalisés pour la conception automatique d’algorithmes, la grande majorité d’entre eux ne traitent que d’algorithmes mono-objectif et l’optimisation d’un unique indicateur de performance. Dans cette thèse, nous étudions les relations entre la conception automatique d’algorithmes et l’optimisation multi-objective.Nous passons d’abord en revue les stratégies MOLS possibles et présentons un framework MOLS général et hautement configurable. Nous proposons également MO-ParamILS, un configurateur automatique spécialement conçu pour gérer plusieurs indicateurs de performance. Nous menons ensuite plusieurs études sur la conception automatique de MOLS sur de multiples problèmes combinatoires bi-objectifs. Enfin, nous discutons deux extensions de la configuration d’algorithme classique : d’abord l’intégration des mécanismes de contrôle de paramètres, pour bénéficier de multiples prédictions de configuration; puis l’utilisation séquentielle de plusieurs configurations
Evaluation of genetic improvement tools for improvement of non-functional properties of software
Genetic improvement (GI) improves both functional properties of software, such as bug repair, and non-functional properties, such as execution time, energy consumption, or source code size. There are studies summarising and comparing GI tools for improving functional properties of software; however there is no such study for improvement of its non-functional properties using GI. Therefore, this research aims to survey and report on the existing GI tools for improvement of non-functional properties of software. We conducted a literature review of available GI tools, and ran multiple experiments on the found open-source tools to examine their usability. We applied a cross-testing strategy to check whether the available tools can work on different programs.
Overall, we found 63 GI papers that use a GI tool to improve nonfunctional properties of software, within which 31 are accompanied with open-source code. We were able to successfully run eight GI tools, and found that ultimately only two ---Gin and PyGGI--- can be readily applied to new general software
Reinforcement Learning for Mutation Operator Selection in Automated Program Repair
Automated program repair techniques aim to aid software developers with the
challenging task of fixing bugs. In heuristic-based program repair, a search
space of program variants is created by applying mutation operations on the
source code to find potential patches for bugs. Most commonly, every selection
of a mutation operator during search is performed uniformly at random. The
inefficiency of this critical step in the search creates many variants that do
not compile or break intended functionality, wasting considerable resources as
a result. In this paper, we address this issue and propose a reinforcement
learning-based approach to optimise the selection of mutation operators in
heuristic-based program repair. Our solution is programming language,
granularity-level, and search strategy agnostic and allows for easy
augmentation into existing heuristic-based repair tools. We conduct extensive
experimentation on four operator selection techniques, two reward types, two
credit assignment strategies, two integration methods, and three sets of
mutation operators using 22,300 independent repair attempts. We evaluate our
approach on 353 real-world bugs from the Defects4J benchmark. Results show that
the epsilon-greedy multi-armed bandit algorithm with average credit assignment
is best for mutation operator selection. Our approach exhibits a 17.3%
improvement upon the baseline, by generating patches for 9 additional bugs for
a total of 61 patched bugs in the Defects4J benchmark
Genetically Improved Software with fewer Data Cache Misses
Using MAGPIE (Machine Automated General Performance Improvement via Evolution of software) we show genetic improvement GI
can reduce the cache load of existing computer programs. Cache
miss reduction is tested on two industrial open source C programs
(Google’s Open Location Code OLC and Uber’s Hexagonal Hierarchical Spatial Index H3) and two C++ 2D photograph image processing tasks, counting pixels and OpenCV’s SEEDS segmentation algorithm. Magpie’s patches functionally generalise. In one case they
reduce data misses on the highest performance L1 cache by 47%
MOParamILS : une plateforme multi-objectif pour la configuration automatique d'algorithmes
International audienceDans le domaine de l'optimisation combinatoire, où les problèmes sont souvent NP-durs, les métaheuristiques et autres algorithmes d'approximations ont souvent de nombreux paramètres pour pouvoir s'adapter à une large gamme de scénarios. Très souvent, trouver de bonnes valeurs pour ces paramètres est une tâche manuelle longue et fastidieuse car leurs implications et interactions sont généralement complexes et non intuitives. À ce jour, la majorité des configurateurs automatique de la littérature (GGA, SMAC, ParamILS, I/F-Race) se concentrent à optimiser les performances d'un algorithme vis-à -vis d'un critère unique. Après S-Race et SPRINT-Race, extensions multi-objectif récentes de F-Race, nous introduisons MOParamILS, une extension de ParamILS pour le problème de configuration automatique multi-critère
Neutralité du problème de coloration de graphe
National audienceLe problème de coloration de graphe (GCP) est un problème d'optimisation combinatoire très étudié dans la littérature. En effet, de nombreux problèmes réels, comme l'allocation de fréquences dans les télécommunications, sont modélisés et résolus via la coloration de graphe. Nous nous intéressons, ici, pour un nombre de couleurs donné k, à minimiser le nombre d'arêtes dont les extrémités sont identiquement coloriées. Ce nombre correspond au nombre de conflits dans la solution. De nombreuses observations font mention de la présence de solutions de même qualité, avec un nombre identique de conflits. Lorsque deux solutions voisines, en terme d'opérateur de voisinage, ont la même qualité, on parle de neutralité. Les recherches locales se déplaçant entre les solutions voisines, cette neutralité représente alors une frontière difficile à franchir. Plusieurs questions se posent alors quant à la quantité de ces solutions de même qualité et à la manière de tirer bénéfice de cette neutralité au cours de la résolution du problème. Dans cette étude, nous commencerons par quantifier et caractériser la neutralité de certaines instances difficiles de la littérature. Puis, nous montrerons que cette neutralité peut être exploitée par le processus de recherche
AMH: une plate-forme pour le design et le contrôle automatique de métaheuristiques multi-objectif
International audienceLes métaheuristiques et plus généralement les algorithmes d'approximation possèdent de nombreux paramètres et stratégies pour pouvoir s'adapter à une large gamme de problèmes d'optimisation. Une phase préliminaire de configuration automatique est de plus en plus fréquemment effectuée pour déterminer les valeurs des paramètres les plus prometteuses afin d'optimiser les performances de l'algorithme sur un problème donné.En revanche, la modification de l'algorithme pendant son exécution via la modification de son paramétrage et des stratégies utilisées permettant théoriquement d'optimiser de manière beaucoup plus significative les performances de l'algorithme est moins utilisée car beaucoup plus complexe.On parle alors d'algorithmes adaptatifs, et de contrôle de paramètres.Ces problématiques sont importantes dans le domaine de l'optimisation multi-critère.Dans ce travail, nous proposons une structure généralisée des recherches locales multi-objectif exprimant de nombreux paramètres et stratégies.Cette structure est intégrée dans une nouvelle plate-forme spécifiquement dédiée au design de métaheuristiques, ayant pour but d'une part de faciliter la construction automatique d'algorithmes via un paramétrage donné, et d'autre part de permettre l'ajout de mécanismes de contrôle adaptatifs généraux
AMH: a new Framework to Design Adaptive Metaheuristics
International audienceMetaheuristics should be configured to perform well on a given problem. Their configuration is either made off-line by automatic algorithm configuration tools or on-line with control mechanisms to adapt their behaviour. The former requires a flexible structure that may be modified during the execution. Therefore, the implementation of such a structure is not straightforward to enable modifications of optimisation strategies and not of parameter values only. In this work, we present AMH, a framework dedicated to the design of configurable metaheuristics. This framework is based on controlling the execution flow of metaheuristics to enable the implementation of flexible structures