Amélioration génétique (informatique) - Genetic improvement (computer science)

Dans le développement de logiciels informatiques , l'amélioration génétique est l'utilisation de techniques d' optimisation et d' apprentissage automatique , en particulier des techniques de génie logiciel basées sur la recherche telles que la programmation génétique pour améliorer les logiciels existants . Le programme amélioré n'a pas besoin de se comporter de manière identique à l'original. Par exemple, la correction automatique des bogues améliore le code du programme en réduisant ou en éliminant les comportements bogués . Dans d'autres cas, le logiciel amélioré devrait se comporter de manière identique à l'ancienne version mais est meilleur car, par exemple : il fonctionne plus vite, il utilise moinsmémoire , il utilise moins d' énergie ou il fonctionne sur un autre type d'ordinateur. GI diffère, par exemple, de la traduction de programme formelle , en ce qu'il vérifie principalement le comportement de la nouvelle version mutante en exécutant à la fois le nouveau et l'ancien logiciel sur des entrées de test et en comparant leur sortie et leurs performances afin de voir si le nouveau logiciel peut toujours faire ce que l'on veut du programme original et c'est maintenant mieux.

L'amélioration génétique peut être utilisée pour créer plusieurs versions de programmes, chacune conçue pour être meilleure pour une utilisation particulière ou pour un ordinateur particulier.

L'amélioration génétique peut être utilisée avec une optimisation multi-objectifs pour envisager d'améliorer le logiciel selon plusieurs dimensions ou pour envisager des compromis entre plusieurs objectifs, comme demander à l'IG de faire évoluer des programmes qui échangent la vitesse contre la qualité des réponses qu'ils donnent. Bien sûr, il peut être possible de trouver des programmes qui sont à la fois plus rapides et qui donnent de meilleures réponses.

La plupart du temps, l'amélioration génétique apporte généralement de petites modifications ou modifications (également appelées mutations ) au code source du programme, mais parfois les mutations sont apportées au code assembleur , au byte code ou au code machine binaire .

Les références

  1. ^ Langdon, William B. (2015). Logiciel génétiquement amélioré . Manuel des applications de programmation génétique . p. 181-220. doi : 10.1007/978-3-319-20883-1_8 . ISBN 978-3-319-20882-4.
  2. ^ Justyna Petke et Saemundur O. Haraldsson et Mark Harman et William B. Langdon et David R. White et John R. Woodward (2018). "Amélioration génétique du logiciel: une enquête complète" (PDF) . Transactions IEEE sur le calcul évolutif . 22 (3) : 415-1432. doi : 10.1109/TEVC.2017.2693219 . hdl : 1893/25358 .
  3. ^ Weimer, Westley; et al. (2010). "Réparation de programme automatique avec calcul évolutif". Communications de l'ACM . 53 (5) : 109. CiteSeerX  10.1.1.170.188 . doi : 10.1145/1735223.1735249 .
  4. ^ Langdon, William B.; Harman, Marc (2015). "Optimiser le logiciel existant avec la programmation génétique". Transactions IEEE sur le calcul évolutif . 19 : 118-135. doi : 10.1109/TEVC.2013.2281544 .
  5. ^ Wu, Fan; Weimer, Westley; Harman, Marc ; Jia, Yue ; Krinke, Jens (2015). Optimisation approfondie des paramètres . Actes de la conférence 2015 sur le calcul génétique et évolutif - GECCO '15 . pp. 1375-1382. doi : 10.1145/2739480.2754648 . ISBN 9781450334723.
  6. ^ Bruce, Bobby R.; Petke, Justyna ; Harman, Marc (2015). Réduire la consommation d'énergie grâce à l'amélioration génétique . Actes de la conférence 2015 sur le calcul génétique et évolutif - GECCO '15 . p. 1327-1334. doi : 10.1145/2739480.2754752 . ISBN 9781450334723.
  7. ^ Langdon, William B.; Harman, Marc (2014). Logiciel CUDA C++ génétiquement amélioré . EuroGP 2014 . Notes de cours en informatique. 8599 . p. 87-99. doi : 10.1007/978-3-662-44303-3_8 . ISBN 978-3-662-44302-6.
  8. ^ Orlov, Michael; Sipper, Moshe (2011). "Le vol du FINCH à travers le désert de Java". Transactions IEEE sur le calcul évolutif . 15 (2) : 166–182. CiteSeerX  10.1.1.298.6272 . doi : 10.1109/TEVC.2010.2052622 .
  9. ^ Schulte, Eric M.; Weimer, Westley; Forrest, Stéphanie (2015). Réparation du micrologiciel du routeur COTS sans accès au code source ou aux suites de test . Actes de la publication Companion de la conférence 2015 sur le calcul génétique et évolutif - GECCO Companion '15 . p. 847-854. doi : 10.1145/2739482.2768427 . ISBN 9781450334884.

Liens externes

Outils